Bloqueando cliente MSN com Squid
Dica publicada em Linux / Configuração
Bloqueando cliente MSN com Squid
Aqui vai uma dica para quem está tentando bloquear o MSN e o Webmessenger sem ter de bloquear o acesso ao Hotmail.
Como funciona a conexão do MSN:
O cliente MSN a princípio utiliza a porta 1863 para se comunicar ao Servidor da Microsoft, o que o faz não ser controlado pelo meu proxy que aguarda conexões na porta 3128. Quando esta conexão falha, ele automaticamente tenta passar pela porta 80, onde cai numa regra do meu iptables que o encaminha para as graças do Squid.
Ambiente: Servidor Ubuntu 8.04 com Squid 2.6 (proxy transparente).
O macetão é o seguinte:
Quando você barra a porta 1863 (padrão do msn), o miserável muda-se para a 80 (onde outra regra o encaminha para a 3128 - Squid), daí você consegue controlá-lo com o Squid.
Para se autenticar no MSN o usuário precisa acessar a dll gatwway.dll no servidor da Microsoft e essa por sua vez estará com um deny numa acl feita só para ela, logo, dá falha na autenticação (mesmo estando com o hotmail aberto).
* InterfaceInterna no meu caso é a eth0 (interface do meu servidor que está ligada à rede da empresa).
Logo depois executo essas duas regras:
* Rede/máscara deve ser substituído por 192.168.0.0/24 ou o endereço utilizado em sua rede.
Depois é só fazer o DENY no Squid para o grupo que você achar melhor.
Ex:
Fonte: Isto saiu do site oficial do Squid (site oficial do squid), devido a dificuldade que tive em achar algo que realmente funcionasse, resolvi postar a solução que encontrei.
Um abraço a todos e espero ter ajudado alguém!
Como funciona a conexão do MSN:
O cliente MSN a princípio utiliza a porta 1863 para se comunicar ao Servidor da Microsoft, o que o faz não ser controlado pelo meu proxy que aguarda conexões na porta 3128. Quando esta conexão falha, ele automaticamente tenta passar pela porta 80, onde cai numa regra do meu iptables que o encaminha para as graças do Squid.
Ambiente: Servidor Ubuntu 8.04 com Squid 2.6 (proxy transparente).
O macetão é o seguinte:
Quando você barra a porta 1863 (padrão do msn), o miserável muda-se para a 80 (onde outra regra o encaminha para a 3128 - Squid), daí você consegue controlá-lo com o Squid.
Para se autenticar no MSN o usuário precisa acessar a dll gatwway.dll no servidor da Microsoft e essa por sua vez estará com um deny numa acl feita só para ela, logo, dá falha na autenticação (mesmo estando com o hotmail aberto).
Regras do iptables
A primeira regra a ser aplicada é a de redirecionamento da porta 80 para 3128 (proxy transparente):
iptables -t nat -A PREROUTING -i (interfaceInterna) -p tcp --dport 80 -j REDIRECT --to-port 3128
* InterfaceInterna no meu caso é a eth0 (interface do meu servidor que está ligada à rede da empresa).
Logo depois executo essas duas regras:
iptables -A FORWARD -s Rede/máscara -p tcp --dport 1863 -j REJECT
iptables -A FORWARD -s Rede/máscara -d loginnet.passport.com -j REJECT
iptables -A FORWARD -s Rede/máscara -d loginnet.passport.com -j REJECT
* Rede/máscara deve ser substituído por 192.168.0.0/24 ou o endereço utilizado em sua rede.
ACLs do Squid
Já em squid.conf é necessário criar as seguintes ACLs:
acl msnmime req_mime_type ^application/x-msn-messenger
acl msngw url_regex -i gateway.dll
acl msngw url_regex -i gateway.dll
Depois é só fazer o DENY no Squid para o grupo que você achar melhor.
Ex:
htttp_access deny msnmime
http_access deny msngw
http_access deny msngw
Fonte: Isto saiu do site oficial do Squid (site oficial do squid), devido a dificuldade que tive em achar algo que realmente funcionasse, resolvi postar a solução que encontrei.
Um abraço a todos e espero ter ajudado alguém!
htttp_access deny msnmime
http_access deny msngw
Vão continuar podendo se logar no msn normalmente?
Desculpa a ignorância mas é que eu sou bem novo e esse está sendo o primeiro squid que configuro. Gostaria de explorar o máximo dos recursos oferecidos.
Valew,