Squid - Bloqueando definitivamente o MSN Messenger e Orkut

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.

[ Hits: 135.421 ]

Por: Ricardo Pardim Claus em 27/04/2007


Teoria e Prática



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:

# iptables -A FORWARD -s 192.168.1.0/24 -p tcp --dport 1863 -j REJECT

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:

# iptables -A FORWARD -s 192.168.1.0/24 -p tcp --dport 5190 -j REJECT

(SQUID)

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.

allow = LIBERA ACESSO
deny = BLOQUEIA/NEGA ACESSO

acl trava_msn_orkut url_regex -i "/etc/squid/regras/trava_msn_orkut.txt"

Depois é só negar o acesso as URLs que estiverem listadas no arquivo "trava_msn.txt".

http_access deny trava_msn_orkut

Você também pode bloquear os domínios que estiverem nesta lista, através desta ACL:

acl dominio_msn_orkut dstdomain "/etc/squid/regras/trava_msn_orkut.txt"
header_access Accept-Encoding deny dominio_msn_orkut
    Próxima página

Páginas do artigo
   1. Teoria e Prática
   2. Liberando por horário e finalizando
Outros artigos deste autor

Configurando o Rclone no CentOS 7

Leitura recomendada

Proxy transparente com Squid, com controle de banda e bloqueio por horários

Compilando o Squid com autenticação PAM

Proxy em paralelo com o mikrotik

Cache Full Squid + WebHTB

DansGuardian versões 2.9.3.0 e superiores em Debian 5.01

  
Comentários
[1] Comentário enviado por hardwarez em 27/04/2007 - 10:30h

Lembrando que é recomendado liberar as portas default no iptables para os pcs que irão ter acesso, antes de fazer o bloqueio geral.

Por exemplo, liberando MSN para ip 192.168.1.1
# iptables -A FORWARD -s 192.168.1.1 -p tcp --dport 1863 -j ACCEPT
# iptables -A FORWARD -s 192.168.1.1 -p tcp --dport 5190 -j ACCEPT


Depois:
#Bloqueando os demais
# 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


:)

[2] Comentário enviado por hardwarez em 27/04/2007 - 10:39h

agora que vi... bhi.com.br

po, provedor de host de um amigo meu!

hehehe

[3] Comentário enviado por edupooter em 27/04/2007 - 10:43h

Para bloqueio de "burlador" de proxy, acrescente o endereço:

calculatepie.com

Note que é possível utilizar arquivos de texto sem a extensão ".txt".


[4] Comentário enviado por rbn_jesus em 27/04/2007 - 16:31h

Esta lista é bastante completa, muito bom o artigo!!!

[5] Comentário enviado por tuxSoares em 28/04/2007 - 02:30h

Bom, parabens!

[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

uso dessa maneira e funciona perfeitamente.

[7] Comentário enviado por coffani em 28/04/2007 - 12:04h

Parabens pelo artigo, ja uso este tipo de esquema aqui na empresa que trabalho mas ainda num sabia da nova dll que o msn 8 tava usando... vlw

[8] Comentário enviado por anselmoborges em 28/04/2007 - 19:21h

por isso q eu colocava a porra das listas de servidores e nunca barrava...

sacanagem uma porta pra cada coisa....

Muito bom a Matéria, parabens!!

__abraçonn

[9] Comentário enviado por gomenezes em 28/04/2007 - 19:28h

Um dos "problemas" em conseguir bloquear o msn é que assim você bloqueia também o acesso ao hotmail.


Aparentemente acontece também nos passos indicados nesse tutorial (pela lista de bloqueios)

Você pode me confirmar essa informação (se seguindo as dicas do artigo o acesso ao email do hotmail também é bloqueado)?



[]s

[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...

t+


[13] Comentário enviado por shocker em 03/05/2007 - 19:11h

Muito bom artigo! Simples e direto. Parabéns.

[14] Comentário enviado por ricardoldj em 08/05/2007 - 10:01h

Olá pessoal do VOL!

Achei bom o artigo, me serviu bem, só tive 2 problemas:

as configurações bloquearam o pop e smtp do outlook express e tb o acesso as páginas https ...
... q alterações poderia ainda fazer?

desde já agradeço!

[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

obs: uso proxy transparente

[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..

[17] Comentário enviado por cassiorosas em 14/05/2007 - 10:56h

Parabens pelo artigo amigo!!!!

So lembrando que para a porta 443 do orkut pode ser feito via SQUID tambem no arquivo texto.

Adicione: www.orkut.com:443

Abraços,

[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.

[19] Comentário enviado por brunosalmito em 16/05/2007 - 08:45h

gostei, vai pros meus fav

[20] Comentário enviado por removido em 24/05/2007 - 14:19h

Parabens muito interesante isso, vou aplicar.

[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.

Alguém sabe como resolver?


[22] Comentário enviado por blaiseskt em 12/06/2007 - 01:15h

Sou iniciante no Linux, o que são ACLs e como eu configuro para a faixa de Ip's de 10.10.0.3 até 10.10.0.95?

[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!!

Alexandre

[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.

Ate +

[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.

flw!!

[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 +

[27] Comentário enviado por ricardodru em 16/08/2007 - 09:28h

alexandre

insira esta linha no firewall tambem

iptables -I POSTROUTING -j MASQUERADE -t nat -s 192.168.0.50 -p tcp --dport 1863 -o eth0

[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.

LCA.

[29] Comentário enviado por Pinguim Gigante em 19/11/2007 - 19:52h

Muito bom, me ajudou bastante.

[30] Comentário enviado por axl rose em 07/12/2007 - 16:40h

alguém pode me ajudar com o SQUID para Windows Server 2003???

sllash@hotmail.com

Rodrigo

[31] Comentário enviado por emilson em 20/06/2008 - 13:20h

q

[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...

Me ajudem aí galera..

Emilson Seixas

[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!

Obrigado!

[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:

# iptables -A FORWARD -s 192.168.1.0/24 -p tcp --dport 1863 -j REJECT

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:

# iptables -A FORWARD -s 192.168.1.0/24 -p tcp --dport 5190 -j REJECT

(SQUID)

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.

allow = LIBERA ACESSO
deny = BLOQUEIA/NEGA ACESSO

acl trava_msn_orkut url_regex -i "/etc/squid/regras/trava_msn_orkut.txt"

Depois é só negar o acesso as URLs que estiverem listadas no arquivo "trava_msn.txt".

http_access deny trava_msn_orkut

Você também pode bloquear os domínios que estiverem nesta lista, através desta ACL:

acl dominio_msn_orkut dstdomain "/etc/squid/regras/trava_msn_orkut.txt"
header_access Accept-Encoding deny dominio_msn_orkut


[b]Onde eu faco essas primeiras regras aki amigo[/b]

[35] Comentário enviado por rzacosta em 20/04/2009 - 18:46h

Ola amigo, gostei do artigo mas nao achei a lista de ACL "trava_msn_orkut.txt" onde fica? esta disponivel para download? fico no aguardo , grato.

[36] Comentário enviado por tirocha em 12/08/2009 - 15:52h

Simples e letal

acl msn urlpath_regex -i gateway.dll
http_access deny msn

[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!!!!!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts