Сценарий: я написал iptables
правила для хоста, на котором движок DPI наблюдает за очередями Netfilter: правила брандмауэра ставят трафик, входящий на этот хост, в разные очереди Netfilter в зависимости от того, идет ли трафик из определенного ipset
мой.
в FORWARD
цепочке, все соединения ставятся в очередь в разных NFQUEUES
: Движок DPI наблюдает в очередях пользовательского пространства за пакетами, отправленными iptables, если обнаружено запрещенное соединение, он помечает пакет специальным значением; Механизм DPI повторно вставляет запрещенные пакеты в стек; в POSTROUTING
цепь Я проверяю, помечены ли соединения этим специальным значением, если да, то я DROP
их.
Все работает нормально, но ...
Проблема: движок DPI в порядке, но не идеален: иногда,
RELATED
, согласно машине conntrack), который не помечен как запрещенный, но я также хотел бы заблокировать соответствующее соединение.Во втором случае я хочу принять меры: в качестве примера для случая 2 представьте, что механизм DPI хочет заблокировать YouTube, но ему не удается сделать это быстро; он позволяет соединению YouTube открывать другое соединение, помеченное как SSL от механизма DPI; Механизм DPI, наконец, блокирует YouTube, но соединение SSL дико и свободно; Я не могу указать движку DPI блокировать SSL-соединения, независимо от того, какие соединения их открывали.
Соображения: как объяснено в Сценарий, приходящие пакеты POSTROUTING
цепочка может быть помечена 0 (это значение по умолчанию, поэтому механизм DPI не предпринимал никаких действий) или этим специальным значением (механизм DPI обнаружил запрещенное соединение и пометил его): простой
iptables -t mangle -A POSTROUTING -m mark --mark DROPVALUE -j DROP
почти всегда достаточно, но в Проблема В разделе я написал, что соединения, ОТНОСЯЩИЕСЯ к запрещенным, но не рассматриваются как таковые движком DPI, потому что даже если они были созданы с помощью запрещенного соединения, его протокол не заносится в черный список, и по этой причине они не считаются запрещенными. Это правильно, потому что я не могу занести в черный список SSL
и HTTPS
.
Мне нужно заблокировать соединения RELATED
запрещенным: RELATED
и ESTABLISHED
(если я хорошо понял) не относятся к конкретным соединениям, но мне нужно сослаться на запрещенные соединения.
Вопрос: можно ли сбрасывать соединения RELATED
к соединениям для сброса (или уже сброшенных) в iptables
? Или какой-нибудь взлом с conntrack
это необходимо?
Заранее благодарим за любое предложение.
Ты не понимаешь RELATED
. Это не используется для каждого соединения, которое может установить один адрес. Он используется только для фактически связанных данных, таких как поток данных FTP, связанный с управляющим FTP-соединением, или сообщения об ошибках ICMP, связанные с открытым соединением. Очень мало таких подключений, которые действительно будут соответствовать RELATED
.