nftables ルールはトラフィックをブロックしません。

nftables ルールはトラフィックをブロックしません。

私はNFtablesをテストしており、ens37とens38 2インターフェースを持つLinuxシステムでデフォルトのルーティングファイアウォールを設定しようとしています。これはこれら2つのインターフェースのifconfig出力です。

ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.3  netmask 255.255.255.0  broadcast 192.168.0.255
        ether 00:0c:29:74:33:e7  txqueuelen 1000  (Ethernet)
        RX packets 20  bytes 2524 (2.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 156  bytes 9952 (9.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens38: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.4  netmask 255.255.255.0  broadcast 192.168.0.255
        ether 00:0c:29:74:33:f1  txqueuelen 1000  (Ethernet)
        RX packets 147  bytes 9340 (9.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 18  bytes 1672 (1.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens38をWANポートにエミュレートし、LAN以外のすべてのインバウンドトラフィックをブロックし、LANトラフィックのアウトバウンドを許可したいと思います。

次の場所にこれらの規則が設定されています/etc/nftables.conf

#!/usr/sbin/nft -f

flush ruleset

table ip filter {
    # allow all packets sent by the firewall machine itself
    chain output {
        type filter hook output priority 100; policy accept;
    }

    # allow LAN to firewall, disallow WAN to firewall
    chain input {
        type filter hook input priority 0; policy accept;
        iifname "ens37" accept
        iifname "ens38" drop
    }

    # allow packets from LAN to WAN, and WAN to LAN if LAN initiated the connection
    chain forward {
        type filter hook forward priority 0; policy drop;
        iifname "ens37" oifname "ens38" accept
        iifname "ens38" oifname "ens37" ct state related,established accept
    }
}

ルールが成功したかどうかをテストするために、netcatを使用してリスナーを設定しました。

nc -lp 80 -s 192.168.0.3

次に、netcatを使用して別のインターフェイスから接続します。

nc 192.168.0.3 80 -s 192.168.0.4

私の問題は、これらのnftablesルールがシミュレートされたWANポートからのトラフィックをブロックしないことです。 netcat接続は双方向で完全に機能しますが、これは私が望むものではありません。

を実行すると、nft list table filter私が期待する出力ルールが表示されます。

私はnftablesを初めて使用します。これら2つのインターフェイスに対してこれらのルールが正しく機能するようにするにはどうすればよいですか?現在のアプローチにはどのような問題がありますか?

ベストアンサー1

まず、同じシステム以外のホストでテストします。通常、「同じホスト」トラフィックを「入力」として正しく分類するには、特別な設定が必要です。

また、WANとLANが同じネットワーク範囲にあることが奇妙に見えます。もちろん、IPネットワーキングには一般的な定義はありませんが、通常はNATの一部である「関連」と「確立」を使用しています。

おすすめ記事