debian11_nftables_限制ipv6公網訪問特定埠
阿新 • • 發佈:2022-05-28
debian11_nftables_限制ipv6公網訪問特定埠
轉載註明來源: 本文連結 來自osnosn的部落格,寫於 2022-05-28.
參考
背景環境
- 現在有不少家用的路由器,比如 TPLINK, 華為路由,都已經支援 ipv6 了。
但它們預設都不允許從外網,通過ipv6訪問內部的機器。 - 這些路由器的防火牆配置,ipv4防火牆有一些功能可以設定,ipv6防火牆就只有一個開關。
關閉這個ipv6防火牆開關之後,其實就把內網的機器完全暴露出去了。 - 這時候,就需要你自己去配置,內網機器自身的防火牆規則,從而保護內網服務。
僅限制tcp埠的ipv6訪問
- 這是個簡單的例子。只是為了限制某幾個埠的ipv6公網訪問。
- debian 安裝 nftables包。啟用nftables服務,
apt install nftables; systemctl enable nftables;
- 如果系統有什麼 restore-iptables 的服務,關掉它。
- 可以看到 /etc/nftables.conf 中有。
#!/usr/sbin/nft -f flush ruleset table inet filter { chain input { type filter hook input priority 0; } chain forward { type filter hook forward priority 0; } chain output { type filter hook output priority 0; } }
- 只需要增加兩行,就可以針對ipv6,限制埠從外網訪問。比如限制22,8888,1080 三個tcp口。改為,
這個規則隻影響ipv6,不影響ipv4。
#!/usr/sbin/nft -f define ipv6_ports = { 22,8888,1080 } flush ruleset table inet filter { chain input { type filter hook input priority 0; ip6 saddr { fd00::/8, fe80::/64 } tcp dport $ipv6_ports ct state { new, untracked } accept; ip6 saddr ::/0 tcp dport $ipv6_ports ct state { new, untracked } drop; } chain forward { type filter hook forward priority 0; } chain output { type filter hook output priority 0; } }
- 增加的第二行,可以用 drop,也可用 reject,看你自己喜歡。
drop,訪問時,沒反應。
reject,訪問時,馬上返回 Connection refused。 - 修改後,執行
nft -f /etc/nftables.conf
生效。
或者重啟整個系統。
----end----
轉載註明來源: 本文連結 https://www.cnblogs.com/osnosn/p/16320603.html
來自 osnosn的部落格 https://www.cnblogs.com/osnosn/ .