web-dev-qa-db-fra.com

Comment bloquer facebook

Je veux essayer de bloquer facebook sur ma machine.

J'ai commencé à utiliser/etc/hosts mais cela ne concerne pas tous les sous-domaines. J'ai donc fait des recherches et trouvé this (et de nombreuses solutions similaires) qui ont conduit à cette déclaration.

/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

[modifier] ce que je fais ici, c'est que je l'utilise d'abord

whois -h whois.radb.net '!gAS32934'

pour obtenir toutes les plages d'adresses IP, enregistrées par Facebook, comme suggéré par cet article . Ensuite, je fais quelques ajustements pour supprimer les caractères indésirables au début et à la fin du résultat. Cela me donne une liste de plages d'adresses IP, séparées par des espaces. A l’aide de xarg, je sépare ensuite ces plages d’ip et je construis, pour chaque plage d’ip, une instruction comme

iptables -A OUTPUT -d {} -j REJECT

{} est remplacé par la plage réelle. J'utilise REJECT, pas DROP puisque 1. c'est beaucoup plus rapide 2. depuis que je veux réellement interdire la connexion, cela me semble juste. [/modifier]

maintenant si j'essaie ping facebook.com je reçois

From myname (xxx.xxx.xxx.xxx) icmp_seq=1 Destination Port Unreachable

c'est exactement ce à quoi je m'attends. Mais si j'utilise mon navigateur (Firefox) pour ouvrir facebook.com, le site s'ouvre toujours, ce qui n'est pas ce à quoi je m'attendais. J'ai essayé de recharger et d'ouvrir un autre domaine facebook (facebook.de) que je n'avais jamais essayé auparavant pour éliminer les problèmes de cache du navigateur, mais cela n'a pas aidé.

Comme je vois souvent DROP au lieu de REJECT j’ai aussi essayé, mais cela n’a pas changé le résultat.

La question qui se pose maintenant est de savoir pourquoi le navigateur peut charger une page Web si l'adresse IP correspondante est bloquée. Comment le navigateur peut-il passer si le ping est bloqué? Il est évident que quelque chose me manque, mais je n'arrive pas à comprendre ce que c'est.

2
Till

Obtenir l'ip de l'hôte:

Host -t a facebook.com

Trouver CIDR

whois 173.252.120.68 | grep CIDR

Et bloquer le sous-réseau

iptables -A OUTPUT -p tcp -d 173.252.120.68/18 -j DROP

et bloquer des domaines:

iptables -A OUTPUT -p tcp -d www.fаcebook.com -j DROP

iptables -A OUTPUT -p tcp -d fаcebook.com -j DROP
2
Vitaly Popov