Linuxのログの見方と監視
■03/06/14
Linuxのログの見方を記しておきます。
まず、各ログがどこにあるのかというと
/var/log/cron cronの動作記録
/var/log/dmesg ブート時のメッセージの記録
/var/log/lastlog ユーザが一番最後にログインした記録
/var/log/maillog sendmailの動作記録
/var/log/messages 様々なプログラムの動作記録
/var/log/secure ユーザ認証関連の記録
/var/log/wtmp ログインの履歴
/var/log/xferlog FTPサーバの動作記録
/var/log/xntpd NTPサーバの動作記録
/var/run/utmp ログイン記録
この他にも、
/var/log/httpd/access_log サーバへの要求を全て記録
/var/log/httpd/error_log エラーのあったリクエストを記録
があります。基本的には、
「日時 ホスト名
プロセス名[PID(プロセス番号)]: メッセージ」というフォーマットで記録されます。
重要なのは、messagesとsecureでしょう。
「ポートスキャン」
secureに記録される。以下のような短時間で頻繁に記録された場合は、ポートスキャンらしいです。
Jun 4 17:44:1 hogeServer popper[25555]: connect from xxx.xxx.xxx.xxx
Jun 4 17:44:2 hogeServer in.rlogind[25556]: connect from xxx.xxx.xxx.xxx
Jun 4 17:44:2 hogeServer in.ftpd[25557]: connect from xxx.xxx.xxx.xxx
Jun 4 17:44:2 hogeServer in.fingerd[25558]: connect from xxx.xxx.xxx.xxx
Jun 4 17:44:2 hogeServer in.telnetd[25559]: connect from xxx.xxx.xxx.xxx
Jun 4 17:44:2 hogeServer in.rshd[25560]: connect from xxx.xxx.xxx.xxx
「不正なログイン?」
messagesとsecureに「fail」といった単語があった場合は、認証やログインに失敗した可能性があります。
「不正な中継?」
maillogに「reject」という単語があった場合は、メールサーバが不正に中継されている可能性があります。
Jun 9 12:20:08 studio-246 postfix/smtpd[30879]: connect from unknown[220.116.161.94]
Jun 9 12:20:08 studio-246 postfix/smtpd[30879]: E94061402F6: client=unknown[220.116.161.94]
Jun 9 12:20:09 studio-246 postfix/smtpd[30879]: reject:
RCPT from unknown[220.116.161.94]: 554 <china9988@21cn.com>:
Recipient address rejected: Relay access
denied; from=<china9988@21cn.com> to=<china9988@21cn.com>
「webminのログは?」
webminのログは、secureにも、
記録されるようです。
もし、ログインするとき(root)にパスワードを間違えた場合は、
Jun 15 04:11:38 studio-246 webmin[1767]: Invalid
login as root from 192.168.1.30
※192.168.1.30からrootとしての無効なログイン
というログが残ります。ログインに成功すると
Jun 15 04:14:04 studio-246 webmin[1768]: Successful
login as root from 192.168.1.30
というログが残ります。
「ログの監視 -swatch-」
ログの監視には、「swatch」を使います。
「インストール」
「swatch」には、以下のperlモジュールが必要です。(ファイル名は2003年06月23日現在)
http://search.cpan.org/
よりDownLoadしてください。
Date-Calc-5.3.tar.gz ----- Data::Calc
File-Tail-0.98.tar.gz ---- File::Tail
TimeDate-1.16.tar.gz ----- Time::Date
Time-HiRes-1.48.tar.gz --- Time::HiRes
手に入れたら各モジュールをインストールします。
# tar zxfv Date-Calc-5.3.tar.gz
# cd Date-Calc-5.3
# perl Makefile.PL
......
Looks good
Writing Makefile for Data::Calc
# make
# make test
......
t/10open............ok
t/20tail............ok
All tests successful.
......
# make install
同じように残りのモジュールについてもインストールします。
次に「swatch」を手に入れてきます。(2003年06月現在、「swatch-3.0.5」)
ftp://ftp.stanford.edu/general/security-tools/swatch/archive/
インストールは先ほどのモジュールと同じ作業になります。
アーカイブを展開→カレントディレクトリの移動→perl
Makefile.PL→make→make
test→make install
インストールが終わったら、「/etc」に「swatchrc」というディレクトリを作成し、
「/etc/swatchrc」に以下のような名前の設定ファイルを作ります。
「.swatchrc_message」「.watchrc_secure」「.watchrc_maillog」
設定の書式は、watchfor以下の「/」と「/」で囲まれたパターンがログに書き込まれたら○○をする。といった感じです。ここで記述するパターンにはPerlの正規表現も使えるそうです。例えば、「aaaa|bbbb」などのように「|」で区切ってaaaaかbbbbにマッチしたらというパターンもできるし、「[Aa]bcde」のように記述してAbcdeとabcdeの両方にマッチさせるパターンもOKです。また、1文字を表す「.」を「a.c」のように記述してaで始まり何か1文字が入りcで終わる3文字の文字列にマッチさせるパターンがあります。「/aaa/,/bbb/」のように区切ることで、複数のパターンを指定することもできます。パターンの最後に「/abcde/i」のように「i」を付ければ、パターンの大文字小文字を区別しなくなります。
例えば、
watchfor /authentication failure/
bell 3
mail=hogehoge@aa.hoge.com,subject=From_secure
※「authentication failure」の文字がログに書き込まれたら、アラームを3回鳴らして、「hogehoge@aa.hoge.com」宛に、そのログの行が記されたメールを出します。このときのタイトルは「From_secure」となります。
「.swatchrc_message」に載せる項目をあげると
#SUのパスワード間違い
watchfor /authentication failure/
watchfor /reject/
watchfor /Rejected/
watchfor /nessus@/
watchfor /unreachab/
watchfor /not allowed/
watchfor /unknown/
watchfor /debug/
watchfor /peer died/
watchfor /not connected/
watchfor /Connection reset/
watchfor /Can't|Cannot/
watchfor /NULL/
watchfor /Bad|bad/
watchfor /denied/
watchfor /FAILED|failed|failure|illegal/
watchfor /Broken pipe/
watchfor /EXT2-fs warning/
watchfor /deny/
watchfor /INVALID|REPEATED|INCOMPLETE/
watchfor /(panic|halt)/
こんなもんでいいでしょう。また、これは「message」監視用です。
「.swatchrc_secure」に載せる項目をあげると
watchfor /Failed password/
watchfor /Invalid/
swatchの起動は以下の書式で行います。
swatch -c
設定ファイル -t
監視するログファイル &
※ 「&」はデーモンとして動作させる
例えば、
swatch -c
/etc/swatchrc/.swatchrc_secure -t
/var/log/secure &
また、複数のログファイルを異なる内容で監視したい場合は、swatchを複数起動します。
システムの起動時にswatchを自動起動させたい場合は、「/etc/rc.local」に以下の行を追記します。
swatch -c /etc/swatchrc/.swatchrc_secure -t
/var/log/secure &
#「&」をつけないと起動時そこでとまるので必ずつけること
※注意
必ず、Linuxを起動、再起動させたときは、プロセスの確認で、swatchがちゃんと起動しているか調べること。
<Pre Next>