I picked up my iptables base ruleset[1], and applied the migration techniques from the nftables wiki[2].
On Gentoo,
net-firewall/iptables needs nftables useflag for the translate utilities. These tools do not need superuser access.The iptables service saves state to
/var/lib/iptables/rules-save. It is not world readable.Now we have the tool and the ruleset to translate.
$ iptables-restore-translate -f /var/lib/iptables/rules-save
Thus follows my current base ruleset.
#!/sbin/nft -f
flush ruleset
table filter {
chain input {
type filter hook input priority 0; policy drop;
ct state invalid counter drop
tcp flags != syn ct state new counter drop
tcp flags & (fin|syn|rst|psh|ack|urg) == (fin|syn|rst|psh|ack|urg) counter drop
tcp flags & (fin|syn|rst|psh|ack|urg) == (0x0) counter drop
#ip frag-off != 0 counter log prefix "nft: " level notice drop
iif lo ip saddr 127.0.0.1/8 accept
ct state established,related accept
counter log prefix "nfti: " level notice drop
}
chain output {
type filter hook output priority 0; policy drop;
ct state invalid counter drop
oif lo ip daddr 127.0.0.1/8 accept
ct state new,established accept
counter log prefix "nfto: " level notice drop
}
chain forward {
type filter hook forward priority 0; policy drop;
counter log prefix "nft: " level notice drop
}
}Not all rules are successfully translated, or they don't work as I expected. I had to substantially verify and rewrite many translated rules.
For example, this is totally daft.
$ iptables-translate -A INPUT -p icmp --icmp-type any -j ACCEPT nft add rule ip filter INPUT counter accept $ /sbin/iptables-translate -A output -p icmp --icmp-type any -j DROP nft add rule ip filter output counter drop
I had to comment off the following rule, which worked very well in iptables, but not in nftables. Please let me if you understand.
$ /sbin/iptables-translate -A INPUT -f -j DROP nft add rule ip filter INPUT ip frag-off != 0 counter drop
My understanding is not complete, nor do I profess to be an expert. Please feedback.
[1] iptables base ruleset
[2] Moving from iptables to nftables
No comments:
Post a Comment