Snort2 のログファイル /var/log/snort/alert を解析して、HTML ファイルを出力。
・インストールhttp://sourceforge.net/projects/snortsnarf/ から取得。
[root]# cpan Time::ParseDate
[root]# mkdir /usr/local/snortsnarf
[root]# tar xvfz SnortSnarf-1.0.tar.gz
[root]# cp -v SnortSnarf-1.0/snortsnarf.pl /usr/local/snortsnarf
[root]# cp -vrf SnortSnarf-1.0/include/ /usr/local/snortsnarf
[root]# vim /usr/local/snortsnarf/snortsnarf.pl
use lib qw(./include); を
use lib qw(/usr/local/snortsnarf/include); に変更
・修正
[root]# vim /usr/local/snortsnarf/include/SnortSnarf/HTMLMemStorage.pm
290行目 return $arr->[($first-1)..$end]; # @ を $ に変更
[root]# vim /usr/local/snortsnarf/include/SnortSnarf/HTMLAnomMemStorage.pm
266行目 return $arr->[($first-1)..$end]; # @ を $ に変更
・日本語化
/usr/local/snortsnarf/include/SnortSnarf/HTMLOutput.pm を日本語化する。
文字化け対策
1577 行目 print "<html>\n<head>\n"; の次の行に、
1578 行目 print "<meta charset='utf-8' />\n"; を追加。
出力部分を日本語に変換。文字化けする場合には、utf-8 に変換が必要。
[root]# nkf -w --overwrite /usr/local/snortsnarf/include/SnortSnarf/HTMLOutput.pm
・解析結果出力ディレクトリ作成
[root]# mkdir /var/www/html/snortsnarf
[root]# chown apache:apache /var/www/html/snortsnarf
・解析結果へのアクセス制御
ローカルホスト及び LAN 内以外からのアクセスを拒否。
[root]# vim /etc/httpd/conf/httpd.conf
apache 2.2
<Directory "/var/www/html/snortsnarf">
order deny,allow
deny from all
allow from 127.0.0.1 192.168.1.0/24
</Directory>
apache 2.4
<Directory "/var/www/html/snortsnarf">
require ip 127.0.0.1 192.168.1.0/24
</Directory>
・実行
[root]# /usr/local/snortsnarf/snortsnarf.pl /var/log/snort/alert -d /var/www/html/snortsnarf
・自動実行
cron にて、6時間毎に実行。
[root]# crontab -e
10 */6 * * * /usr/local/snortsnarf/snortsnarf.pl /var/log/snort/alert -d /var/www/html/snortsnarf
・解析結果
ブラウザにて、http://localhost/snortsnarf/