web-dev-qa-db-ja.com

iptablesは別のルーターからのLANアクセスを防ぎます

2つのTomatoファームウェアルーターをセットアップしています。ルーターXはWANポートを介してインターネットに接続されています。ルーターYのWANはルーターXのLAN1ポートに接続されています。ルーターYを制限したいのですが。インターネットにのみ接続でき、ルーターXのローカルネットワークにはアクセスできないようにします。ルーターXでこれらのiptablesを使用してみました。

iptables -I FORWARD -m mac --mac-source XX:XX:XX:XX:XX -d 192.168.1.0/24 -j DROP
iptables -I FORWARD -s 192.168.1.18 -d 192.168.1.0/24 -j DROP

これらのルールの両方を別々に(ルーターXで)一緒に試しましたが、ルーターYに接続している間もルーターXのLANにアクセスできますか? (1.18はルーターYのWANアドレスであり、独自のNATネットワーク)を実行します)

ルーターXでTCPDUMPを試しましたが、LANへのトラフィックアクセスすら表示されませんが、接続されていますか?

network layout

2
Leo

ルーターのメーカーとモデルについては触れていないため、一般的な考え方は次のとおりです。コンシューマーグレードのルーターは通常、「WAN」ポートといくつかの「LAN」ポートで構成されます。最も安価なルーターSoCには、2つの統合ネットワークインターフェイスがあります。1つはWAN用、もう1つはLAN用です。もちろん、LANポートの数とは一致しません。スイッチが組み込まれています。

ほとんどのルーターでは、これらのスイッチは実際にはプログラム可能です。ポートベースのVLANとVLANタグ付け)を実行できます。つまり、「物理的に分離された」ネットワークインターフェイスを作成できます。

通常は次のようになります。

   +-------------+  +--------------+
   |     CPU     |  |         LAN1 |--
 --| WAN     LAN |--| Switch  LAN2 |--
   +-------------+  |         LAN3 |--
                    +--------------+

LAN1(ルーターYが接続されている場所)に接続されているものはすべて、LAN2とLAN3に完全にアクセスできます。

ただし、スイッチを再構成して2つのVLANを作成することはできます。

   +---------------+  +--------------+
   |     CPU       |  |    Switch    |
   |         LAN.1 |--| VLAN1   LAN1 |--
 --| WAN           |  +--------------+
   |         LAN.2 |--| VLAN2   LAN2 |--
   +---------------+  |         LAN3 |--
                      +--------------+

すべてを設定すると、各VLANはシステムへの個別のネットワークインターフェイスとして表示されます。LAN1はLAN2/3と同じブロードキャストドメイン上にないため、OSはトラフィックを受信し、決定できます。 VLAN1からVLAN2にパケットを転送するかどうか。

混乱を避けるために、通常はVLANごとに異なるサブネットを選択するため、ルーターは実際にルーティングする必要があります。 :)

トマトがそれができるかどうかはわかりません。 OpenWrtは可能であり、IIRCはDD-WRTも可能です。これは基本的に有線ゲストネットワークです。

そのレベルの分離を提供できない場合は、次のようなルールを使用して、ルーターYでフィルタリングを試みる必要があります。

iptables -A FORWARD -d 192.168.0.0/16 -j DROP
iptables -A FORWARD -d 172.16.0.0/12 -j DROP
iptables -A FORWARD -d 10.0.0.0/8 -j DROP

もちろん、ルーターYを使用して、必要なポリシーを適用します。

1
Daniel B

問題は、ルーターYが内部ネットワークに到達するためにFORWARDチェーンを必要としないことです。そのWANインターフェイスは192.168.1.18であるため、このインターフェイスにヒットする192.168.1.0/24にバインドされたパケットは、FORWARDにヒットすることなくローカルにルーティングされます。

2番目のルールでFORWARDをINPUTに変更すると、意図したとおりに動作し始めると思います。

iptables -I INPUT -s 192.168.1.18 -d 192.168.1.0/24 -j DROP
0
Mark