簡単なウイルスメールをスキャンするスクリプトをつくる

目的

ウザったいウイルスメールを自作スクリプトでフィルタすることを目的とします。
また、今回のスクリプトは特にウイルスパターンを定義してフィルタするというわけではないため、(大方の)exeファイルをフィルタしてしまいますのでご注意ください。

環境

判定方法

ウイルスメールのパターンを見れば分かりますが、大体メールの本文に'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'という文字が入っている事が確認出来ます。
今回のスクリプトでは、これが3回検出されたら(ようするに4行存在したら)ウイルスメールと判定することにします。

作ってみる

スクリプトの動作としては以下の通りとなります。
実際のフィルタ用スクリプト

設置してみる

実際に設置してみます。
#ホームディレクトリに移動
cd ~
#スクリプト設置用ディレクトリの作成
#bin/virusscan にスクリプトを設置する
#bin/log/filtered.log にログファイルが作成される
#bin/log/mail 以下に、ウイルスメールが保管される
mkdir -p bin/virusscan/log/mail
#属性の変更(自分以外は実行不可、及びログの閲覧不可)
chmod -R 0700 bin/virusscan
#スクリプトの設置
cd bin/virusscan
wget http://moko.cry.jp:3232/~keiji/linux/pub/scripts/viruscanner.rb.txt --output-document=viruscanner.rb
chmod 700 viruscanner.rb
さらに、.qmailへの記述が必要です。
自分のホームディレクトリの.qmailの先頭に以下の通り記述してください。
| bin/virusscan/viruscanner.rb
初めて.qmailを設定する場合は、大抵の環境(Maildir使用)であれば、
| bin/virusscan/viruscanner.rb
./Maildir/
で、動作すると思います。

テスト

実際に、上記スクリプトを設置したアカウント宛にウイルスメールを送信してみてください。
~/bin/virusscan/log/filtered.log が作成され、中に、
日付[TAB]保存ファイル名[TAB]パターンヒット数
というデータが作成されていれば、フィルタに成功しています。
同時に、~/bin/virusscan/log/mail 以下にウイルスメールが保存されていると思います。
また、差出人にメールが戻ってくると思います。
ただ、差出人には、フィルタされたメールがそのまま返送されるため、自分が差出人だとメールがループしてしまい、エラーメールが管理者宛に届いてしまいます。
回避するためには、差出人にメールを戻さないという方法があります。
この場合、ソースコードのexit(100)と記述してある部分をexit(99)にしてください。
そうすれば、メールを返送することが無くなります。

もどる

by 2001- (C) Watanabe Keiji <<Send Mail>>