Depois de muito testar scripts, regras e maneiras na internet e ver que nunca nenhuma funcionou de verdade, resolvi pensar em como criar minha própria configuração para bloquear o Messenger e cheguei nisso aqui.
Estou levando em conta um sistema proxy transparente Squid + iptables com mascaramento liberado para internet, ex:
iptables -t nat -A POSTROUTING -s $REDE_LOCAL -d 0/0 -j MASQUERADE #esta é a linha no seu firewall liberando a internet
Antes de liberar a internet pra galera você tem seu redirecionamento de portas para o Squid, alguma coisa muito parecida com essa linha aí:
iptables -t nat -A PREROUTING -s $REDE_LOCAL -p tcp -m tcp --dport 80 -j REDIRECT --to-port 3128
Foi aqui que parei pra pensar, já que uso proxy transparente, ninguém vai precisar sair pela porta 80, pois estou redirecionando todas as conexões que chegarem nela para porta 3128 do Squid, então:
A primeira de linha do bloqueio:
iptables -t nat -A PREROUTING $REDE_LOCAL -p tcp -m tcp --dport 80 -j DROP # Aqui eu bloqueio conexões que tentarem sair com destino a porta 80
A segunda linha do bloqueio:
iptables -t nat -A PREROUTING $REDE_LOCAL -p tcp -m tcp --dport 1863 -j REDIRECT --to-port 80
# Aqui eu pego a conexão do Messenger tentando sair pela porta 1863 e ele conseguiria, pois o mascaramento está liberado. Mas quando eu redireciono a porta 1863 para a porta 80, que estará bloqueada, a conexão se perde e não consegue mais sair nem pelo mascaramento nem pelo Squid.
A terceira linha do bloqueio:
iptables -t nat -A PREROUTING -s $REDE_LOCAL -p tcp -m tcp --dport 3128 -j DROP
# Como você sempre vai achar um usuário mais esperto que os outros em sua rede, criei esta linha aqui para impedir que ele entre nas configurações de proxy do Messenger e altere a configuração para sair pela porta do Squid.
Não é necessária nenhuma regra de bloqueio para porta 1863 nem colocar nenhuma porcaria no seu Squid, apenas coloque as duas linhas na ordem logo abaixo da linha de redirecionamento da porta 80 do seu firewall para porta 3128 do Squid. Ex:
(onde eth1 é minha rede local)
iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DROP
iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 3128 -j DROP
iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 1863 -j REDIRECT --to-port 80
#------------------------Mascaramento---------------------------#
iptables -t nat -A POSTROUTING -i eth1 -d 0/0 -j MASQUERADE