[Tutorial] Como enviar aviso de bloqueio para o cliente via PPPOE
Olá, aqui vai um "tutorial" de como enviar aviso de bloqueio de internet para seu cliente via PPPOE
Para fazer isso vamos usar o Wamp Server, e o mikrotik apenas, (foi configurado e testado no windows, porém no linux é o mesmo processo).
Baixe e configure o Wamp Server (não vou entrar nessa parte da configuração do Wamp, aqui no under ja tem tópicos ensinando como configurar) crie o seu html com a pagina de aviso desejada e salve na pasta c:/wamp/www/ como o nome index.html
eu acredito que seu PC esta com o ip fixo, ex: 192.168.101.254 e que a porta do seu wamp é 9050
então para fazer um teste, coloque 192.168.101.254:9050 em seu navegador e veja se vai aparecer a sua página html que você criou.
Agora vá no seu Mikrotik
Cria um pool com a faixa de ip que deseja bloquear. ex
IP pool:
add name=POOL-BLOQUEIO ranges=10.20.0.0/24
ppp profile
crie um profile com o pool que você configurou
add change-tcp-mss=yes dns-server=192.168.199.1,8.8.8.8 local-address=\
192.168.199.1 name=BLOQUEIO only-one=yes rate-limit=2M remote-address=\
POOL-BLOQUEIO use-encryption=no use-mpls=no
ip firewall nat
caso você tenha que mascarar sua rede para cada ip separado crie um masquerade para o ip
add action=masquerade chain=srcnat comment=REDE-BLOQUEIO out-interface=\
ether11-LINK src-address=10.20.0.0/24
ip firewall nat
agora vamos criar um dst-nat para fazer o redirecionamento para a pagina de aviso
add action=dst-nat chain=dstnat comment=BLOQUEIO dst-port=0-65535 protocol=\
tcp src-address=10.20.0.0/24 to-addresses=192.168.101.254 to-ports=9050
pronto, como podem ver em DST-PORT eu coloquei de 0-65535
para que toda porta que vier do ip 10.20.0.0/24 seja redirecionada para o ip 192.168.101.254 (que é o ip do wamp) para a porta 9050 ou seja. 192.168.101.254:9050
com isso configurado basta pegar o cliente que você deseja bloquear e colocar ele no profile
BLOQUEIO, que o cliente ira sempre ser redirecionado para o aviso.
Possíveis problemas e soluções:
*O wamp server estava sempre dando erro de conexão comigo, na versão mais nova, baixei a penultima versão 2.4 e funcionou normal.
* Eu não conseguia acessar a página html que estava no www, erro de segurança, então fui no httpd.conf e coloquei allow from all
# Require all granted
# onlineoffline tag - don't remove
Order Deny,Allow
Deny from 186.227.221.71
Allow from 127.0.0.1
Allow from ::1
Allow from localhost
Allow from all
</Directory>
*Quando o site é HTTP ele é redirecionado para o av iso, quando o site é HTTPS ele da um erro de ss l, Ainda não consegui resolver esse problema, se alguém souber a solução peço que envie. :D
OBS. eu não sou um tecnico muito experiente com MK, não conheço muito sobre suas regras e configs, esta configuração acima foi a que eu consegui fazer funcionar comigo, e as informações que contém ai em cima, muitas foram aprendidas aqui mesmo no under através da ajuda de outros usuarios e topicos. Estou apenas repassando o que eu aprendi, para que possa servir de ajuda para outra pessoa.
Obrigado ao pessoal do under por ter me ajudado.
Valeu.
Taiendy Chyvu.
Re: [Tutorial] Como enviar aviso de bloqueio para o cliente via PPPOE
O erro do HTTPS você não tem como resolver no nível do servidor.
HTTPS é criptografado e o certificado envolvendo a comunicação, emitido por alguma CA (entidade certificadora) é privado (óbviamente) e então você não tem como descriptografar conexões HTTPS. A maneira sobre a qual o HTTPS foi criado, envolve ainda um processo de autenticação do host, ou seja, no inicio da conexão HTTPS o cliente (navegador) recebe o certificado daquele site. Como você redirecionou a conexão com dstnat para outro IP (o IP do WAMP), o WAMP até pode fornecer um certificado para o cliente, porém é ai que começa os problemas. Esse certificado pode ser auto-assinado, o que não é aceito numa comunicação segura, e se for assinado, o cliente não vai conhecer a CA que assinou esse certificado. O navegador tem uma lista de entidades certificadoras (tanto Raiz quanto intermediarias), as quais usa para validar e autenticar os certificados dos sites.
Se então, por exemplo, você acessa https://www.site.com/, e então ele te fornece seu próprio certificado no qual está informando que a CA que o emitiu foi a CERTISIGN, então o navegador vai negociar, através das chaves de criptografia, uma chave temporária para aquela conexão ser criptografada. O certificado que o cliente recebe do site, possui a chave pública de criptografia daquela CA, e a CA la no lado deles, possui a chave privada. Ou seja, o que é criptografado com a chave pública fornecida pelo site, só pode ser descriptografado pelo CA e por mais ninguém no mundo. Por esse motivo, quando você redireciona o site para o seu servidor, e ele está configurado para fornecer um certificado, o seu navegador não vai conhecer o emissor do certificado, e navegador vai avisar sobre o erro.
A única forma de resolver isso, seria você criar um certificado Raiz seu, local, e manualmente instalar nos dispositivos dos clientes. Se o cliente possui, na sua lista de certificados raiz o SEU certificado, ai sim você pode assinar qualquer certificado de qualquer site e "enganar" o navegador dizendo que você realmente é dono daquele domínio, e que você realmente é o servidor original daquele site. Mas para isso, você precisa manualmente instalar o certificados raiz nos clientes.