Блокировка Telegram с помощью /etc/hosts

Блокировка Telegram с помощью /etc/hosts

Я использую /etc/hosts для блокировки доменов, которые я не хочу делать доступными, и это работает для большинства доменов. Однако, похоже, это не работает для веб-чата Telegram (web.telegram.org).

В моем файле есть следующие строки:

0.0.0.0 web.telegram.org
0.0.0.0 www.telegram.org
0.0.0.0 telegram.org

Но я все еще могу зайти на сайт и использовать полный функционал веб-приложения. Я что-то делаю не так?

решение1

Поскольку вы редактируете /etc/hosts, у вас есть root-доступ. Лучший и самый элегантный способ — использовать iptables (т.е. блокировать пакеты, покидающие ящик на www.telegram.org)

Вы можете проверить это, введя команды iptables в командной строке.

# iptables -A OUTPUT -d www.telegram.org -j REJECT

Вы можете видеть, что вы добавили правило с помощью:

# iptables -S OUTPUT

-P OUTPUT ACCEPT
-A OUTPUT -d 149.154.167.120/32 -j REJECT --reject-with icmp-port-unreachable

И вы можете проверить попытку доступа к нему с помощью:

# 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.

Вы не сообщили нам, какую ОС вы используете, поэтому у вас может быть не новая версия iptables, и, следовательно, у вас может отсутствовать ключ -S. Вы можете использовать -L:

# iptables -L OUTPUT

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  anywhere             149.154.167.120     reject-with icmp-port-unreachable 

Если вы хотите удалить только что добавленное правило, просто замените -A на -D в команде выше.

Примечание: если вы хотите, чтобы эти правила стали постоянными после перезагрузки, вам необходимо iptables-save > /etc/sysconfig/iptablesвручную добавить их в /etc/sysconfig/iptables.

iptables довольно сложен, но страницы руководства весьма полезны.

(На моих серверах установлены CentOS 6 и 7. firewalld — это новый интерфейс по умолчанию в CentOS 7, но я установил iptables-services и использую его вместо него, который полностью поддерживается.)

решение2

Кстати, я бы установил хост 127.0.0.1 вместо 0.0.0.0... это может быть вашей изначальной проблемой.

В любом случае, еще один трюк — добавить специальный маршрут для подозрительного IP-номера(ов):

 # route add -host 10.11.12.13 dev lo

Вам придется добавить их в ваш rc.local (или эквивалент), чтобы эти правила были созданы заново при перезагрузке.

Я использовал это, чтобы заблокировать людей, пытавшихся взломать пароль веб-сайта моей компании.

решение3

он использует вебсокеты для получения сообщений

добавлять

0.0.0.0 zws2.web.telegram.org

P.S. Проверьте, как отлаживать веб-сокеты в Chrome DevTools.

Связанный контент