Выпуск iptables 1.8.11

10 ноября 2024 вышел iptables 1.8.11. Несмотря на курс дистрибутивов в сторону nftables, userspace iptables продолжают развивать: в основном как iptables-nft (знакомый синтаксис поверх nftables) плюс утилиты перевода старых правил.

Зачем релиз, если есть nftables

Классический backend iptables давно не в приоритете ядра, а многие дистрибутивы уже по умолчанию заводят правила через nftables. При этом в проде до сих пор живут скрипты, плейбуки и legacy-цепочки на синтаксисе iptables/arptables/ebtables.

iptables-nft как раз закрывает этот разрыв: команды остаются привычными, а в ядре работает nftables. Релизы вроде 1.8.11 поддерживают совместимость и упрощают миграцию, а не «воскрешают» legacy-стек как единственный путь.

Что нового в 1.8.11

arptables-translate

Появилась утилита arptables-translate: правила arptables можно перевести в формат nftables, не переписывая конфиг вручную. Логика та же, что у iptables-translate / ebtables-translate: сначала перевод, потом проверка и применение.

# пример идеи использования (синтаксис как у семейства *-translate)
arptables-translate -A INPUT -j DROP
# вывод: эквивалентные правила nft

Расширения ebtables-nft

В ebtables-nft добавили поддержку команд --change-counters, --replace и --list-rules. Счётчики правил можно задавать через -c N,M, есть обнуление отдельных правил. Это удобно при отладке bridge/L2-фильтрации, когда нужно сбросить counters без пересборки всей таблицы.

iptables-translate: TPROXY и xt_socket

В iptables-translate улучшили покрытие целей: добавлена поддержка TPROXY и расширения xt_socket. Старые правила с прозрачным проксированием и проверкой сокетов проще переносить на nftables-эквивалент. Также унифицировали имена протоколов, чтобы iptables и iptables-save не расходились в трактовке.

Оптимизация iptables-save

В iptables-save убрали лишние вызовы getprotobynumber(). На больших наборах правил сохранение конфига становится быстрее: меньше обращений к resolver’у протоколов при дампе. Мелочь, но на хостах с тысячами правил это заметно в CI и при массовом бэкапе firewall-конфигов.

В configure появилась возможность отключить сборку с libnfnetlink. Полезно для минимальных сборок, где зависимости режут под конкретный use-case.

Как смотреть версию и обновляться

На типичном сервере:

iptables -V
# iptables v1.8.x (nf_tables)  - если backend nft
# или (legacy)

# Debian/Ubuntu (когда пакет догонит upstream)
apt-cache policy iptables
sudo apt update && sudo apt install --only-upgrade iptables

# из исходников netfilter
# https://netfilter.org/projects/iptables/downloads.html

Перед массовым обновлением на проде имеет смысл снять снимок правил и прогнать перевод на тестовом стенде:

sudo iptables-save > /root/iptables-$(date +%F).rules
iptables-restore-translate -f /root/iptables-$(date +%F).rules > /tmp/rules.nft
# проверить, затем применять через nft/iptables-nft по вашей схеме

Итог

iptables 1.8.11 не отменяет nftables, а укрепляет переходный слой: arptables-translate, доработки ebtables-nft, лучший translate для TPROXY/xt_socket, быстрее iptables-save, гибче сборка. Если инфраструктура ещё на iptables-синтаксисе, имеет смысл обновить пакет, когда он появится в вашем дистрибутиве, и постепенно переводить правила через семейство *-translate.

Источники и ссылки


Комментарии загружаются…