読者です 読者をやめる 読者になる 読者になる

電子計算記

個人的な検証を

IDCFクラウドでポートミラーリングしたいときに

IDCF Cloud Advent Calendar 2016 の12/12が埋まってないので個人的に責任(w)をとって埋めておきますね。

突然ですが、ポートミラーリングが必要になるケースってありますよね。
例えば、通信の中身をチェックしなければならないときとか。
もっと具体的に言うと、IDS/IPSで入口対策するときや、振る舞い検知などの出口対策のときです。

このようなセキュリティ用途の機械やサーバーをインライン型で入れると、ここがボトルネックになりかねないので、ポートミラーリング型で入れる。
でも、クラウドだとポートミラーリングってどうやってやるのでしょうか。
オンプレだとL2スイッチなどのネットワーク機器の方でミラーリングできますけど。

と、言うことで、ここではIDCFクラウドでポートミラーリングする際の構成方法を紹介します。

今回想定する、ネットワーク構成は以下です。

f:id:fujish:20161224221405p:plain

追加ネットワーク(192.168.0.0/21)を作成し、そこにwebサーバーが接続されてます。
同じネットワークに、ポートミラーリング型のIDS/IPS(192.168.5.254)を設置します。
そして、標準ネットワーク(10.11.0.0/21)と追加ネットワークに両方接続するかたちで、ロードバランサーやルータ(またはプロキシ)のような仮想マシンを設置します。この仮想マシンの追加ネットワーク側のNIC(192.168.1.1)からIDS/IPSにポートミラーリングするとします。

前置きが長くなりましたが、今時のLinuxであればiptablesで一発です。
構成図のLB/Routerのマシンにて、以下のコマンドを入れます。

iptables -t mangle -A PREROUTING -i eno33557248 -j TEE --gateway 192.168.5.254

ここで、
i eno33557248 はNICのインターフェース名です。eth0的なもの等環境に合わせてください。
gateway 192.168.5.254 はミラーリング先のIPアドレスになります。

一つ補足すると、IDS/IPS等のミラーリング先で、IPアドレスを持たないマシンというケースもままあると思います。この時は、IDS/IPSの該当のNICMACアドレスを調べ、そのMACアドレスに対して無理やりIPアドレスを指定してしまいましょう。今回のケース(192.168.5.254にミラーリングしたい)だとLB/Routerのマシンにて、以下のコマンドを入れます。

arp -s 192.168.5.254 00:AA:BB:CC:DD:EE

00:AA:BB:CC:DD:EEの部分は、ミラーリング先のMACアドレスを入れます。
ARPテーブルを静的に入れてるだけです。

このように、iptabelsのTEEとARPを組み合わせると、簡単にポートミラーリングが実現できます。

是非お試しください。
ニーズはかなり少なさそうですが。