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-конфигов.
Сборка: опция без libnfnetlink
В 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.

