Как заблокировать https сайт с iptables

Я хочу заблокировать сайт некоторые HTTPS как youtube.com, facebook.com.

Я знаю, что мы не можем блокировать это с помощью правил url. так как url зашифрован.

поэтому я попытался заблокировать все DNS-запросы, которые содержат домен, который я хочу отфильтровать. Поэтому я добавил следующее правило:

iptables -A OUTPUT -p udp --dport 53 -m string --domain yahoo.com -j DROP

но youtube продолжает работать. Но через некоторое время бездействия (около 15 мин) youtube блокируется.

есть ли объяснение?

Как я могу заставить youtube быть заблокирован немедленно?

21
задан Mohamed KALLEL
20.11.2022 9:41 Количество просмотров материала 3159
Распечатать страницу

4 ответа

что вы делаете, будет иметь эффект, но есть несколько проблем:

  • браузеры и операционные системы кэшируют DNS-запросы. Они не обязательно вызывают полный поиск DNS при каждой загрузке сайта.

  • некоторые браузеры могут попробовать альтернативные вещи, если DNS-сервер заблокирован (например, связаться с собственным DNS-сервером), потому что они думают, что есть сетевая проблема. Google Chrome может это сделать.

  • Google Chrome и другие браузеры могут вскоре реализовать "DNS через HTTPS", что означает, что ничего делать с портом 53 не будет иметь никакого эффекта, так как он не будет использовать, что для DNS на всех.

  • блокировка по IP-адресу будет работать некоторое время, пока IP-адрес Youtube не изменится по какой-то причине.

  • опытные пользователи могут менять DNS-серверы, если вы не заблокировали эту возможность административно в своих системах.

Как я могу заставить youtube быть немедленно заблокирован?

"правильный" способ сделать то, что вы хотите,-это установить прозрачный прокси-сервер перехвата HTTPS "Man-in-the-Middle", который может фильтровать трафик HTTPS. Затем вы говорите прокси блокировать любой URL с youtube.com в нем.

вы не можете просто искать youtube.com на 443, поскольку он зашифрован, как вы, вероятно, выяснили.

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

вам придется установить SSL-сертификат прокси-сервера на каждой машине, которая использует прокси-сервер, чтобы избежать предупреждений безопасности.

2
отвечен LawrenceC 2022-11-21 17:29
#nslookup youtube.com

Non-authoritative answer:
Name:   youtube.com
Address: 172.217.16.46
Name:   youtube.com
Address: 172.217.20.206

iptables -t filter -A FORWARD -p tcp -s 192.168.1.0/24 -d 172.217.16.46 --dport 80 -j DROP
iptables -t filter -A FORWARD -p tcp -s 192.168.1.0/24 -d 172.217.20.206 --dport 80 -j DROP

источник:http://forum.oszone.net/post-692775-5.html

или

iptables -I FORWARD -s 10.0.0.0/24 -p tcp -m string --algo bm --string ".youtube.com" -j DROP

источник:http://moshelpers.ru/?q=node/71

или В первом примере у нас есть машина-шлюз для локальной сети, там мы создаем правило для блокировки например ресурса youtube.com он будет выглядеть так:

iptables -A FORWARD -m string --string "youtube.com" --algo kmp --to 65535 -j DROP

чтобы заблокировать адреса на машине Linux, немного отредактируйте правило код:

iptables -A INPUT -m string --string "youtube.com" --algo kmp --to 65535 -j DROP

источник: http://sudouser.com/blokirovka-nezhelatelnyx-url-s-pomoshhyu-iptables.html

и что бы разорвать tcp соединение сразу и без тайм-аута только для -p tcp вы можете попробовать следующие

-j REJECT --reject-with tcp-reset

источник:http://forum.ixbt.com/topic.cgi?id=76:10833

извините, все исходники - русские сайты:)

1
отвечен Alex_Krug 2022-11-21 19:46

команда:

iptables -A OUTPUT -p udp --dport 53 -m string --domain yahoo.com -j DROP

сначала ваша блокировка только udp и порт 53

iptables -I INPUT 1 -s 172.217.0.0/16 -j DROP
iptables -I FORWARD 1 -s 172.217.0.0/16 -j DROP

iptables -I INPUT 2 -s 157.240.0.0/16 -j DROP
iptables -I FORWARD 2 -s 157.240.0.0/16 -j DROP

сначала нужно заблокировать входные цепи, то есть там, где данных. Передняя цепь может быть не-необходимой для ваших потребностей. Затем я сделал пинг на youtube, а затем я сделал whois по этому IP, чтобы увидеть, какой блок им принадлежит.

наконец, я заблокировал все там IP, поэтому нам не нужно беспокоиться о DNS-поиске.

0
отвечен cybernard 2022-11-21 22:03

как заявил в комментарии @djsmiley2k вы, конечно, лицо кэширование DNS. Это означает, что ваш компьютер не запрашивает DNS-сервер для данного домена, если он недавно разрешил его.

чтобы обеспечить немедленную блокировку домена, необходимо принудительно очистить кэш DNS. В зависимости от ОС команды будут отличаться. Вы можете найти примеры здесь

в качестве резюме, сразу после добавления правила iptables, вы можете попробовать либо :

$ service nscd reload

или

$ service dnsmasq restart

или

$ rndc restart
0
отвечен vera 2022-11-22 00:20

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх