swatchirc.pl:The Simple WATCHdog IRC Collaboration (based on swatch-3.0.4)

swatchを利用した簡単リアルタイムグループ監視の実現
 swatchを利用すればシスログ上のキーワードをwatchしてそれをメールで送信する機能はあります
 私は更にリアルタイムに、そしてグループワーキングに役立つようにIRCchatへの通知機能を追加しました。

 既にswatchを利用していればこの機能を利用する事は簡単です。
このスクリプトをDLし /swatch-bin-path/swatch ・・・と起動していたところを perl swatchirc.pl ・・・と起動するだけです。(当然IRC通知の為のコンフィグを本ページを参考に変更が必要です)  swatchを新たに設置する場合はこのページ下方を参照ください。

このスクリプトのDLは以下から行えます
http://www.egroups.co.jp/files/Eng-B/perlTips/swatchirc/swatchirc.pl


このスクリプトはswatch-3.0.4を改造し以下の機能を追加した物です。
 IRCへのメッセージ通知機能をアクション:ircmとして追加
 コマンドラインからconfigファイル上で参照可能な変数を設定する機能(アクション:pexec/ppipe/ircmのみ有効)
 
IRCへのメッセージ通知機能
 swatchのアクションとして実行します。
 指定したニックネームとuserIDでIRCサーバに接続し指定したチャンネルにwatchしたメッセージや定型メッセージを通知する。
 書式

ircm -n nick-name -u user-name [-h user-host-name] -s irc-server [-p irc-port] 
                  -c '#channel-name' [-k 'pass-key'] [-a 'alert-msg'] [-mskip] [:title-messages]
-n nick-name :ニックネームを指定
-u user-name :ユーザ名を指定(ircサーバにおいてIDENT認証に使われる物)
-h user-host-name: 省略可(ircサーバに自host名として通知したい場合指定,省略時は*)
-s irc-server :接続するIRCサーバホスト名またはIPアドレス
-p irc-port :省略可(接続するIRCサーバのホスト名を指定,省略時は6667)
-c '#channel-name':参加するチャンネル名を指定(シングルもしくはダブルコーテーションで区切る事)
-k 'pass-key':省略可(IRCサーバがPASSコマンドにて認証する場合そのキーを指定する)
-a 'alert-msg':alert-msgで記述した文字列を参加中チャンネルにACTIONメッセージとして送信
-mskip :省略可(このスイッチを指定するとwatchしたメッセージを送信しない)
:title-messages:省略可(タイトルメッセージをwatchしたメッセージの前に送信する)


configファイルの設定例と通知イメージ例:
suのパスワード認証を失敗するとACTIONメッセージと簡単なタイトルとそのログをChatに通知する場合
以下様なシスログが記録されるとして
Mar 13 01:24:52 PiLinux  3月 13 01:24:52 PAM_unix[621]: authentication failure; singo(uid=504) -> root for su service
swatchrcというファイル名でコンフィグファイルを作成する
---------------------------------------
watchfor /authentication failure/ #authentication failureをwatch
       pexec echo authentication failure:$5$6 $7 $11
       ircm -n logman -u syslog -s 192.168.0.1 -c '#passt' -a "おーい!!大変だよ"  :だれか入ろうとして失敗してるが様だが。。
---------------------------------------
以下のコマンドでswatchirc.plを起動
#perl ./swatchirc.pl -c swatchrc -p 'tail -f /var/log/messages'
ここでsu認証を失敗すると
起動コンソールには pexec echo authentication failure:$5$6 $7 $11アクションラインの結果が以下の様に表示され
authentication failure:3月13 01:24:52 singo(uid=504)
と同時に192.168.0.1で稼動しているIRCサーバの
#passtチャンネルに繋いだchat参加者(Client)に以下のメッセージが表示される
(以下はLimeChatの例)

(メッセージ日時は編集の都合で合っていません)

IRCChatクライアントがSJIS表示であればコンフィグファイルの日本語もSJISで記述します。EUC-JPの場合EUC-JP
(ircmアクションラインのスイッチ指定でSJIS,EUC-JP変換を今後追加予定)


このスクリプトは VineLinux2.5+IRCサーバirc2.10.3 WinXP+IRCクライアントLimeChat1.15,Chocoa1.0f5R にて動作確認しています。PASSコマンド認証有りについて現時点では未確認です。


swatchそのもののインストール:

swatch導入参考
http://www.geocities.co.jp/SiliconValley/6633/linux/swatch.html

swatchのアーカイブ
ftp://ftp.stanford.edu/general/security-tools/swatch/ 
http://www.engr.ucsb.edu/~eta/swatch/ 
ftp://ftp.stanford.edu/general/security-tools/swatch/ 

perl必要モジュール
http://search.cpan.org/  からサーチしDL
Time::HiRes
 現時点のDL先 http://search.cpan.org/CPAN/authors/id/J/JH/JHI/Time-HiRes-1.43.tar.gz
Date::Calc
 現時点のDL先 http://search.cpan.org/CPAN/authors/id/S/ST/STBEY/Date-Calc-5.3.tar.gz
Date::Parse
 現時点のDL先 http://search.cpan.org/CPAN/authors/id/G/GB/GBARR/TimeDate-1.14.tar.gz
File::Tail
 現時点のDL先 http://search.cpan.org/CPAN/authors/id/M/MG/MGRABNAR/File-Tail-0.98.tar.gz
モジュールインストールは
perl Makefile.PL
make
make test
su
make install

企画作成
2003/3/13
本田とけお H.tokeo(Singo Bluse Nabeshima) tokeon@rainbow.plala.jp