Logwatch に関するインストールメモ(2003/03/17)
swatch での監視は、syslog に出力されるログを監視し管理者が指定したパターンが現れたときにメール等での通知を行うツールでした。しかし、管理者が指定したパターンが不十分であったり、スキルが不足しており本来監視対象としなければいけない物を見逃してしまう可能性がありました。また、swatch での監視は即時性があり障害対応を行うには、非常に有用なツールですが、いかんせんメール内容は、その該当行のまま表示されるため、ログを見慣れていないと折角の通知でも対応を誤ってしまう可能性がありました。
これに対し Logwatch は、cron コマンドを利用し毎朝(デフォルトは、04:02)に実行され、syslog の内容から各セキュリティに関する情報を自動的に収集し管理者にメールで通知する機能を持ちます。
本家 : Logwatch(英語です)
参考 : サーバのログ監視ツールを使いこなそう(@IT)
収集する情報の中には、以下の物があります。(全部では、ないです)
qpop による外部参照ユーザ
sendmail/qmail による不正中継 (第三者中継の調査)
パスワード不一致
root ユーザとなったユーザ一覧、また回数
samba によるアクセス
外部サービスの総アクセス時間
ディスク使用情報
1.このソフトは、RedHat系で動かすことを前提としているようですので、下記の作業内容については当方では責任を負いかねます。ただ、悪さを発見するソフトなので多少の不具合でも目をつぶれるというひとには、絶対にお勧めします。
※ logwatch5.0 になってましたのでこちらを参照のこと。
2.まずはインストールをしようね♪
% wget ftp://ftp.kaybee.org/pub/linux/logwatch-4.3.2.tar.gz
% gzip -cd logwatch-4.3.2.tar.gz | tar xf -
% cd logwatch-4.3.2
% su
# mkdir /etc/log.d
# cp -r scripts/ /etc/log.d
# cp -r conf/ /etc/log.d
# ln -s /etc/log.d/scripts/logwatch.pl /etc/cron.daily/3. /etc/log.d/conf/logwatch.conf ファイルを編集し、ログ収集する定義情報を変更します。下記は、最低限行っていた方がよいと思われる項目です。
LogDir = /var/log ← ログ出力先を指定します
Detail = Med ← ログ収集結果のレベルを指定します(これ位が、いいかも)
MailTo = root ← ログ収集結果を通知するユーザを指定します
Archives = Yes ← アーカイブログを参照するか指定します(ローテイトされているタイミングを考慮し)
mailer = /bin/mail ← メールコマンドを指定します
HostLimit = No ← 転送されたログを対象にするかを指定します
1./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
1.実行時間(毎日 04:02 に実行)まで待っているのは、時間の無駄なのと設定した内容がどの様に通知されるのかを、仮にテストしてみます。ちなみに、仮実行するには、root ユーザになる必要があります。
2.じっこー
# /etc/cron.daily/logwatch.pl
3.メール届きました?
1.仮テストを行って見ると判るのですが、どうやら sudo の Perl スクリプトでエラーが発生しているみたいなんです。これは、先にも書いたとおり Qube3J で動かすことを前提としていないために発生するので、こういう場合は Perl ですので自分で直してみましょう。※ ちなみに下記のエラーは「/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.2.修正しましょ。赤い部分を修正ね。
old------------
our ($Debug, $Detail, %byUser);
BEGIN {
$Debug = $ENV{'LOGWATCH_DEBUG'} || 0;
old------------
new------------
my ($Debug, $Detail, %byUser);
&our ($Debug, $Detail, %byUser);
BEGIN {
$Debug = $ENV{'LOGWATCH_DEBUG'} || 0;
new------------3.コンパイルエラーが無いか確認しましょ
# cd /etc/log.d/scripts/services
# perl -c sudo.pl
sudo.pl syntax OK4.再度実行しましょ♪
1.な訳で、細かな所がエラーになるだすー。なので下記のファイルを全部「perl -c xxx」とやってエラーが出ないことを確認しましょ。修正方法は、個別に書けないので自力で行ってくださいな。(って、作者に公開していいか聞いてみよかな)
# 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*2.修正する場合、エラー内容と対処が判らない場合は、ここのサイトが良いです「perl5.005 の邦訳」
メールの実行結果は、セキュリティの関係上ちょっと見せられませんが、ちょっと一部だけ。
これ 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=<eastridg@hutchtel.net>, relay=66-2-78-1-oc-03.cvx.algx.net [66.2.78.1], reject=550 5.7.1 <eastridg@hutchtel.net>... Relaying denied. Please check your mail first.
Mar 17 22:42:37 ns sendmail[21736]: h2HDgY321736: ruleset=check_rcpt, arg1=<drs@frankwu.com>, relay=66-2-78-1-oc-03.cvx.algx.net [66.2.78.1], reject=550 5.7.1 <drs@frankwu.com>... Relaying denied. Please check your mail first.
Mar 17 22:42:38 ns sendmail[21736]: h2HDgY321736: ruleset=check_rcpt, arg1=<eb@notestation.com>, relay=66-2-78-1-oc-03.cvx.algx.net [66.2.78.1], reject=550 5.7.1 <eb@notestation.com>... 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.