IDSとは,Intrusion Detection System(イントリュージョン・ディテクション・システム)の略。不正アクセス監視システム,または侵入検知を行うためのシステム(ソフトウェア)だと捉えればよいだろう。
日ごろからLinuxをインターネットにつなげて稼動させていると,syslogにさまざまなアクセス状況が記録される。このログを人の目で日々監視し続けるのはかなり酷なことだ。そこで,専用のツールを利用してモニタリングさせると,警告時にさまざまな動作をさせることができる。
今回は,厳密にいえばIDSとはいえないものの,syslogをリアルタイムに監視して,キーワードとマッチする際に動作を行うツール「swatch」のインストールから設定方法を紹介しよう。ポイントは,「syslogの記録レベル確認」,「Perlモジュールのインストール」,「キーワードファイルの作成」である。
なお,ダイヤルアップルータを使っている場合には,「ダイヤルアップルータのsyslogをサーバで一元管理させたい」Tipsを参考にして。ログファイルをLinux上に記録させておくのがよいだろう。
・現在のsyslog記録レベルを確認
まず最初に現状のsyslog記録状況を確認する。次のように指定して設定内容を確認しよう。ここでの例で見ておくべきポイントは,「*.info」が「/var/log/messages」に記録されているという点だ。監視するログは,「info」(ファシリティレベル)で記録されている必要がある。swatchで「/var/log/messages」ファイルを監視させるのだ。次のようになっていれば,特に変更する必要はない。
$ cat /etc/syslog.conf *.info;mail.none;authpriv.none /var/log/messages |
次のサイトからswatchをダウンロードしよう。2001年8月1日現在,swatch-3.0.2.tar.gzが公開中である。
swatchの入手先
http://www.oit.ucsb.edu/~eta/swatch/
$ wget http://www.oit.ucsb.edu/~eta/swatch/swatch-3.0.2.tar.gz |
・Perlモジュールのインストール
ダウンロード後にインストールを試みてもエラーになる可能性がある。swatchはPerlで記述されているプログラムであり,次のようにswatchのメイク時に4つのモジュールがチェックされる。このモジュールの所在が不明な人は,インストールしておけば無難だ。
# perl Makefile.PL Checking for Time::HiRes 1.12 ... ok Checking for Date::Calc ... ok Checking for Date::Parse ... ok Checking for File::Tail ... ok Writing Makefile for swatch |
チェックされるPerlモジュールは,CPANから手に入れる。次のモジュール検索ページから探してみよう。今回ダウンロードしたのは,次の4つのモジュールだ。
File-Tail-0.98.tar.gz
Date-Calc-4.3.tar.gz
TimeDate-1.10.tar.gz
Time-HiRes-01.20.tar.gz
続いて,それぞれのアーカイブを解いてメイクを行う。同じ操作が続くため,「File::Tail」の操作例を挙げておく。
$ tar zxfv File-Tail-0.98.tar.gz $ cd File-Tail-0.98 $ perl Makefile.PL ←./configureではないことに注意 〜前略〜 Looks good Writing Makefile for File::Tail $ make $ make test 〜前略〜 t/10open............ok t/20tail............ok ←このように表示されればOK All tests successful. 〜後略〜 # make install |
・swatchのインストール
swatchのインストールに移ろう。アーカイブを解いたディレクトリに移動して,Perlモジュール同様にインストール用のPerlスクリプトを動かす。前述のようにCPANからのモジュールが認識され次のように表示されればOKだ。
# perl Makefile.PL Checking for Time::HiRes 1.12 ... ok Checking for Date::Calc ... ok Checking for Date::Parse ... ok Checking for File::Tail ... ok Writing Makefile for swatch $ make # make install # which swatch /usr/bin/swatch ←/usr/bin/にインストールされた |
・キーワードファイルを作成
最後に,swatchで警告を表示させたりするためのキーワード設定ファイルを作成する。ディレクトリおよびファイル名は任意だが,ここでは「/etc/」ディレクトリ下に次のファイル名で作成した。「watchfor」以下の数行がキーワード設定になる。「/」にはさまれた文字列がキーワードになるが,例えば最上段では「reject」の文字列をログ内に見つけた場合,ビープ音のベルを3回,さらにykida@xx.xxxxxx.jp宛へメール送信を行う。
# cat /etc/.swatchrc # watchfor /reject/ bell 3 mail=ykida@xx.xxxxxx.jp # watchfor /Rejected/ bell 3 mail=ykida@xx.xxxxxx.jp # watchfor /nessus@/ bell 3 mail=ykida@xx.xxxxxx.jp # watchfor /unreachab/ bell 3 mail=ykida@xx.xxxxxx.jp # watchfor /not allowed/ bell 3 mail=ykida@xx.xxxxxx.jp # watchfor /unknown/ bell 3 mail=ykida@xx.xxxxxx.jp # watchfor /debug/ bell 3 # watchfor /peer died/ bell 3 # watchfor /not connected/ bell 3 mail=ykida@xx.xxxxxx.jp # Bad connection watchfor /Connection reset/ bell 3 mail=ykida@xx.xxxxxx.jp # Bad request watchfor /Can't|Cannot/ bell 3 mail=ykida@xx.xxxxxx.jp # Bad request watchfor /NULL/ bell 3 # watchfor /Bad|bad/ bell 3 # watchfor /denied/ bell 3 mail=ykida@xx.xxxxxx.jp # watchfor /FAILED|failed|failure|illegal/ bell 3 mail=ykida@xx.xxxxxx.jp # watchfor /Broken pipe/ bell 3 # watchfor /EXT2-fs warning/ bell 3 mail=ykida@xx.xxxxxx.jp # watchfor /deny/ bell 3 mail=ykida@xx.xxxxxx.jp # watchfor /INVALID|REPEATED|INCOMPLETE/ bell 3 mail=ykida@xx.xxxxxx.jp # System crashes and halts watchfor /(panic|halt)/ bell mail=ykida@xx.xxxxxx.jp |
・キーワードファイルを指定して実行
以上の設定でswatchを起動させるには,次のように指定すればよい。デーモンとしてプロセス実行される。
/usr/bin/swatch -c /etc/.swatchrc -t /var/log/messages & |
次のようにプロセスが確認できればOKだ。
# ps ax|grep swatch 15486 ? SW 0:01 [swatch] 15487 ? S 0:04 perl /root/.swatch_script.15486 |
・こんな警告メールが届く
ちなみに,以上の設定で監視を行って届く警告メールは次の通り。これはメールリレーを試みようとして弾いたものである。この手のアタック? は何度もリトライしてくるものが多いが,やめてほしいものだ……。
To: ykida@xxxxxx.jp Subject: Message from Swatch Jan 29 21:30:39 xxxxx postfix/smtpd[15450]: reject: RCPT from ppp161.as5300-1.advdata.net[63.77.235.161]: 554 <retro345@runbox.com>: Recipient address rejected: Relay access denied; from=<mirage047@partysales.org> to=<retro345@runbox.com> |
Copyright © ITmedia, Inc. All Rights Reserved.