Nftables
Материал из ROSA Wiki
Фаервол nftables
Введение
Статья описывает пример настройки фильтрафии сетевого трафика через nftables.
Установка пакетов
sudo dnf install nftables
Настройка фильтрации
Настройка выполняется путем правки конфигурационного файла /etc/sysconfig/nftables.conf.
Ниже приведен простой пример, в котором разрешены все исходящие соединения, а входящие разрешены только по TCP на порты 4510 (SSH перенесен со стандартного порта 22 на нестандартный — 4510), 80 и 443.
#!/usr/sbin/nft -f
flush ruleset
table ip filter {
chain input {
type filter hook input priority 0; policy drop;
# Разрешаем loopback (локальные соединения)
iif "lo" accept
# Разрешаем установленные и связанные соединения
ct state established,related accept
# Разрешаем ICMP (пинг и др. служебные сообщения)
meta l4proto icmp accept
# Разрешаем IPv6 ICMP (если используется IPv6)
meta l4proto ipv6-icmp accept
# Разрешаем HTTP (порт 80)
tcp dport 80 accept
# Разрешаем HTTPS (порт 443)
tcp dport 443 accept
# ssh
tcp dport 4510 accept
# Всё остальное — отбрасываем (policy drop уже задан)
}
chain forward {
type filter hook forward priority 0; policy drop;
}
chain output {
type filter hook output priority 0; policy accept;
}
}
После первичной настройки перезапустите службу nftables:
sudo systemctl restart nftables
Если не выдано ошибки, то значит правила фаервола были прогружены. В таком случае добавьте службу в автозапуск:
sudo systemctl enable nftables
После правки правил в дальнейшем выполняйте:
sudo systemctl reload nftables