Xubuntu 16.04 + Snortで簡易IDS構築
ウイルス等に侵入された後の対策として、IDSやIPS製品の紹介をベンダーから受けたが、正直なところ価格が高かったのと、検知されるメッセージがSnort由来のものが多い気がしたので、自分でSnortを構築して商用製品との差を調べてみることにした。
構築環境
- PC : 余っていたノートPC Panasonic LetsNote CF-NX1
- OS : Xubuntu 16.04.2 (LetsNoteの有線LANと無線LANのNICを認識できる可能性が高いディストリビューションとして選択)
- ルータ : Yamaha RTX810
- IDSとして運用(ミラーポートの通信を監視)
- LetsNoteの有線LANはミラーポートに接続し、通信を監視
- LetsNote自体にアクセスするときには無線LANを使用する
図(適当)
手順
基本的に、以下のドキュメント通りでOK。
Snort 2.9.9.x on Ubuntu 14 -16
LetsNoteでは有線LANのNICはenp0s25
、無線LANはwlp2s0
となった。
注意点は以下の通り。
rule_url=https://www.snort.org/reg-rules/|snortrules-snapshot.tar.gz|<oinkcode>
→rule_url=https://www.snort.org/rules/|snortrules-snapshot.tar.gz|<oinkcode>
※微妙にURLが変わっているので注意sudo /usr/local/bin/pulledpork.pl -c /etc/snort/pulledpork.conf -l
→sudo /usr/local/bin/pulledpork.pl -c /etc/snort/pulledpork.conf -l -o /etc/snort/rules/snort.rules
※-oオプションが必要と怒られた
有線LAN(enp0s25)はミラーポートから受信だけできれば良いので、 /etc/network/interfacesを編集して使われていないネットワークのアドレスを適当に設定。 管理の通信やBASEによるログを眺めるためには無線(wlp2s0)を使用するので、 NetworkManagerを使って適当に固定IPを設定。
RTX810はhttp://www.rtpro.yamaha.co.jp/RT/manual/rt-common/setup/lan_port-mirroring.html を参照してミラーポートを設定。
- 設定(ポート1と2の送信および受信フレームをポート4にミラー)
lan port-mirroring lan1 4 in 1 2 out 1 2
- 解除
no lan port-mirroring lan1
結果
一応IDSとして構築できたので、現在はログを見て様子見。今のところのメモは以下。
- ノートPCにSnortを構築しても、なんとか100Mbps程度は処理してくれる(ただしCPUは常に100%)
- 商用製品はLINEの通信を検知してくれたが、Snortでは検知してくれない(自分でルールを作れ、という話か)