Web proxy Mikrotik com controle de acesso

Passos iniciais

A partir de agora temos um servidor Mikrotik com web-proxy configurado de forma liberal, ou seja, sem nenhuma restrição para acesso a internet, também não importa muito se o seu web-proxy é totalmente Mikrotik ou se funciona em paralelo, se você ainda não tem um web-proxy configurado, aconselho esta leitura antes de continuar lendo este artigo:

Vamos trabalhar com a classe 192.168.0.0/24 sendo a classe de clientes, que servirá como exemplo para todo o artigo.

Abaixo você verá uma figura que demonstra qual cenário queremos obter com as restrições.

Topologia e as opções de permissão

Na figura abaixo vemos a topologia da situação.


Figura 1
Temos nessa situação, duas opções:

PRIMEIRA:

Liberamos toda a internet e fazemos o bloqueio somente de alguns sites, desta forma os clientes não terão acesso somente aos sites indicados, uma espécie de blacklist.

SEGUNDA:

Liberamos alguns sites necessários para os clientes deste servidor, uma espécie de whitelist e bloqueamos todo o restante da internet, este é o meu preferido pelo nível de segurança proporcionado, normalmente necessário em empresas.

Na página seguinte teremos as configurações necessárias para a identificação de sites por ip.

Identificando sites por ip

Bom, antes de configurar qualquer das situações, precisamos identificar o ip de cada site que queremos bloquear ou liberar dependendo da ocasião, claro que essa é uma tarefa simples, mas devo mencionar para que não haja dúvidas.Então no Windows entramos no DOS e usamos o comando:

ping www.site.com.br

Olhe o exemplo de resposta:

C:\>ping www.uol.com.br

Disparando contra www.uol.com.br [200.98.249.120] com 32 bytes de dados:

Resposta de 200.98.249.120: bytes=32 tempo=16ms TTL=54
Resposta de 200.98.249.120: bytes=32 tempo=16ms TTL=54
Resposta de 200.98.249.120: bytes=32 tempo=16ms TTL=54
Resposta de 200.98.249.120: bytes=32 tempo=16ms TTL=54

Estatísticas do Ping para 200.98.249.120:
Pacotes: Enviados = 4, Recebidos = 4, Perdidos = 0 (0% de perda),
Aproximar um número redondo de vezes em milissegundos:
Mínimo = 16ms, Máximo = 16ms, Média = 16ms

No Linux temos a resposta:

$ ping www.uol.com.br
PING www.uol.com.br (200.98.249.120) 56(84) bytes of data.
64 bytes from home.uol.com.br (200.98.249.120): icmp_seq=1 ttl=54 time=15.2 ms
64 bytes from home.uol.com.br (200.98.249.120): icmp_seq=2 ttl=54 time=15.3 ms
64 bytes from home.uol.com.br (200.98.249.120): icmp_seq=3 ttl=54 time=15.0 ms
64 bytes from home.uol.com.br (200.98.249.120): icmp_seq=4 ttl=54 time=15.0 ms

— www.uol.com.br ping statistics —
4 packets transmitted, 4 received, 0% packet loss, time 3041ms
rtt min/avg/max/mdev = 15.011/15.161/15.333/0.201 ms

Isso vale para qualquer página que você queira identificar o ip, seja para liberar ou para bloquear.

Na página seguinte temos o primeiro método, que chamarei de “blacklist”.

Configurações para blacklist (parte 1)

Supondo que temos um web-proxy já configurado e você já separou uma lista de sites que quer bloquear, anotando os respectivos nomes e ips, vamos ao Winbox.Vá em IP > WEB PROXY > ACCESS

Observe que as regras que você deveria ter para ter um proxy liberal são estas:


Figura 2
As regras acima dizem ao proxy que a classe 192.168.0.0/24 tem acesso completo e irrestrito, na última regra bloqueamos todo resto ou qualquer outra tentativa de acesso ao proxy.

Neste ponto seria muito interessante fazer um backup do seu sistema por completo, para que, se por algum motivo, você precise retornar o servidor como era, essa tarefa se torne fácil.

Comece removendo todas as regras nesta tela (figura 02) e adicione os sites que você deseja bloquear usando a seguinte sintaxe:

# ip proxy access add dst-address=200.98.249.120 action=deny comment=Bloqueio_site_www.uol.com.br

Repita o comando no NEW TERMINAL para cada site que você deseja bloquear usando a mesma sintaxe, alterando apenas os ips e nomes correspondentes.

O visual da tabela de acesso do proxy deverá fica semelhante a figura abaixo:


Figura 3
Vamos a próxima página.

