Snortの導入メモ
一応ワタシにも
「ファイアウォールとIDS
程度の意識が無かったわけではない(^^;んすが、いままで導入する機会を逸しておりました。
が、年度末の業務ピークがようやく過ぎつつあることと、@ITのSnortでつくる不正侵入検知システムの連載が終了し、ある程度の情報がまとまったと判断したので、当方もこの機会にSnortの導入を図ってみる事に。
まず、パケットキャプチャ用のライブラリlibpcapが必要らしーので、これを導入します。
現在の状況を見てみると、
libpcap-0.6.2-17.7.3.6.legacy
パッケージ名に「legacy」と付いてるってことはFedora Legacy ProjectによるセキュリティFIXを受けてる→素よりは安心っすけど、最新版は0.8.3とかになってる→セキュリティツールともなると脆弱性とか恐いので、最新版に入れ替えとくことにします。
とやってパッケージを削除し、libpcap-0.8.3.tar.gzを落として来て
# cd libpcap-0.8.3
# ./configure
# make
# make install
でインストール。
続いてSnort本体を探します。
・・・・やっぱ無いようです(^_^;) ということでオフィシャルサイトからsnort-2.3.2.tar.gzを(大感謝を捧げてから)頂いて来て解凍、インストールします。ココの環境もMySQLアリなので、mysqlオプションを着けてコンパイル。
# make
# make install
webminでシェルが/bin/falseのsnortユーザを作成し、/etc/snortにrulesファイルとconfファイルを放り込んで環境作成は終了。
MySQLを使う予定なのでsnort用のデータベースを(やはりwebminで)作成したのち、
とやってテーブルを作成。
/etc/snort.confは
var EXTERNAL_NET !$HOME_NET
var RULE_PATH /etc/snort
output database: log, mysql, user=user password=password dbname=snort host=localhost
としときました。ホンマに最低限(^_^;)
/etc/rc.d/init.d/snortdは
# snort start script
# chkconfig:35 90 90
# description:snort is IDS system
# Source function library.
. /etc/init.d/functions
#program name
snort=/usr/local/bin/snort
prog=snort
RETVAL=0
start() {
echo -n $"Starting $prog:"
rm -fr /var/log/snort/*
daemon $snort -c /etc/snort/snort.conf -i eth0 -u snort -g snort -l /var/log/snort -Dde -y
RETVAL=$?
echo
return $RETVAL
}
stop() {
echo -n "Stopping $prog:"
killproc $snort
RETVAL=$?
echo
return $RETVAL
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo $"Usage:$prog {start|stop|restart}"
exit 1
esac
exit $?
として、755に。MySQLを使うので、ログはあんまり要らん…とは言っても「まったく採らない」のもちとおっかない(^^;ので、「起動毎にログを消す」ようにしてます。
と移動。
BASEは単なるPHPスクリプトでインストーラーも付いてるので、解凍してapache管理下のフォルダに展開するだけ…と思ってたら、上手く動きません。一見正常にインストール終わるんすが、使うと
「未定義の関数やらクラスやらが有ります」
とかヌカして、ちゃんとレポートを上げません。はて??
とか思ってるうちに、以前にダウンロードしてたテストに使ってたBASE 1.1 (elizabeth)が、いつの間にか1.1.2 (zora)に変わってる事を発見。
- Fixed Fatal error in some installs -- Michael Stone
コレかっ!(^_^;) ということで、1.1.2で試したらあっさりオッケー(^^;;
添付の日本語ファイルはUTF-8でしたが、自環境ではEUCのほうが都合良いので/languages/japanese.lang.phpを
と書き直して、EUCで保存し直しときました(^_^)
なんか一杯警告が出てます(^_^;) 今後ルールの調整も必要だけど、ホントにヤバそうなアクセスも幾つか混じってる模様→本気で防御を固めとかないとヤバそう。