Percebi a dificuldade e uma série de dúvidas que usuários e administradores de redes possuem ao tentar bloquear o MSN e Orkut. Através deste tutorial vou descrever passo a passo os macetes que usei para impedir que minha rede interna utilizasse o MSN, web-messenger e Orkut, impedindo o envio de mensagens e troca de arquivos e também dicas para liberar acessos por horários ou máquinas.
Squid - Bloqueando definitivamente o MSN Messenger e Orkut
Introdução
Quando decidi implementar a segurança e estabilidade no servidor da rede que administro, sem dúvida o Squid foi a melhor opção, trabalhando em conjunto com o firewall iptables.
Neste tutorial não vou comentar sobre instalação do iptables e nem do Squid. Na verdade, estas dicas são destinadas a quem já tem o Squid e iptables rodando, e mesmo assim está tendo dificuldades em bloquear o msn messenger.
Após muitas consultas na internet, leituras de tutoriais e dicas, finalmente consegui bloquear o msn na rede interna, utilizando iptables e Squid. No inicio comecei a analisar o log do Squid em tempo real, enquanto acessava o msn em uma máquina cliente.
Testei 2 versões do msn, a 7.x.x e 8.0.1. O estranho é que cada versão utiliza uma URL diferente para se conectar. Então comecei a anotar todas as URLs que o msn acessava enquanto se conectava e enviava mensagens.
O msn utiliza as seguintes portas para se conectar e funcionar. Para conectar, ele utiliza a porta 1863, após conectado, mantém-se conectado nas portas 80 e 443, e envia e recebe arquivos pela 5190.
Atualmente é comum programas que são capazes de acessar a Web através da porta 80, 443 (https) ou via proxy, o que torna difícil bloqueá-los. Em muitos casos, é preciso usar uma combinação de portas fechadas no firewall, bloqueio a endereços IPs específicos e bloqueio de determinados domínios e URLs no Squid.
Para se ter uma idéia, as versões mais novas do msn utilizam a dll ADSAdClient31.dll, sendo que as versões mais antigas utilizam gateway.dll.
O Orkut é moleza para bloquear. O arquivo texto "trava_msn_orkut.txt" que vou disponibilizar no final deste tutorial é o suficiente para impedir acessos ao Orkut.
Lembre-se que existem vários sites que dão acesso ao msn e Orkut, exemplo o meebo.com e messengerfx.com. Estes sites funcionam como proxy, sendo assim, se estas URLs não estiverem na lista de bloqueio, o usuário vai conseguir acessar o msn facilmente!
Então recomendo que verifique sempre os logs do Squid e faça pesquisas na net, pois sempre estão criando novos sites com a mesma funcionalidade destes.
Na prática
(Bloqueando o MSN)
(FIREWALL)
Primeiramente use regras no firewall para obrigar o tráfego da porta 80 passar para 3128, onde o Squid possa controlar o tráfego.
Para o bloqueio de portas você deve usar o firewall (ou outro firewall). Mas não adianta bloquear a porta 443, pois assim ninguém ira acessar sites de bancos ou sites que utilizem protocolo de segurança (https). A porta 80, se for bloqueada, ninguém mais navega na internet.
Primeiramente, feche a porta 1863 para impedir que o msn faça login. Utilize este comando no iptables:
Onde 192.168.1.0 pode ser alterado pela faixa de ip da sua rede.
Em outra linha, utilize o mesmo comando para fechar também a porta 5190. Lembrando que estas linhas devem ser colocadas antes da linha de comando que direciona a conexão da porta 80 para a 3128 do Squid.
A porta 5190 já esta bloqueada no meu firewall, com a seguinte linha de comando:
Primeiro, crie um arquivo texto que irá conter todas as URLs que bloquearão o msn. No final do tutorial vou disponibilizar um exemplo do arquivo texto que uso para o bloqueio do msn.
No Squid, crie as ACLs conforme exemplo abaixo, logo depois de onde são definidas as ACLs que definem as portas de conexões seguras.
[6] Comentário enviado por fredaum em 28/04/2007 - 08:49h
Muito bom... mas vale lembrar que com isso ele vai tratar apenas o tráfego na porta 80, e o orkut pode ser acessado pela porta 443, então deve ser acrescentado uma regra no firewall para barrar esse acesso.
iptables -A FORWARD -s 192.168.x.0/24 -d www.orkut.com -p tcp --dport 443 -j DROP
[10] Comentário enviado por dupotter em 28/04/2007 - 23:05h
fredaum, qto a porta 443, vc pode redireciona-la para o squid assim como a 80, o squid gerencia numa boa, faz o teste ai pra vc ver, aki eu uso assim e o https funfa normal. Testa ae e nos diga o resultado. Aki comigo vai tranquilo.
[11] Comentário enviado por removido em 29/04/2007 - 04:05h
Bom dia, meu nome Mauricio.
Gostaria de tirar uma duvida, trabalho em uma empresa de corretora de seguros (CPD) aqui nós temos um servidor xeon (win2003 server), dell (win2003 server) e um servidor de email linux. Estações, computadores, printers (KYOCERA), Thinclients +/- 35, e o restante computadores 180. Bom como tinha te falado é uma corretora de seguros, nós atendemos as concessionária de carro EX: fiat, renault, wv, etc, e em cada delas roda seguros tipo porto seguro, sulamerica, maritima, etc. Surgiu um problema nunca parei para instalar um vpn no linux não sei como faço, outra os gerentes estão me perguntando se há a possibilidade de interligar as lojas com um servidor no CPD, agora minha pergunta como posso fazer isso? Outra coisa todas as lojas tem speedy e o nosso link é de 2m, e qual sistema operacional seria melhor para fazer isso e equipmento, devido a demanda estou um pouco preocupado, se poder me ajudar, grato.
MAURICIO - CAMPINAS
19 97025828
OBS: CASO POSSA TE LIGAR PARA EXPLICAR MELHOR, SERIA O IDEAL.
ABRAÇO
EMAILS: mauricio@grupoouroverde.com.br
mauricio-rm@hotmail.com
almeida.cps@uol.com.br
[12] Comentário enviado por Sonics em 30/04/2007 - 01:54h
Primeiro quero dar os parabéns ricardodru, muito bom o seu artigo...
Mas quero dizer que se vocês estiverem lidando com users ditos geeks, eles de fato conseguirão passar facilmente por isso aí...há algumas "gambiarras" e outras soluçoes mais complexas, que botam tudo isso aí por agua abaixo...mas creio que isso não é o caso da maioria dos administradores, sendo que provavelmente não irao passar por isso...
[15] Comentário enviado por agnaldoluiz em 08/05/2007 - 15:33h
Muito bom seu artigo, parabens.
Aqui to precisando de uma ajuda sua, ja cansei de pesquisar e fazer o que achava nas pesquisas e nda dava certo.
Seguinte:
Aqui no meu serviço tenho linux debian com squid e iptables funcionando blz. tenho dois arquivos chamados iprestrito(esta faixa de ip so consegue acessar os sites que estao cadastrados no squid) e ipliberados(consegue acessar tudo, so para a diretoria) queria liberar o windows live messenger apenas para a faixa de ip's que esta dentro de iprestrito e ipliberados. tem maquina que esta com um ip fora desta faixa(ou seja o cara nao consegue acessar a internet) mas consegue acessar o msn. poderia me ajudar.
Preciso bloquear todos os ip's que estao fora do meu arquivo iprestrito e ipliberados.
Desde ja agradeço
[16] Comentário enviado por oandarilho01 em 14/05/2007 - 10:07h
Parabéns pelo artigo.. muito bom mesmo..
Uma coisa:
Nõ caso, não seria encessário ter duas cópias do script do firewall. Bastaria, via cron, rodar dois scriptzinhos (ou um só mesmo, baseando-se em parâmetros) para inserir e remover no topo das regras uma regra que fizesse a devida liberação das portas no horário de almoço, correto? Isso descarta a suposta necessidade de se manipular todo o firewall apenas para isso..
[18] Comentário enviado por fmpfmp em 15/05/2007 - 15:02h
A porta 1863 bloqueada não impede o acesso ao MSN. Bloqueá-la ou não, não faz a menor diferença. Ele inicialmente tenta pela 1863, mas depois utiliza a 80. O acesso é bloqueado por causa da lista de bloqueio.
[21] Comentário enviado por jgama em 01/06/2007 - 21:56h
Usando as dicas deste tutorial, aqui além de bloquear o orkut está bloqueando o msn para todo mundo, uso squid autenticado, só o orkut alguns usuarios podem acessar, mas o msn esta conseguindo acessa-lo.
Desabitei o Firewall onde tem algumas regras de bloqueio o msn e mesmo assim não liberara.
Também peguei o script que coloca no crontab e coloquei os ips que queria que ficasse sem o acesso do msn em um arquivo, mas como meu disse todos estão sendo bloqueados.
[23] Comentário enviado por removido em 14/08/2007 - 12:45h
Olá Ricardo eu achei muito lega seu artigo e coloquei no meu squid.conf, liberei o acesso ao hotmaisl pra dois ip´s do jeito que vc recomendou, mas esses ip´s que liberei eles acessam as páginas do msn normalmente, o msn consegue pingar como se sua conexão estivesse normal, masd ele não conecta. O que pode ser isso?? se puder dar algumas dicas fico bem grato!!
[24] Comentário enviado por ricardodru em 14/08/2007 - 15:24h
?comentario=Alexandre
O que esta acontecendo com vc, pode ter varios motivos.
Se o proxy nao foi configurado como transparente, vc deve configura-lo no msn tambem, como foi feito o navegador.
Aqui eu nao precisei fazer isso, mas talvez funcione, Verifique se as portas do msn estao liberadas no firewall (mas somente para o ip desejado)
Para que o msn funcionar em horario de almoço, eu tive que rodar um script no cron que as 12:00 hs ele libera a porta 1863, e no mesmo horario tem uma ACL (conforme exemplo no meu tutorial) que as 12:00hs ele libera o acesso a todos os sites contidos na lista conforme tutorial.
Entao, para o msn funcionar, a porta 1863 tem que estar aberta, e as URL's nao podem estar trancadas no Squid.
[25] Comentário enviado por removido em 14/08/2007 - 16:21h
ok, meu proxy é transparente, como faço pra liberar o msn para dois ip´s da rede, pois eu segui o artigo e mesmo assim o msn não acessa, acusa erro nas portas??
Se puder mandar o script no cron que vc fez pra eu dar uma olhada fico grato. Sou iniciante em linux.
[26] Comentário enviado por ricardodru em 15/08/2007 - 16:11h
?comentario=?comentario=
Alexandre, se vc esta com problema com portas, revise seu firewall. O squid nao tranca a porta 1863.
Para bloquear a porta do msn no iptbles, utilizo esta linha:
iptables -A FORWARD -s 192.168.1.0/24 -p tcp --dport 1863 -j REJECT
iptables -A FORWARD -s 192.168.1.0/24 -p tcp --dport 5190 -j REJECT
onde 192.168.1.0 é a sua faixa de IP da rede interna.
O IP que vc quiser dar acesso ao msn, coloque esta linha:
iptables -A FORWARD -s 192.168.0.50 -p tcp --dport 1863 -j ACCEPT
iptables -A FORWARD -s 192.168.0.50 -p tcp --dport 5190 -j ACCEPT
Com estas linhas, o msn tem que funionar. Tambem é importante vc revisar a ordem das regras no firewall e das ACL no Squid.conf.
Ate +
[28] Comentário enviado por andrade.ti em 09/11/2007 - 13:36h
Legal o artigo...
Eu particularmente utilizo o squid somente como proxy. O filtro da porta 80 fica por conta do Dansguardian. Criei 2 perfis (um com MSN e outro sem MSN). As blacklists já têm os domínios e sites específicados para bloquear o MSN. Ou seja, por default o Dansguardian já bloqueia o MSN. No outro perfil é só colocar o domínio e o site do MSN nas excessões. No firewall, liberar a porta 1863.
Achei mais prático, pois no meu caso o utilizo o squid autenticado e nem todos os usuários têm acesso ao MSN.
[32] Comentário enviado por emilson em 20/06/2008 - 13:29h
Help... tenho um Servidor Proxi, que está instalado o Linux - FreeBSD / i386, uso para controle o Squid, no ACL há um bloqueio de dominius (sites), sendo que quando é tirado o proxi do Internet Explore, o MSN é conectado. Eu gostaria de bloquear este acesso, com e sem o proxi...
[33] Comentário enviado por francisjs em 30/10/2008 - 11:54h
Bom dia Dia meu amigo, quero aqui deixar registrado que desde que eu faço uso da internet nunca achei um tutorial tao completo e perfeito como este, pois tudo que fiz seguindo este tutorial funcionou perfeitamente sem apresentar erros. Parabens por voce ser alguem que divide o que sabe, que Deus lhe recompense da melhor maneira!
[34] Comentário enviado por needmagno em 20/03/2009 - 16:14h
Bloqueando o MSN)
(FIREWALL)
Primeiramente use regras no firewall para obrigar o tráfego da porta 80 passar para 3128, onde o Squid possa controlar o tráfego.
Para o bloqueio de portas você deve usar o firewall (ou outro firewall). Mas não adianta bloquear a porta 443, pois assim ninguém ira acessar sites de bancos ou sites que utilizem protocolo de segurança (https). A porta 80, se for bloqueada, ninguém mais navega na internet.
Primeiramente, feche a porta 1863 para impedir que o msn faça login. Utilize este comando no iptables:
Onde 192.168.1.0 pode ser alterado pela faixa de ip da sua rede.
Em outra linha, utilize o mesmo comando para fechar também a porta 5190. Lembrando que estas linhas devem ser colocadas antes da linha de comando que direciona a conexão da porta 80 para a 3128 do Squid.
A porta 5190 já esta bloqueada no meu firewall, com a seguinte linha de comando:
Primeiro, crie um arquivo texto que irá conter todas as URLs que bloquearão o msn. No final do tutorial vou disponibilizar um exemplo do arquivo texto que uso para o bloqueio do msn.
No Squid, crie as ACLs conforme exemplo abaixo, logo depois de onde são definidas as ACLs que definem as portas de conexões seguras.
[37] Comentário enviado por brizao em 09/09/2009 - 08:31h
tirocha,
realmente, essa funcionou parcialmente mas o meebo.com.br conecta sem problemas, literalmente, tem q ter a lista e mais essa .dll pra parar o msn.....
eita msn chato!!!!!