1. 程式人生 > 其它 >debian11_nftables_限制ipv6公網訪問特定埠

debian11_nftables_限制ipv6公網訪問特定埠

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/ .