Logwatch 5.0 に関するインストールメモ
Create:2003/03/17, update:2004/01/07
Logwatch を使用する目的
swatch での監視は、syslog に出力されるログを監視し管理者が指定したパターンが現れたときにメール等での通知を行うツールでした。しかし、管理者が指定したパターンが不十分であったり、スキルが不足しており本来監視対象としなければいけない物を見逃してしまう可能性がありました。また、swatch での監視は即時性があり障害対応を行うには、非常に有用なツールですが、いかんせんメール内容は、その該当行のまま表示されるため、ログを見慣れていないと折角の通知でも対応を誤ってしまう可能性がありました。
これに対し Logwatch は、cron コマンドを利用し毎朝(デフォルトは、04:02)に実行され、syslog の内容から各セキュリティに関する情報を自動的に収集し管理者にメールで通知する機能を持ちます。
本家 : Logwatch(英語です) 参考 : サーバのログ監視ツールを使いこなそう(@IT) 参考 : Logwatchでログを簡単にチェックしよう
収集する情報の中には、以下の物があります。(全部では、ないです)
qpop による外部参照ユーザ sendmail/qmail による不正中継 (第三者中継の調査) パスワード不一致 root ユーザとなったユーザ一覧、また回数 samba によるアクセス 外部サービスの総アクセス時間 ディスク使用情報
Logwatch をインストールする
- このソフトは、RedHat系で動かすことを前提としているようですので、下記の作業内容については当方では責任を負いかねます。ただ、悪さを発見するソフトなので多少の不具合でも目をつぶれるというひとには、絶対にお勧めします。
- まずはインストールをしようね♪
- /etc/log.d/conf/logwatch.conf ファイルを編集し、ログ収集する定義情報を変更します。下記は、最低限行っていた方がよいと思われる項目です。
※ Logwatch 4.3.2 の記事は、こちらを参照のこと。
※ Logwatch は、Perl 5.6以上のバージョンで使用することを目的としてます。
% wget ftp://ftp.kaybee.org/pub/linux/logwatch-5.0.tar.gz % gzip -cd logwatch-5.0.tar.gz | tar xf - % cd logwatch-5.0 % su # mkdir /etc/log.d # cp -rp scripts/ /etc/log.d # cp -rp conf/ /etc/log.d # cp -rp lib/ /etc/log.d # ln -s /etc/log.d/scripts/logwatch.pl /etc/cron.daily/
LogDir = /var/log ← ログ出力先を指定します Detail = Med ← ログ収集結果のレベルを指定します(これ位が、いいかも) MailTo = root ← ログ収集結果を通知するユーザを指定します Archives = Yes ← アーカイブログを参照するか指定します(ローテイトされているタイミングを考慮し) mailer = /bin/mail ← メールコマンドを指定します HostLimit = No ← 転送されたログを対象にするかを指定します
Logwatch の実行時間
- /etc/crontab に指定された 下記の赤文字部分が実行時間(毎日 04:02 に実行)となります。具体的な処理は、 /etc/cron.daily 配下にある実行属性のプログラムが対象となります。
# cat /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 03,18,33,48 * * * * root run-parts /etc/cron.quarter-hourly 04,34 * * * * root run-parts /etc/cron.half-hourly 01 * * * * root run-parts /etc/cron.hourly 05 0,6,12,18 * * * root run-parts /etc/cron.quarter-daily 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly
Logwatch の仮テスト方法
- 実行時間(毎日 04:02 に実行)まで待っているのは、時間の無駄なのと設定した内容がどの様に通知されるのかを、仮にテストしてみます。ちなみに、仮実行するには、root ユーザになる必要があります。
- じっこー
- メール届きました?
# /etc/cron.daily/logwatch.pl
不具合点が出た! ギャァ
- Qube3j に導入されている Perl のバージョンは、5.005_03 のため色々な不具合が発覚します。下記仮テストを行って見ると判るのですが、Perl 5.6から導入された our変数(perlのourに関すること)が悪さをし、各 Perl スクリプトでエラーが発生します。これは、先にも書いたとおり Qube3J で動かすことを前提としていないために発生するので、こういう場合は Perl ですので自分で直してみましょう。
- まずは、"lib/Logwatch.pm"を修正しましょ。
- つぎに、"scripts/services/sudo"を修正しましょ。
- 再度実行しましょ♪
※ ちなみに下記のエラーは「/etc/log.d/scripts/services/sudo」ファイル
Use of reserved word "our" is deprecated at sudo line 21. Global symbol "$Debug" requires explicit package name at sudo line 21. Global symbol "$Detail" requires explicit package name at sudo line 21. Global symbol "%byUser" requires explicit package name at sudo line 21. BEGIN not safe after errors--compilation aborted at sudo line 26.
# diff old/lib/Logwatch.pm new/lib/Logwatch.pm 83,86c83,86 < our @ISA = qw{Exporter}; < our @EXPORT; < our @EXPORT_OK; < our %EXPORT_TAGS = (sort => [qw(CountOrder TotalCountOrder SortIP)], --- > my @ISA = qw{Exporter}; > my @EXPORT; > my @EXPORT_OK; > my %EXPORT_TAGS = (sort => [qw(CountOrder TotalCountOrder SortIP)],
# diff old/scripts/services/sudo new/scripts/services/sudo 21c21 < our ($Debug, $Detail, %byUser); --- > my ($Debug, $Detail, %byUser);
不具合点の確認
- な訳で、細かな所がエラーになるだすー。なので下記のファイルを全部「perl -c xxx」とやってエラーが出ないことを確認しましょ。修正方法は、個別に書けないので自力で行ってくださいな。(って、作者に公開していいか聞いてみよかな)
- 修正する場合、エラー内容と対処が判らない場合は、ここのサイトが良いです「perl5.005 の邦訳」
# ls /etc/log.d/scripts/services ./ ftpd-messages* named* rt314* syslogd* ../ ftpd-xferlog* pam* samba* tac_acc* afpd* identd* pam_pwdb* secure* up2date* arpwatch* in.qpopper* pam_unix* sendmail* vpopmail* automount* init* pluto* smartd* zz-disk_space* autorpm* ipop3d* portsentry* sshd* zz-fortune* cron* kernel* proftpd-messages* sshd2* dhcpd* modprobe* qmail* stunnel* exim* mountd* raid* sudo*
悪いことしているやつのログ
メールの実行結果は、セキュリティの関係上ちょっと見せられませんが、ちょっと一部だけ。
これ Logwatch を導入した3日目位に報告された内容ですが、第三者による中継をしようとした sendmail のログ結果を収集し報告されたメールなんです。第三者中継は禁止してあるので対した問題ではありませんが、日ごろから下記の様なのを監視しているだけも良いことだと思います。しかし頭にきます。
Relaying denied: From 66-2-78-1-oc-03.cvx.algx.net [66.2.78.1] to dross@comset.net: 6 Times(s) From 66-2-78-1-oc-03.cvx.algx.net [66.2.78.1] to drouse@comcast.net: 6 Times(s) From 66-2-78-1-oc-03.cvx.algx.net [66.2.78.1] to drs@frankwu.com: 6 Times(s) From 66-2-78-1-oc-03.cvx.algx.net [66.2.78.1] to drummer@accesstoledo.com: 6 Times(s) From 66-2-78-1-oc-03.cvx.algx.net [66.2.78.1] to ds@cyberhotline.com: 6 Times(s) From 66-2-78-1-oc-03.cvx.algx.net [66.2.78.1] to eastridg@hutchtel.net: 6 Times(s) From 66-2-78-1-oc-03.cvx.algx.net [66.2.78.1] to eb@airbridge.net: 6 Times(s) From 66-2-78-1-oc-03.cvx.algx.net [66.2.78.1] to eb@notestation.com: 6 Times(s) From 66-2-78-1-oc-03.cvx.algx.net [66.2.78.1] to ebay@curleyco.com: 6 Times(s) From 66-2-78-1-oc-03.cvx.algx.net [66.2.78.1] to ebay@trianglecables.com: 6 Times(s) From 66-2-78-1-oc-03.cvx.algx.net [66.2.78.1] to ebony@notions-marketing.com: 6 Times(s)
実際のログ(/var/log/message)を参照してみましょ。いろんな悪さしてますねー
Mar 17 22:42:36 ns sendmail[21736]: h2HDgY321736: ruleset=check_rcpt, arg1=, relay=66-2-78-1-oc-03.cvx.algx.net [66.2.78.1], reject=550 5.7.1 ... Relaying denied. Please check your mail first. Mar 17 22:42:37 ns sendmail[21736]: h2HDgY321736: ruleset=check_rcpt, arg1= , relay=66-2-78-1-oc-03.cvx.algx.net [66.2.78.1], reject=550 5.7.1 ... Relaying denied. Please check your mail first. Mar 17 22:42:38 ns sendmail[21736]: h2HDgY321736: ruleset=check_rcpt, arg1= , relay=66-2-78-1-oc-03.cvx.algx.net [66.2.78.1], reject=550 5.7.1 ... Relaying denied. Please check your mail first.
でもって IP から、whois のデータベースを参照して、相手がどんなのかもみておきます。頻度が激しいようでしたら、相手の上位管理者に警告文を出しましょう。(IPドメインサーチ検索)
OrgName: Internet Allegiance, Inc. OrgID: IALG Address: 1950 Stemmons Freeway Suite 3026 City: Dallas StateProv: TX PostalCode: 75207 Country: US NetRange: 66.2.0.0 - 66.3.255.255 CIDR: 66.2.0.0/15 NetName: IALG-ALGX-5 NetHandle: NET-66-2-0-0-1 Parent: NET-66-0-0-0-0 NetType: Direct Allocation NameServer: NS1.ALGX.NET NameServer: NS2.ALGX.NET Comment: ADDRESSES WITHIN THIS BLOCK ARE NON-PORTABLE RegDate: 2000-08-23 Updated: 2001-03-28 TechHandle: II21-ARIN TechName: Internet Allegiance, Inc. TechPhone: +1-800-459-8496 TechEmail: Data-NOCC@allegiancetelecom.com # ARIN WHOIS database, last updated 2003-03-17 20:00 # Enter ? for additional hints on searching ARIN's WHOIS database.