iptablesルールはローカルネットワークポートをブロックします。

iptablesルールはローカルネットワークポートをブロックします。

私はローカル192.168.1.0/24ネットワークにあり、openwrtルーターは192.168.1.1にあり、オープンポート(たとえば192.168.1.12:5001)を持つIoTデバイスへのすべてのtcp接続をブロックしたいと思います。デバイスへのLinuxアクセス権がないため、そこからルールを強制できません。

複雑な分割なしでルータを介してこれは可能ですか?特別なルーター/スイッチが必要ですか?

ルータで次のことを試しましたが、何も機能しません。

root@OpenWrt:~# iptables  -I INPUT  -p tcp --destination-port 5001 -j DROP
root@OpenWrt:~# iptables  -I OUTPUT  -p tcp --destination-port 5001 -j DROP
root@OpenWrt:~# iptables  -I FORWARD  -p tcp --destination-port 5001 -j DROP

(テストのためにすべてのパケットをポート5001にドロップできます)

答え1

クライアントからのトラフィックはルータを妨げずにLAN上の他のデバイスに直接送信されるため、これを直接行うことはできません。

答え2

同じサブネットにあるからです。ルータを通過しません。

ルーティングテーブルには、現地の従業員を直接ルーティングするなどの内容が表示されます(これはほとんどハードコードされていることが多いです)。その後、(ほとんどのデバイスでは)残りはプライマリルータに送信されます。

デバイスは「arp:192.168.1.12は誰ですか?」をブロードキャストし、129.168.1.12は「Arp:私は192.168.1.12です」と答えます。このメッセージを聞くすべてのデバイスは、MAC アドレスを抽出して独自の apt テーブルに入れ、IP パケットをデバイスに直接送信できます。

そのため、2 つのサブネットを設定し、その間にルータ ルートを設定する必要があります。同じ物理ネットワークに存在する可能性がありますが、セキュリティを強化するには、ネットワーク内の別々の物理ネットワークに配置する必要があります。それ以外の場合は、ネットワークを制御できる場合はセキュリティをバイパスすることは容易ではありません。

関連情報