Можно ли заставить iptables вернуться к фильтрации без сохранения состояния под нагрузкой, во время атаки и т. Д., Когда таблицы отслеживания соединений заполнены и новые соединения вот-вот будут сброшены?
Я знаю, что это может иметь серьезные последствия для безопасности, и поэтому резервные правила следует выбирать очень консервативно. Кроме того, NAT неизбежно сломается при отключении отслеживания соединения, но здесь это не проблема (рассматриваемый хост является фактическим межсетевым экраном).
Любое решение, скорее всего, будет состоять из двух частей:
Это можно сделать? Если нет, есть ли лучший способ, чем обнаружение переполнения таблицы с помощью какого-либо анализа журнала и реакции путем вставки или удаления правил или выгрузки модуля отслеживания соединений?
Если вы столкнулись с полной таблицей отслеживания подключений, просто увеличьте ее.
Установите следующее в /etc/sysctl.conf
или файл, который включает:
net.ipv4.netfilter.ip_conntrack_max = 131072
(Увеличивайте число, пока не станет достаточно места.)
На гораздо более старых серверах Linux вы должны использовать эквивалентный старый устаревший sysctl:
net.ipv4.ip_conntrack_max = 131072
Чтобы применить изменение, перезагрузитесь или запустите:
sysctl -p
При высокой нагрузке, особенно при большом количестве подключений, да, он начнет тормозить. Так что отказ от гражданства - хорошая идея.
К сожалению, на лету нет возможности вернуться к фильтрации без сохранения состояния. Однако вы можете просто пропустить состояния для интенсивного трафика: udp, порт 80, ... используя NOTRACK цель.
При очень высокой нагрузке я бы рекомендовал по возможности полностью отказаться от состояния.