SpecialistOff.NET / Вопросы / Статьи / Фрагменты кода / Резюме / Метки / Помощь / Файлы
НазадМетки: nftables межсетевой экран nft
Все правила
nft list ruleset
Правила из таблицы
nft list table inet filter
Правила из цепочки
nft -n -a list chain inet filter input
Список элементов
nft -n -a list set inet filter mesh-vpn
nft add inet filter input ip saddr 10.0.0.0/8 iifname mesh-vpn accept;
nft add inet filter input position 8 ip saddr 10.0.0.0/8 iifname mesh-vpn accept;
Пример файла
#!/usr/sbin/nft -f
flush ruleset
table ip filter { chain input { type filter hook input priority 0; policy drop; iif lo accept comment "Accept any localhost traffic"; ct state invalid drop comment "Drop invalid connections"; ct state established,related accept comment "Accept traffic originated from us"; ip protocol igmp accept comment "Accept IGMP" tcp dport 22 accept comment "Accept SSH on port 22"; tcp dport 80 accept comment "Accept HTTP on port 80"; tcp dport 443 accept comment "Accept HTTPS on port 443"; } chain forward { type filter hook forward priority 0; } chain output { type filter hook output priority 0; } }
Частичное добавление правил
cat << EOF | nft -f -
table ip filter {
chain input {
tcp dport 80 accept comment "Accept HTTP on port 80"
}
}
table ip nat {
chain prerouting {
type nat hook prerouting priority -100;
policy accept;
ip daddr 10.10.10.10 tcp dport { 8093 } dnat to 192.168.0.10:8093 comment "Accept gitlab-runner on port 8093";
}
}
EOF
Добавление элемента
nft add set filter mesh-vpn \{ type ipv4_addr \; \}
nft add element inet fail2ban f2b-banned { <ip> }
Удаление элемента
nft delete element inet fail2ban f2b-banned { <ip> }