nftablesを使用してDebian 10でLinuxルーターを設定しようとしています。私はいくつかのチュートリアルに従い、問題の混乱を重み付けるいくつかの読書をしました。私のルーター、WAN、管理、LAN1には3つのインターフェースがあり、デフォルト設定は期待どおりに機能しますが、サーバーで更新を実行しようとすると、WANインターフェースからのローカルトラフィックがブロックされることがわかりました。私のnftable.confは次のようになります
#!/usr/sbin/nft -f
flush ruleset
table inet filter {
chain output {
type filter hook output priority 0; policy accept;
}
chain input {
type filter hook input priority 0; policy accept;
iif WAN ip protocol icmp accept
iif WAN drop
iif LAN1 ip protocol icmp accept
iif LAN1 udp dport {67, 68} accept
iif LAN1 counter drop
iif Management accept
}
chain forward {
type filter hook forward priority 0; policy drop;
iif LAN1 oifname WAN accept
iif WAN oifname LAN1 ct state related,established accept
}
}
table ip nat {
chain prerouting {
type nat hook prerouting priority 0; policy accept;
}
chain postrouting {
type nat hook postrouting priority 100; policy accept;
oif WAN masquerade
}
}
icmpルールのためにWANインターフェイスを介してIPアドレスをpingできますが、WANインターフェイスへの他のすべてのトラフィックをブロックしたいので、「iif WAN削除」ルールを導入するとDNSはドメイン名を解決できません。 WANインターフェイスを介してサーバーに接続できます。
私が理解したように、出力ルールはホストからのアウトバウンドを許可する必要があり、ホストトラフィックが入力フィルタによってブロックされる理由を理解できません。
LAN1インターフェイスに接続されているクライアントノードで実行されたテストによっては、クライアントはトラフィックが制限されていなくてもホストを閲覧できます。
誰もが私の間違いを指摘したり、これがホストトラフィックに影響を与える理由を説明したりできます。
ありがとう
答え1
入力チェーンのルールはWANに到着し、ルータ自体に向かうすべてのパケットを破棄します(ICMPパケットを除く)。ルータ自体が接続を確立できるようにするには、iff WAN ct state established,related accept
転送チェーンのルールと同様のルールが必要です。この規則が最初に来る必要がありますiff WAN drop
。良い測定のために、ループバックインターフェイスの明示的な受け入れルールも追加します。