Firewall rule ordering: почему одно правило ломает всё ниже
Добавили всего одно правило в firewall - и часть сервисов перестала работать.
При этом сами правила выглядят правильными, а нужные allow вообще присутствуют в конфигурации.
Во многих firewall обработка идёт сверху вниз, и первое совпавшее правило завершает проверку. Всё, что находится ниже, уже не участвует.
iptables -L INPUT --line-numbers -n -v
Сразу видно порядок правил и счётчики срабатываний. Нередко оказывается, что трафик вообще не доходит до нужного ACCEPT.
Если используется nftables, полезнее смотреть итоговый ruleset, а не отдельные таблицы.
nft list ruleset
Так проще заметить цепочки, jump’ы и правила, которые перехватывают трафик раньше ожидаемого.
Когда причина всё ещё неочевидна, помогает трассировка обработки пакета.
nft monitor trace
Она показывает, через какие цепочки проходит пакет и на каком именно правиле обработка заканчивается.
Ещё один полезный приём - посмотреть, какое правило действительно набирает счётчики.
iptables -L -v -n
Иногда именно здесь выясняется, что проблема не в “неправильном” правиле, а в том, что до нужного правила пакет никогда не доходит.
В больших конфигурациях порядок правил зачастую важнее их содержания. Одно слишком общее DROP, REJECT или широкое условие в начале цепочки способно незаметно перечеркнуть десятки корректных правил ниже.
N.A.