家でサーバをあげていると,世界中から攻撃されます.
しっかり管理してればたぶん問題ないはずなんですが,ちょっと感じ悪い.
ということで,NIDS(Network Intrusion Detection System)・Snort を使って監視しましょう.
とりあえず Snort を入れましょう.[Snort Official]
これを書いている時点で,最新は 1.9.0 です.
libpcap とか libnids とか要るかも知れませんが,その辺は適当に入れましょう.
% tar zxvf snort-1.9.0.tar.gz
% cd snort-1.9.0
% ./configure
% make
# make install
Snort を設定します.
設定ファイルの置き場は /etc/snort に置くことにします.
設定ファイルは,とりあえず snort.conf の HOME_NET と EXTERNAL_NET をいじれば動くでしょう.
あとは必要に応じて *_SERVERS とか *_PORTS とかをいじっときます.
ログは /var/log/snort に置くことにして,snort 用にユーザとグループを作っておきます.
# mkdir /etc/snort
# cp etc/classification.config etc/snort.conf etc/reference.config /etc/snort
# cp -r rules /etc/snort
# vi /etc/snort/snort.conf
var HOME_NET $eth0_ADDRESS (eth0 のアドレス)
var EXTERNAL_NET any (!HOME_NET にしても OK)
var HTTP_PORTS 80:8080
var RULE_PATH ./rules (rule ファイルの置き場所を変えたので,修正)
# vipw
# vi groups
# cd /etc
# chown -R snort snort
# chmod 750 snort
# cd /var/log
# mkdir snort
# chown snort snort
# chmod 750 snort
動かしましょう.
動かすときは -u と -g でユーザとグループを指定します.
動作がおかしいときは,-d で起動するとデバッグメッセージが流れるのでそれを見ればたぶん分かります.
ちゃんと動くと,/var/log/snort/ の下にいろいろログができます.
# /usr/local/bin/snort -D -i eth0 -c /etc/snort/snort.conf -u snort -g snort
ログを見やすく HTML にしてくれる SnortSnarf を入れましょう.
SnortSnarf は,SiliconDefence 社がフリーで提供しています.
[SnortSnarf]
本体は Perl で書かれており,Time-modules が必要です.CPAN から入手して入れておきましょう.
% tar zxvf Time-modules-2003.0211.tar.gz
% cd Time-modules-2003.0211
% perl Makefile.PL
% make
% make test
# make install
入れたら,SnortSnarf を入れましょう.といっても,コピーするだけです.
/usr/local/snortsnarf に置くことにしました.
% tar zxvf SnortSnarf-021111.1.tar.gz
% cd SnortSnarf-021111.1
# mkdir /usr/local/snortsnarf
# cp snortsnarf.pl /usr/local/snortsnarf
# cp -r include /usr/local/snortsnarf
/usr/local/snortsnarf に移動して,snortsnarf.pl を動かすとHTML が作成されます.
Snort のログが /var/log/snart,HTML を格納するディレクトリを /home/www/snort とすると
# ./snortsnarf.pl -d /home/www/snort /var/log/snort/alert
です.こんなのができます.
適当に cron で回してアップデートしましょう.