Я хочу заблокировать в моей организации несколько веб-сайтов, которые также работают по протоколу https, например, Facebook, Twitter и Gmail. Squid не должен использоваться здесь согласно приказам высшего руководства. Мы можем использовать пакет Untangle Lite и iptables
.
Есть ли другой вариант, кроме Squid, чтобы сделать это? Также iptables
было бы полезно какое-то правило блокировать этот вид трафика.
я нашел это
iptables -t filter -I INPUT -m string --string facebook.com -j LOG --algo bm
iptables -t filter -I INPUT -m string --string facebook.com -j REJECT --algo bm
но https по-прежнему работает на машинах, кроме локальной машины.
Ответы:
Вместо сопоставления на основе URL-адреса попробуйте сопоставить на основе содержимого сертификата.
Вы также можете сопоставить отпечаток пальца, но если пункт назначения изменит или обновит свой сертификат, это приведет к аннулированию вашего правила.
источник
nat
таблицу (и в таблице nat нет цепочки INPUT), я думаю, что вы имели в видуfilter
. Кроме того, существует (очень) отдаленная вероятность того, что он сопоставляет пакеты, где 443 является клиентским портом-p tcp
правила, это не кажется чем-то полезным ..Брандмауэр не может контролировать, какие URL-адреса HTTPS пытается получить клиент, поскольку URL-адрес зашифрован. Брандмауэр может контролировать только те сайты, к которым клиент подключается, используя IP-адреса, но это не поможет, если версии сайта HTTP и HTTPS имеют один и тот же URL (и даже если это не так, у вас будет вести огромный список IP-адресов).
Единственный реалистичный способ заблокировать HTTPS - это полностью заблокировать его. Настаивайте на том, что все соединения должны быть действительными HTTP (т. Е. Клиент начинает с отправки
HTTP
строки и т. Д.). Это невозможно сделать только с помощью IPtables, вам нужен настоящий прокси с поддержкой протокола, такой как Squid. (Я не знаю, на что способен Untangle Lite.)Вы можете заблокировать большую часть трафика HTTPS, заблокировав исходящий трафик на порт 443, так как почти все серверы HTTPS находятся на этом порту. Или, следуя подходу белого списка, разрешить только исходящий трафик на порт 80 (обычный порт HTTP).
Другой подход заключается в прокси всех HTTP и HTTPS-соединений. Тогда вы можете сопоставить по URL. Это требует проведения атаки «человек посередине» на клиентов. Вы можете сделать это, если развернете свой собственный центр сертификации на всех клиентских компьютерах и зарегистрируете его в качестве корневого элемента доверия. Это можно считать неэтичным.
Независимо от того, что вы делаете, определенные пользователи будут устанавливать прокси за пределами вашей среды и запускать IP через HTTP или что-то в этом роде.
Похоже, вы либо пытаетесь решить социальную проблему с помощью технических средств, которая вряд ли когда-либо работает, либо делаете все возможное, чтобы реализовать глупое требование от руководства (в этом случае я бы пошел с блокировкой порта 443, возможно, только для определенные IP-адреса, которые позволят вам сообщить, что вы выполнили свою работу, независимо от того, насколько бесполезны).
источник
Я знаю один вариант.
Если у вас есть внутренние DNS-серверы для использования, поместите некоторые статические ссылки в данные зоны TLD, которые разрешают домены (которые вы не хотите устанавливать для внешних подключений), на 127.0.0.1. Таким образом, все хосты, использующие центральный DNS в вашей сети, будут преобразовывать (facebook.com/twitter.com per se) домены в петлевой адрес, который ни к чему не приведет.
Это будет работать, если у вас есть полный авторитетный контроль над конфигурацией решателя клиентских компьютеров вашей сети. Если рабочие станции / клиенты имеют разрешения на изменение / редактирование либо / etc / hosts, либо /etc/resolv.conf, то они могут обойти эту опцию.
источник
/etc/hosts
файл. Например:127.0.0.1 www.facebook.com
Опция заключается в черном дыре маршрутов к сетевым блокам: (перечислены для FB)
источник
Фильтр простого контента не может заблокировать сайт ssl.
Используйте средства защиты от вторжений, такие как snort / suricata.
Пример правила IPS : для блокировки URL-адресов ssl для определенного IP-адреса.
drop ip any 443 -> 192.168.3.30 any (content:".facebook.com"; msg:"Simplewall Ssl block for User30 : Urls => .facebook.com " sid:26648513;rev:1;)
drop ip any 443 -> 192.168.3.30 any (content:".fbcdn.net"; msg:"Simplewall Ssl block for User30 : Urls => .fbcdn.net " ;sid:11469443;rev:1;)
drop ip any 443 -> 192.168.3.30 any (content:".youtube.com"; msg:"Simplewall Ssl block for User30 : Urls => .youtube.com " ;sid:13989722;rev:1;)
Скачать Simplewall : в правилах политики simplewall, общих для Squid + Suricata IPS.
источник
Вы должны поместить это в цепочку FORWARD, например,
Это повлияет на другие системы в сети, кроме брандмауэра.
источник