Configurações para blacklist (parte 2)

Agora que você já tem todos os sites que deseja bloqueados, precisamos liberar o resto.No NEW TERMINAL digite a seguinte regra:

# ip proxy access add src-address=192.168.0.0/24 action=allow comment=Libera_o_restante

Depois digite a regra para bloquear qualquer outra coisa que não esteja na regra de liberação:

# ip proxy access add action=deny comment=Bloqueia_tudo

O visual do seu tabela de acesso deverá ficar semelhante ao da figura abaixo:


Figura 4
A disposição das últimas duas regras é de extrema importância, elas tem que ser as últimas, como demonstrado na figura acima, já as regras de bloqueios não precisam de ordenação.

Pronto!

Dessa forma seus clientes acessam qualquer página na internet, menos as que você bloqueou.

Agora vejamos o o contrário disso na próxima página.

Configurações para whitelist (parte 1)

Agora vamos fazer o contrário, vamos liberar alguns sites somente e bloquear o resto.Neste ponto seria muito interessante fazer um backup do seu sistema por completo, para que, se por algum motivo, você precise retornar o servidor como era essa tarefa se torne fácil.

Vá em IP > WEB PROXY > ACCESS

Comece removendo todas as regras nesta tela (figura 02) e adicione os sites que você deseja liberar usando a seguinte sintaxe:

# ip proxy access add dst-address=200.98.249.120 action=allow comment=Liberacao_site_www.uol.com.br

Repita o comando no NEW TERMINAL para cada site que você deseja liberar usando a mesma sintaxe alterando apenas os ips e nomes correspondentes.

O visual da tabela de acesso do proxy deverá fica semelhante a figura abaixo:


Figura 5
Vamos a próxima página.

Configurações para whitelist (parte 2)

Agora que você já tem todos os sites que deseja liberados, precisamos bloquear o resto.No NEW TERMINAL digite a seguinte regra:

# ip proxy access add action=deny comment=Bloqueia_tudo O visual do seu tabela de acesso deverá ficar semelhante ao da figura abaixo


Figura 6
A disposição da última regra é de extrema importância, ela tem que ser a última como demonstrado na figura acima, já as regras de liberação não precisam de ordenação.

Pronto!

Dessa forma seus clientes acessam somente as páginas previamente liberadas e não tem qualquer outro tipo de acesso.

Na próxima página temos importantes considerações que merecem sua atenção.

Controlando clientes individualmente

Note que nas duas situações, nunca usamos o campo SRC-ADDRESS na hora de realizar os bloqueios ou liberações dependendo da situação.Mas o fato é que podemos usá-los para, por exemplo, aplicarmos a regra somente a um ip especifico da rede interna, ou seja, liberando alguns sites para cada ip da rede interna de forma individual na opção whitelist ou bloqueando alguns sites para cada ip da rede interna de forma individual na opção blacklist.

Veja o exemplo:

# ip proxy access add src-address 192.168.0.133 dst-address=200.98.249.120 action=deny comment=Bloqueio_site_www.uol.com.br_para_o_joão

A regra acima diz que o ip 192.168.0.133 não pode acessar o site da uol e o comentário dela indica que a regra é para o usuário “joão”.

Claro que abaixo dela temos as duas regras citadas na página 4 deste artigo, que liberam tudo que não foi bloqueado acima das mesmas.

Veja outro exemplo:

# ip proxy access add src-address 192.168.0.133 dst-address=200.98.249.120 action=allow comment=Liberacao_site_www.uol.com.br_para_Joao

A regra acima diz que o ip 192.168.0.133 pode acessar o site da uol e o comentário dela indica que a regra é para o usuário “joão”.

Também no caso abaixo desta regra temos as duas regras citadas na página 6 deste artigo que bloqueiam tudo que não foi liberado acima das mesmas.

Desta forma você consegue definir de forma individual, ou seja, por usuário, o que ele vai ou não acessar na web.

Considerações finais

Uma dica importante a esta altura é que seu sistema de autenticação, seja ele portal captive (hotspot) ou pppoe, faça controle de usuário+senha+MAC, evitando assim os usuários da rede interna trocarem os ips das máquinas, conseguindo assim privilégios que não foram concedidos e eventualmente “bagunçando a rede”, sendo assim você terá um bom nível de segurança interna.Este artigo demonstra como fazer bloqueios de acessos a sites, porém existem vários outros tipos de bloqueios que podem ser realizados, por exemplo: p2p, comunicadores instantâneos (msn, icq) etc, mas estes devem ser bloqueados no filtro do firewall e é assunto para outra dica ou artigo.

Rolar para cima