
Ich verwende /etc/hosts, um Domänen zu blockieren, auf die ich keinen Zugriff haben möchte, und das funktioniert bei den meisten Domänen. Beim Telegram-Webchat (web.telegram.org) scheint es jedoch nicht zu funktionieren.
Ich habe die folgenden Zeilen in meiner Datei:
0.0.0.0 web.telegram.org
0.0.0.0 www.telegram.org
0.0.0.0 telegram.org
Ich kann aber immer noch auf die Website gehen und die volle Funktionalität der Web-App nutzen. Mache ich etwas falsch?
Antwort1
Da Sie /etc/hosts bearbeiten, haben Sie Root-Zugriff. Der beste und eleganteste Weg ist die Verwendung von iptables (d. h. Blockieren von Paketen, die die Box zu www.telegram.org verlassen).
Sie können den Test durchführen, indem Sie iptables-Befehle in die Befehlszeile eingeben.
# iptables -A OUTPUT -d www.telegram.org -j REJECT
Sie können sehen, dass Sie die Regel mit Folgendem hinzugefügt haben:
# iptables -S OUTPUT
-P OUTPUT ACCEPT
-A OUTPUT -d 149.154.167.120/32 -j REJECT --reject-with icmp-port-unreachable
Und Sie können einen Zugriffsversuch testen mit:
# wget web.telegram.org
--2017-04-26 14:38:01-- http://web.telegram.org/
Resolving web.telegram.org... 149.154.167.120, 2001:67c:4e8:fa60:3:0:811:140
Connecting to web.telegram.org|149.154.167.120|:80... failed: Connection refused.
Connecting to web.telegram.org|2001:67c:4e8:fa60:3:0:811:140|:80... failed: Network is unreachable.
Sie haben uns nicht gesagt, welches Betriebssystem Sie verwenden. Sie haben also möglicherweise keine neuere Version von iptables und Ihnen fehlt daher möglicherweise der Schalter -S. Sie können -L verwenden:
# iptables -L OUTPUT
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
REJECT all -- anywhere 149.154.167.120 reject-with icmp-port-unreachable
Wenn Sie die gerade hinzugefügte Regel löschen möchten, ersetzen Sie im obigen Befehl einfach -A durch -D.
Hinweis: Wenn diese Regeln nach einem Neustart dauerhaft gelten sollen, müssen Sie iptables-save > /etc/sysconfig/iptables
sie manuell zu /etc/sysconfig/iptables hinzufügen.
iptables ist ziemlich kompliziert, aber die Manpages sind recht hilfreich.
(Auf meinen Servern verwende ich CentOS 6 und 7. Firewalld ist das neue Standard-Frontend unter CentOS 7, aber ich habe iptables-services installiert und verwende es stattdessen, was vollständig unterstützt wird.)
Antwort2
Übrigens würde ich den Host auf 127.0.0.1 statt auf 0.0.0.0 einstellen ... das könnte Ihr ursprüngliches Problem sein.
Ein anderer Trick besteht darin, eine spezielle Route für die betreffenden IP-Nummern hinzuzufügen:
# route add -host 10.11.12.13 dev lo
Sie müssen diese zu Ihrem rc.local (oder einem gleichwertigen Programm) hinzufügen, damit diese Regeln beim Neustart neu erstellt werden.
Ich habe dies verwendet, um Personen zu blockieren, die versucht haben, die Passwörter meines Website-Unternehmens zu knacken.
Antwort3
Es verwendet WebSockets, um Nachrichten abzurufen
hinzufügen
0.0.0.0 zws2.web.telegram.org
PS: Überprüfen Sie, wie Sie WebSockets in Chrome DevTools debuggen