
Ich möchte versuchen, Facebook auf meinem Computer zu blockieren.
Ich begann, /etc/hosts zu verwenden, aber das erfasst nicht alle Subdomains, also recherchierte ich ein wenig und fandDas(und viele ähnliche Lösungen), die zu dieser Aussage führen
/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
[Bearbeiten] Was ich hier mache, ist, dass ich zuerst
whois -h whois.radb.net '!gAS32934'
um alle von Facebook registrierten IP-Bereiche zu erhalten, wie vorgeschlagen vondieser Artikel. Dann schneide ich etwas ab, um unerwünschte Zeichen am Anfang und Ende des Ergebnisses zu entfernen. Dadurch erhalte ich eine Liste von IP-Bereichen, die durch Leerzeichen getrennt sind. Mit xarg trenne ich diese IP-Bereiche und erstelle für jeden IP-Bereich eine Anweisung wie
iptables -A OUTPUT -d {} -j REJECT
wobei {}
durch den tatsächlichen Bereich ersetzt wird. Ich verwende REJECT
, nicht, DROP
da 1. es viel schneller ist 2. da ich die Verbindung eigentlich verbieten möchte, erscheint mir dies richtig. [/bearbeiten]
Wenn ich es jetzt versuche, ping facebook.com
bekomme ich
From myname (xxx.xxx.xxx.xxx) icmp_seq=1 Destination Port Unreachable
das ist genau das, was ich erwarte. Aber wenn ich meinen Browser (Firefox) verwende, um facebook.com zu öffnen, öffnet sich die Seite trotzdem, was nicht das ist, was ich erwarte. Ich habe versucht, neu zu laden und eine andere Facebook-Domain (facebook.de) zu öffnen, was ich vorher nicht probiert hatte, um Probleme mit dem Browser-Cache auszuschließen, aber das hat nicht geholfen.
Da ich oft DROP
stattdessen sehe REJECT
, habe ich das auch versucht, aber es hat am Ergebnis nichts geändert.
Die Frage ist nun, warum der Browser eine Webseite nicht laden kann, wenn die entsprechende IP blockiert ist? Wie kommt der Browser durch, wenn der Ping blockiert ist? Es ist offensichtlich, dass ich etwas übersehe, aber ich kann nicht herausfinden, was es ist.
Antwort1
Host-IP abrufen:
host -t a facebook.com
CIDR suchen
whois 173.252.120.68 | grep CIDR
Und Subnetz blockieren
iptables -A OUTPUT -p tcp -d 173.252.120.68/18 -j DROP
und Domänen blockieren:
iptables -A OUTPUT -p tcp -d www.fаcebook.com -j DROP
iptables -A OUTPUT -p tcp -d fаcebook.com -j DROP