IDCFクラウドでポートミラーリングしたいときに
IDCF Cloud Advent Calendar 2016 の12/12が埋まってないので個人的に責任(w)をとって埋めておきますね。
突然ですが、ポートミラーリングが必要になるケースってありますよね。
例えば、通信の中身をチェックしなければならないときとか。
もっと具体的に言うと、IDS/IPSで入口対策するときや、振る舞い検知などの出口対策のときです。
このようなセキュリティ用途の機械やサーバーをインライン型で入れると、ここがボトルネックになりかねないので、ポートミラーリング型で入れる。
でも、クラウドだとポートミラーリングってどうやってやるのでしょうか。
オンプレだとL2スイッチなどのネットワーク機器の方でミラーリングできますけど。
と、言うことで、ここではIDCFクラウドでポートミラーリングする際の構成方法を紹介します。
今回想定する、ネットワーク構成は以下です。
追加ネットワーク(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の該当のNICのMACアドレスを調べ、その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を組み合わせると、簡単にポートミラーリングが実現できます。
是非お試しください。
ニーズはかなり少なさそうですが。