
Quero tentar bloquear o Facebook na minha máquina.
Comecei a usar /etc/hosts mas isso não abrange todos os subdomínios, então fiz algumas pesquisas e descobriesse(e muitas soluções semelhantes) que levam a esta afirmação
/usr/bin/whois -h whois.radb.net '!gAS32934' | head -n -1 | tail -n -1 | /usr/bin/xargs --max-args=1 | /usr/bin/xargs -I {} --max-args=1 iptables -A OUTPUT -d {} -j REJECT
[editar] o que eu faço aqui é usar primeiro
whois -h whois.radb.net '!gAS32934'
para obter todos os intervalos de ip, registrados pelo facebook, conforme sugerido poreste artigo. Depois faço alguns cortes, para remover caracteres indesejados no início e no final do resultado. Isso me dá uma lista de intervalos de IP, separados por espaços. Usando xarg, eu então separo esses intervalos de IP e construo, para cada intervalo de IP, uma instrução como
iptables -A OUTPUT -d {} -j REJECT
onde {}
é substituído pelo intervalo real. Eu uso REJECT
, não DROP
desde 1. é muito mais rápido 2. como na verdade quero proibir a conexão, isso me parece certo. [/editar]
agora se eu tentar ping facebook.com
eu consigo
From myname (xxx.xxx.xxx.xxx) icmp_seq=1 Destination Port Unreachable
que é exatamente o que eu espero. Mas se eu usar meu navegador (Firefox) para abrir o facebook.com o site ainda abre, o que não é o que eu esperava. Tentei recarregar e abrir outro domínio do Facebook (facebook.de) que não havia tentado antes para descartar problemas com o cache do navegador, mas não ajudou.
Como muitas vezes vejo DROP
em vez disso, REJECT
tentei isso também, mas não mudou o resultado.
A questão agora é: por que o navegador pode carregar uma página da web, se o IP correspondente está bloqueado? Como o navegador pode passar se o ping estiver bloqueado? É óbvio que estou faltando alguma coisa, mas não consigo descobrir o que é.
Responder1
Obtenha o IP do host:
host -t a facebook.com
Encontrar CIDR
whois 173.252.120.68 | grep CIDR
E bloquear sub-rede
iptables -A OUTPUT -p tcp -d 173.252.120.68/18 -j DROP
e bloquear domínios:
iptables -A OUTPUT -p tcp -d www.fаcebook.com -j DROP
iptables -A OUTPUT -p tcp -d fаcebook.com -j DROP