Bloqueando Facebook com IPtables (de forma fácil, intuitiva e eficiente)
Olá, pessoal!
Pela coleção de scripts que vejo na Net, uns que funcionam, outros que ficam (erradamente) bloqueando também outros sites (como o Gmail) e, cuja função é só de realizar o bloqueio de Facebook com IPtables, resolvi deixar minha contribuição à comunidade com um script muito eficiente que montei.
#Lista de IPs liberados para acessar o Facebook
IPS_ACCEPT=$(cat /home/scripts/ips_accept.txt)
#Sub-rede interna do ambiente em questão
REDE_INTERNA="192.168.0.0/24"
#Criando nova regra FACEBOOK
iptables -N FACEBOOK
#Transferindo todo tráfego fonte da rede interna para a regra FACEBOOK
iptables -I FORWARD -s $REDE_INTERNA -j FACEBOOK
#Percorre o arquivo dos IPs do Facebook (facebook.txt) e vai colocando REJECT em todos os IPs da rede interna, exceto os liberados.
for i in `cat /home/scripts/facebook.txt`; do
#O acesso dos IPs (que caíram na regra FACEBOOK) ao Facebook vai ser rejeitado
iptables -A FACEBOOK -d $i -j REJECT
#Percorre lista de IPs liberados e vai colocando ACCEPT neles
for liberados in $IPS_ACCEPT; do
iptables -I FORWARD -s $liberados -d $i -j ACCEPT
done
done
Obs.: segue abaixo, a lista de sub-redes para colocar no arquivo facebook.txt:
65.201.208.24/29
65.204.104.128/28
66.93.78.176/29
66.92.180.48/28
67.200.105.48/30
69.63.176.0/20
69.171.224.0/19
74.119.76.0/22
204.15.20.0/22
204.15.20.0/22
66.220.144.0/20
173.252.64.0/18
65.201.208.24/29
65.204.104.128/28
66.93.78.176/29
66.92.180.48/28
67.200.105.48/30
69.63.176.0/20
69.171.224.0/19
74.119.76.0/22
204.15.20.0/22
204.15.20.0/22
66.220.144.0/20
173.252.64.0/18
31.13.24.0/21
31.13.64.0/18
66.220.144.0/20
69.63.176.0/20
69.171.224.0/19
74.119.76.0/22
103.4.96.0/22
173.252.64.0/18
204.15.20.0/22
Segue abaixo, um exemplo dos IPs do arquivo ips_accept.txt:
192.168.0.84
192.168.0.30
192.168.0.35
192.168.0.156
192.168.0.78
Espero que tenham gostado!
Quaisquer dúvidas, críticas ou sugestões, podem postar!
Abraços.
também pode-se usar a primeira linha (whois -h whois.radb.net '!gAS32934' | tr ' ' '\n' | grep ^[0-9] > facebook.ip) para obter os ips e sub-redes do face e usar uma acl no squid pra bloquear todos eles. Pois iptables usa banda, e o route bloqueia para todos usuários, já com squid pode-se bloquear só o necessário sem interferir na rede...
[4] Comentário enviado por marlluslustosa em 30/09/2013 - 09:50h
Legais os comentários! Nunca tinha feito nenhuma regra de bloqueio e/ou consulta de subredes utilizando o radb ou outro IRR (Internet Routing Registry).
Apesar de o tópico ser direcionado para o Iptables, dicas sempre são bem-vindas!
[7] Comentário enviado por jardel1981 em 21/07/2014 - 16:33h
Boa tarde pessoal,
Quando rodo esse script, as regras de proxy (Squid) param e a internet fica liberada. Quando rodo o script de Iptables, os bloqueios de proxy voltam a funcionar, mas esse script de bloqueio de facebook deixa de funcionar.
Quando rodo esse script, o seguinte aviso aparece:
iptables: Chain already exists.
[8] Comentário enviado por marlluslustosa em 21/07/2014 - 17:25h
Amigo, se vc já tem um script de firewall, tente colocar esse script dentro do arquivo do seu firewall. De preferência antes da linha que ativa o proxy transparente, se seu Squid estiver neste modo.
A intenção é utilizar esse código dentro do próprio arquivo do firewall, não separado.
[9] Comentário enviado por edinaldof em 12/09/2014 - 19:01h
Gostaria de dar os parabéns pelo artigo.
Muito bom mesmo, e, como não utilizo proxy, apenas firewall, pela primeira vez consegui bloquear o Facebook.
Bom, como a lista acima tem uma série de IP's/Redes repetidas, segue abaixo a relação única dos mesmos.