Firewall
在命令行上使用 nftables 更改策略
使用 iptables,我可以將例如 INPUT 策略更改為
iptables -P INPUT DROP
drop。有什麼選擇可以做同樣的事情nft
嗎?編輯
/etc/nftables.conf
當然可以,但這不是我想要的。
是的,您可以在不更改其內容的情況下重新定義已經存在的基礎鏈的策略。沒有單獨的關鍵字,它仍然是
add
:nft add chain family mytable mychain '{ policy drop; }'
命名空間中的完整範例:
test.nft
:flush ruleset table ip t { chain c { type filter hook output priority 0; policy accept; oif lo accept counter } }
設置:
# ip netns add test # ip netns exec test nft -f test.nft
改造:
# ip netns exec test nft add 'chain ip t c { policy drop; }' # ip netns exec test nft list ruleset table ip t { chain c { type filter hook output priority filter; policy drop; oif "lo" accept counter packets 0 bytes 0 } }
政策改變了,規則沒有改變。在這裡使用 nft 0.9.5 和 kernel 5.7.x 。根據版本行為可能會有所不同。
2015 年的核心送出只允許這樣做:
netfilter:nf_tables:如果存在,則允許在沒有鉤子的情況下更改鏈策略
如果存在現有的基礎鏈,我們必須允許更改預設策略而不指示掛鉤資訊。
但是,如果鏈不存在,我們必須強制掛鉤屬性的存在。
簽字人:Pablo Neira Ayuso pablo@netfilter.org
在此之前(圍繞核心 4.1),必須再次提供基本鏈定義(順便說一下不能更改):
# ip netns exec test nft add 'chain ip t c { type filter hook output priority 0; policy drop; }'