tgoop.com/linuxcamp_tg/369
Create:
Last Update:
Last Update:
nft: современный фаервол в Linux, который заменил iptables
nft — это утилита для управления nftables, новой подсистемой фаервола в ядре Linux. Она пришла на смену старым и запутанным инструментам: iptables, ip6tables, ebtables, arptables. Теперь всё делается в одной системе, единым языком, более эффективно и понятно.
Зачем нужен nft?
- Чтобы блокировать или разрешать трафик (фаервол).
- Для перенаправления портов (DNAT / SNAT).
- Чтобы настроить NAT, логирование, rate limiting и т.д.
- Управлять IPv4, IPv6, Ethernet, ARP в одной таблице.
Установка nft
На многих дистрибутивах nft уже предустановлен. Если нет:
# Debian / Ubuntu
sudo apt install nftables
# Red Hat / CentOS / Fedora
sudo dnf install nftables
# Arch Linux
sudo pacman -S nftables
Как работает nftables
В отличие от iptables, где каждая подсистема жила в своём мире (разные команды для IPv4, IPv6, ARP...), nftables работает с едиными таблицами и цепочками, и одним конфигом.
Простой пример через команды:
# Создаём таблицу и цепочку
sudo nft add table inet filter
sudo nft add chain inet filter input { type filter hook input priority 0 \; }
# Блокируем IP-адрес
sudo nft add rule inet filter input ip saddr 203.0.113.42 drop
Конфиг-файл "/etc/nftables.conf". В реальности, правила лучше описывать в конфиге, чтобы сохранять и применять при старте:
#!/usr/sbin/nft -f
table inet filter {
chain input {
type filter hook input priority 0;
policy accept;
# Блокируем IP
ip saddr 203.0.113.42 drop
# Разрешаем SSH
tcp dport 22 accept
}
}
Применить файл:
sudo nft -f /etc/nftables.conf
И включить автозапуск:
sudo systemctl enable nftables
sudo systemctl start nftables
Как проверить, что правила работают
Посмотреть текущие правила:
sudo nft list ruleset
Или только одну таблицу:
sudo nft list table inet filter
Вывод будет в читабельной иерархии, например:
table inet filter {
chain input {
type filter hook input priority 0; policy accept;
ip saddr 203.0.113.42 drop
tcp dport 22 accept
}
}
Чтобы перезаписать все старые правила, используйте:
sudo nft flush ruleset
Что делает nft круче iptables
- Одна система вместо четырёх: больше не нужно думать iptables vs ip6tables.
- Наборы (sets): можно сразу заблокировать десятки IP без повторений.
- Списки и словари: условная логика в правилах.
- Rate limiting: ограничение по частоте (например, не более 10 пакетов/сек).
- Логирование прямо в правило: встроенная поддержка log.
- Конфиги, читаемые человеком, пригодные для версионирования.
- Высокая производительность: меньше затрат ядра, быстрее работает.
Совет
Если вы раньше использовали iptables, не стоит мешать его правила с nftables. Лучше отключить iptables и перейти на nft полностью:
sudo systemctl disable iptables
sudo systemctl disable ip6tables
LinuxCamp | #utils
BY LinuxCamp | DevOps
Share with your friend now:
tgoop.com/linuxcamp_tg/369