Telegramm mit /etc/hosts blockieren

Telegramm mit /etc/hosts blockieren

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/iptablessie 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

verwandte Informationen