こんにちは、Snort の設定に問題があります。
vagrant ホストで仮想ネットワークをセットアップしました。それらのホストは Snort (Barnyard2 を使用) を実行し、Snort ホストはプロミスキャス モードであるため、192.168.10.*/24 のすべてのパケットを読み取ることができます。すべてが PING でうまく機能します。/etc/snort/rules/local.rules にルールがあります。
alert icmp any any -> $HOME_NET any (msg:"ICMP test"; sid:10000001; rev:001;)
このルールは正しくマッピングされており、任意のホスト間のすべての PING を確認できます。barnyard2 は出力を読み取り、DB に保存します。
問題は、別のルールを追加しようとしたときです。たとえば、SSH と NMAP のログを記録してみました。
alert tcp any any -> any any (sid:1000005; gid:1; flow:stateless; ack:0; flags:S; ttl:>220; priority:1; msg:"nmap scan"; classtype:network-scan; rev:1;)
alert tcp any any -> $HOME_NET 22 (msg:"Potential SSH Brute Force Attack"; flow:to_server; flags:S; threshold:type threshold, track by_src, count 3, seconds 60; classtype:attempted-dos; sid:2001219; rev:4; resp:rst_all; )
これら 2 つのルールでは、アラートやログが表示されません。
また、PulledPork を使用して更新されたルールを取得し、IDSwakeupを試してそれらが機能するかどうかを確認しましたが、明らかに何も起こりませんでした。
構成ファイル /etc/snort/snort.conf は正しく構成されているようです (コメントなし):
vagrant@vagrant-ubuntu-trusty-64:~$ cat /etc/snort/snort.conf | grep rules
var RULE_PATH /etc/snort/rules
var SO_RULE_PATH /etc/snort/so_rules
var PREPROC_RULE_PATH /etc/snort/preproc_rules
var WHITE_LIST_PATH /etc/snort/rules
var BLACK_LIST_PATH /etc/snort/rules
dynamicdetection directory /usr/local/lib/snort_dynamicrules
whitelist $WHITE_LIST_PATH/white_list.rules, \
blacklist $BLACK_LIST_PATH/black_list.rules
include $RULE_PATH/local.rules
include $RULE_PATH/snort.rules
そして、ルールファイルは正しい場所にあるようです:
vagrant@vagrant-ubuntu-trusty-64:~$ tree /etc/snort/rules/
/etc/snort/rules/
├── black_list.rules
├── iplists
│ └── default.blacklist
├── iplistsIPRVersion.dat
├── local.rules
├── snort.rules
├── test.rules
└── white_list.rules
また、snort.rules を空にして、local.rules のみを保持して、ハードウェアの制限が原因で機能しないかどうかを確認しようとしましたが、何も変わりませんでした。
それが原因である可能性があるかどうかはわかりません: - 構成が間違っている - ルールが間違っている - 攻撃が間違っている - ハードウェア要件
手伝って頂けますか?:)