A solução aqui demostrada foi estudada, configurada, colocada em produção e amplamente testada na rede acadêmica do Senac Lages/SC, onde o objetivo principal foi possibilitar aos alunos do Curso Técnico em Redes de Computadores, turma que se forma no final do primeiro semestre de 2012, a possibilidade de vivenciar problemas reais de campo, possibilitando desta forma, uma construção significativa do conhecimento, e deixando-os preparados para a cruel realidade do mundo do trabalho.
Para resolver o problema, entrou na 'jogada' o Mutley, servidor rodando
FreeBSD que fornece com exclusividade para toda a rede acadêmica, os serviços: DHCP, DNS, Gateway e Proxy.
O bloqueio do UltraSurf e das outras técnicas relacionadas é relativamente simples, bastando ter as portas corretas fechadas no firewall e o uso de um proxy não transparente.
Na sequência, veremos a estrutura/características do servidor Mutley, as regras aplicadas e as implicações que cada ação reflete.
Estrutura/Características do servidor Mutley
FreeBSD 9 configurado como gateway da rede disponibilizando os seguintes serviços:
PF utilizado como firewall, configurado dentro do conceito de politicas
Default Deny, onde somente são abertas as portas que realmente são utilizadas na rede.
Portas SSH, 80, 53 e 3128 abertas somente para acesso ao próprio servidor, porta 443 fechada para qualquer uso.
Com isso, já evitamos que seja possível utilizar técnicas de tunneling, socks, proxy anônimo, além de já impedir que o UltraSurf e similares consigam conectar.
Exemplo da regra no PF
# permite às máquinas da redeLan, acessar as portas listadas somente via ipLan
pass in quick on $intLan proto { tcp, udp } from $redeLan to $ipLan port { 53, 80, 3128, 22 } keep state
Squid configurado como proxy NÃO transparente, onde toda navegação, sem exceção, de http, https e ftp, somente será permitida via proxy, estando as respectivas portas devidamente fechadas no firewall.
O
Dquid tem sua configuração padrão e dentro da sua necessidade, a única coisa adicionada se deu ao fato de que ferramentas como UltraSurf permitem que seja configurado o endereço de proxy da rede, conseguindo desta forma, funcionar por dentro do proxy mesmo.
Para impedir que isso aconteça, foi criada uma ACL para não permitir a navegação direta por IP.
Exemplo da ACL
# acl para não permitir nagevacao por IP
acl naoIP dstdom_regex -i ([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}($|:.+|/))
http_access deny CONNECT naoIP
Revisando a solução
- Firewall configurado dentro dos padrões de Default Deny;
- Liberar somente as portas necessárias para funcionamento da rede;
- Portas SSH, 80, 53 e 3128 liberadas exclusivamente para acesso ao IP da LAN do servidor;
- Proxy não transparente, atuando como saída exclusiva de HTTP, HTTPS e FTP;
- Bloqueio no proxy de navegação por IP.
Com estes passos simples, conseguimos com mínimo esforço, eliminar por completo o uso do UltraSurf e das ferramentas, ou técnicas, mencionadas para burlar os controles de conteúdo da rede.