iptables経由のミラーポート


11

専用のLinux(Debian 7.5)ルートサーバーがあり、多数のゲストがセットアップされています。ゲストはKVMインスタンスであり、bridge-utils(NAT、内部IP、ホストをゲートウェイとして使用)を介してネットワークアクセスを取得します。

たとえば、1つのKVMがWebServerゲストであり、次の方法でホストIPを介してアクセスできます。

    iptables -t nat -I PREROUTING -p tcp -d 148.251.Y.Z 
--dport 80 -j DNAT --to-destination  192.168.100.X:80 

私は他のサービスについても同じことを行い、それらを自己完結型で、NATで分離された状態に保ちます。

ただし、1人のゲストはネットワークモニターであると想定されており、ネットワークトラフィック検査(IDSなど)を実行します。通常、非仮想セットアップでは、トラフィックをミラーリングするためにVACLまたはSPANポートを使用します。もちろん、この1つのホスト内では、これを行うことはできません(複雑な仮想スイッチングアプローチを使用したくないため、簡単にできます)。

  1. iptablesを使用してポートミラーを取得し、すべての入力および出力トラフィックを1つのKVMゲストにリダイレクトできますか?すべてのゲストには、などの専用インターフェイスがありますvnet1
  2. プロトコルに基づいて、トラフィックを選択的に転送することは可能ですか(HTTPのみを取得するVACL転送ルールなど)。
  3. vnet1管理インターフェース(IPを使用)として維持する必要がある場合、ゲストは特定のインターフェース設定を必要としますか?

私は正しい方向へのポイントを喜んでいるでしょう:

iptables         1.4.14-3.1
linux            3.2.55
bridge-utils     1.5-6

どうもありがとう :)

回答:


14

ルートサーバーの事前ルーティングモジュールのマングルテーブルルールを次のように追加するのはどうですか。

iptables -I PREROUTING -t mangle -j ROUTE --gw 192.168.200.1 --tee

そして、ポストルーティングモジュールのマングルテーブルのルールを次のように追加します

iptables -I POSTROUTING -t mangle -j ROUTE --gw 192.168.200.1 --tee 

ここで、192.168.200.1はネットワークモニターです。

これらのルールは、192.168.200.1に転送するすべての着信および発信トラフィックをミラーリングします

編集:

mangle table specific
  -j ROUTE            (explicitly route packets, valid at PREROUTING)
      options:
      --iface <iface_name>
      --ifindex <iface_idx> 

ただし、次のようなものを使用することもできます

iptables -I PREROUTING –t mangle –i eth0 –j TEE –gateway 192.168.200.1

そして

iptables -I POSTROUTING –t mangle –j TEE –gateway 192.168.200.1

どこTEE今の目標であるPREROUTING、すなわちのようなより多くのオプションを取る-i-pなど、


新しいバージョンを使用しているNBからSEの読者iptablesは、ROUTEターゲットがなくなったため、unix.stackexchange.com / a / 174619/31228に返信があります。
ジョナサンベンアブラハム14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.