web-dev-qa-db-ja.com

ゲートウェイを介してWindowsローカルサブネットトラフィックを強制する

特定のマシンからゲートウェイにすべてのトラフィックをルーティングしようとしています。これは、マシンのサブネット外のサブネット宛てのトラフィックに対しては問題なく機能します。ただし、ソースマシンと同じサブネット内のマシンへのトラフィックは、WindowsのOn-Linkゲートウェイを通過します。これは、デフォルトゲートウェイが無視され、サブネット(たとえば、192.168.50.10-> 192.168.50.11)のトラフィックが流れることを意味します。

Destination Netmask     Gateway     Interface   Metric
192.168.50.0    255.255.255.0   On-link     192.168.50.214  276
  1. このルートはWindowsから削除できますが、マシンを再起動すると常に元に戻ります。
  2. 永続ルートが失敗した後もOn-Linkゲートウェイを試行するため、より低いメトリックでゲートウェイに永続静的ルートを追加しても機能しません。
  3. VLANに各マシンを追加することは、セットアップが原因でオプションではありません
  4. スタートアップスクリプトを追加してゲートウェイを削除することも、ユーザーがマシンへの完全な管理者アクセス権を持ち、スクリプトを無効にする可能性があるため、優れたオプションではありません。
  5. サブネット上に別のゲートウェイを使用する他のマシンがあるため、GratuitousARPまたは透過プロキシを使用してサブネット上のすべてのネットワークトラフィックを透過的に傍受することはできません。

それを機能させる唯一の方法は、サブネットトラフィックのゲートウェイに永続ルートを追加し、再起動時にオンリンクルートを削除することです。

問題はそれです。

  1. このオンリンクルートを完全に削除する方法はありますか
  2. そうでない場合は、ローカルサブネットトラフィックでさえゲートウェイを通過させる方法はありますか?
2
Beerey

ゲートウェイを介してトラフィックを強制することと、デバイスがサブネット上で相互に認識できないようにすることには違いがあります。あなたがやろうとしているのは後者だと思います。おそらく、複数の外部顧客のサーバーをホストする必要があるためです。この目標を達成するためにルーティングテーブルを編集している場合は、間違った場所を探しています。

ACLを使用してスイッチでこれを処理することをお勧めします。具体的に何をブロック/許可できるかは、スイッチの機能によって異なります。もう1つの方法は、ARPブロードキャストをブロックしてから、デフォルトゲートウェイの静的ARPエントリを設定することです(技術的には、静的エントリを追加して他のデバイスと通信することもできます)。

また、ゲートウェイがそのセグメントからのトラフィックをブロックするように設定されていない限り、ゲートウェイはトラフィックを同じネットワークに正しくルーティングすることに注意してください。

3
Ryan

ホストはおそらくDHCPサーバーからデフォルトルートを取得しています。その場合は、DHCP予約を設定します。そのホスト予約のサブネットマスクを255.255.255.255に設定すると、ホストがサブネット内の他のホストにパケットを直接配信できなくなる可能性があります。すべてのトラフィックはデフォルトゲートウェイを通過します。ハックは依然としてネットワークのルールに従う必要があり、ネットワークが適切にセグメント化されていない限り、これは多くのルールに違反します。通常、サブネットマスクが/ 24セグメントの/ 32であると偽って、ユーザーがそれを変更しないことを期待するだけでは十分ではありません。実際には安全ではありません。

何千ものサーバーをホストしているデータセンターを想像してみてください。管理者は、誰もが自分のIPアドレスとサブネットマスクを正しく構成し、競合などを引き起こさないことを単に信頼するだけではありません。ホストが同じネットワークセグメント上にあるときはいつでも、互いに通信できます。この場合の課題は、ホストを正しいネットワークセグメントに強制することであるように思われます。これは、スイッチのポート以外の他のノードがない唯一のセグメントです。

最善の解決策は、マネージドスイッチ(おそらくレイヤ3)です。Cisco3550のように、スイッチはルータのように動作し、すべてのローカルサブネット間でトラフィックをルーティングします。以前にアドバイスしたように、ACLを使用してネットワーク間の通信を防止します。しかし、VLANはオプションではないとおっしゃっていたので、おそらくスイッチを制御しないでください。

より創造的に:

10.x.y.z/30のように、ゲートウェイが1つだけで、dhcpが提供するデフォルトルートがない実ネットワークまたは仮想ネットワークセグメントを確立します。/30 cidrブロックには、ネットワークサブネット化についての十分な理解が必要です。制御するサブネット上のホストがVPNゲートウェイにトンネリングし、認証してから、デフォルトゲートウェイを取得できるようにします。 OpenVpnでは、すべてのトラフィックがもちろんvpnサーバーを介してルーティングされるため、少なくともホスト間の通信を制限できます。これは、ワイヤレスホスト間のトラフィックをブロックするパブリックホットスポットでwifiを使用するのに似ています。

または、ホスト間の通信を防ぐためのaclルールを使用して、透過プロキシを使用できる場合があります。これがあなたのニーズを満たすかどうかはわかりません。

要約すると、本当の課題は、同じサブネット上でのホスト間の通信を防ぐことです。ディスクリートサブネットは、arpパケットをフィルタリングするための単なる方法です。いくつかのarpハックがこれを達成する可能性があります。

3
dylan

最終的に、起動スクリプトなしでこれらのいずれかを実行する方法は見つかりませんでした。 On-Linkルートの削除は、何をしても持続せず、上記の理由により、他のオプション(透過プロキシ、VLANなど)を使用できませんでした。

最後に、実行する起動スクリプトを追加しました

 ROUTE DELETE 192.168.50.0

始めるとき。スクリプトは、ユーザー(管理者ではない)のみに制限されたディレクトリに配置され、起動時に実行されました。また、このコマンドを実行するカスタムNagiosスクリプトを追加し、その時点以降にルーティングテーブルが変更されていないことを確認しました。

0
Beerey