iptables ≠ nftables: почему правила "не работают"Частая ошибка при настройке firewall на дистрибутивах (Ubuntu 22.04, Debian 12, RHEL 9):
🔹 админ вносит правила в
iptables, но трафик не фильтруется.👉 Причина - современные системы используют nf_tables backend, и старый
iptables лишь транслируется в nftables. В итоге: часть правил "теряется" или конфликтует.Как проверить:
# какой бэкенд используется
iptables -V
# если увидите "nf_tables" — значит это не классический iptables
Что делать правильно:
1. Если нужен привычный iptables:
update-alternatives --config iptables
→ выбрать
iptables-legacy (и для ip6tables тоже).2. Лучше сразу перейти на
nftables:
nft list ruleset
nft add rule inet filter input tcp dport 22 accept
Когда применять:
- Если правила не применяются, хотя "вбиты" в iptables.
- При миграции старых скриптов/ansible-ролей.
- Для единообразия конфигураций в новых ОС.
💡 Новые проекты сразу вести на
nftables. Старые - либо переводить, либо жёстко фиксировать iptables-legacy.#Linux@linux_odmin #Шпаргалка@linux_odmin #Команды@linux_odmin
👉 @linux_odmin