QmailScanner

サーバー運用がかなり厳しいので寄付をしてくれる人がいたらこちら
メインPCもボロボロになってきたので、ついにほしいものリスト公開

久しぶりの更新(2015/5/20)

qmail-scannerにstパッチをつけたもので運用します。
stパッチはqmail-scannerをより強力にしてくれるので、お勧めです。
2.11stで遊びまする。

Perlが5.12.0以降、Perlのsuidエミュレーションが消え去りました。
その影響で、qmail-scannerが正しく動作しなくなり、メールが使えなくなります。
contribフォルダに有るラッパーをつかっていけるらしいということでやってみます。

ダウンロード

cd /usr/local/src
wget http://jaist.dl.sourceforge.net/sourceforge/qmail-scanner/qmail-scanner-2.11.tgz
tar zxvf qmail-scanner-2.11.tgz
cd qmail-scanner-2.11
wget http://toribio.apollinare.org/qmail-scanner/download/q-s-2.11st-20130319.patch.gz
gzip -dc q-s-2.11st-20130319.patch.gz | patch -p1
cd locale
cp -r ja_JP.EUC ja_JP.UTF-8
cd ja_JP.UTF-8/
vi conv.sh
---cut here---
#!/bin/sh
for i in `ls -1`;do
nkf -w $i > $i.tmp
mv $i.tmp $i
done
---cut here---
sh conv.sh
cd ../../

インストール

./configure \
--qs-user qscand \
--admin webmaster \
--domain example.org \
--admin-description "System Anti-Virus Administrator" \
--notify nmlvadm,admin \
--local-domains example.org \
--silent-viruses auto \
--virus-to-delete 0 \
--skip-text-msgs 1 \
--lang ja_JP.UTF-8 \
--debug no \
--minidebug 1 \
--add-dscr-hdrs 0 \
--dscr-hdrs-text "X-Antivirus-Detection" \
--normalize 1 \
--archive 0 \
--settings-per-domain 0 \
--max-scan-size 100000000 \
--unzip 0 \
--max-zip-size 1000000000 \
--max-unpacked-files 10000 \
--redundant 0 \
--log-details syslog \
--log-crypto 0 \
--fix-mime 1 \
--ignore-eol-check 0 \
--sa-delta 0 \
--sa-alt 0 \
--sa-debug 0 \
--sa-report 0 \
--sa-quarantine 3 \
--sa-delete 10 \
--sa-reject 1 \
--scanners "clamdscan,verbose_spamassassin" \
--install 1

後はEnterキー連打でインストール完了です。

perl 5.12対応

インストールされたqmail-scanner-queue.plはパーミッションがおかしいかも知れないので、0755にしておきます

chmod 0755 /var/qmail/bin/qmail-scanner-queue.pl
cd /usr/local/src/qmail-scanner-2.11st/contrib
gcc -o qmail-scanner-queue qmail-scanner-queue.c
install -D -o root -g root -m6755 qmail-scanner-queue /var/qmail/bin/qmail-scanner-queue

後は/service/qmail-smtpd/runとかに書かれてるQMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"をQMAILQUEUE="/var/qmail/bin/qmail-scanner-queue"にしてqmailctl restartで動くようになります。

とりあえずstパッチについては、メールの削除はせずに
様子見するような設定でインストールします。

次にqmail-scanner-queue.plの日本語化メール対応と
ローカルタイム化をします。

/var/qmail/bin/qmail-scanner-queue.pl

my $qmailinject = '/var/qmail/bin/qmail-inject';my $qmailinject = '/usr/bin/nkf -j | /var/qmail/bin/qmail-inject';
#1777行目付近
($sec,$min,$hour,$mday,$mon,$year) = gmtime(time);($sec,$min,$hour,$mday,$mon,$year) = localtime(time);
 
$findate .= sprintf "%02d %02d:%02d:%02d -0000", $year+1900, $hour, $min, $sec;$findate .= sprintf "%02d %02d:%02d:%02d +0900", $year+1900, $hour, $min, $sec;

次にQmailとの連携のためrunファイルを編集します。

/service/qmail-smtpd/run

#MAXSMTPDの下に追加
QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"
export QMAILQUEUE
 
#/var/qmail/bin/qmail-smtpd \の下に追加
/usr/local/bin/rblsmtpd -r list.dsbl.org -r cbl.abuseat.org -r sbl.spamhaus.org -r virus.rbl.jp \
 
#変更
exec /usr/local/bin/softlimit -m 8000000 \
↓
exec /usr/local/bin/softlimit -m 15000000 \

Qmail-Scannerの設定

/var/spool/qscan/quarantine-events.txt

コメントを外す
#.lnk
#.wsh
#.bat
#.com
#.exe
 
追加(間はTabじゃないと怒られます)
.ade	SIZE=-1	Access Project Extension
.adp	SIZE=-1	Access Project
.bas	SIZE=-1	Visual Basic Class Module
.btm	SIZE=-1	JP Software fast batch file
.chm	SIZE=-1	Compiled HTML help file
.cmd	SIZE=-1	cmd.exe NT batch file
.crt	SIZE=-1	Security Certificate
.css	SIZE=-1	Cascading Style Sheets
.dll	SIZE=-1	Windows Dynamic Link Library
.hlp	SIZE=-1	Windows Help File
.inf	SIZE=-1	Setup Information file
.ins	SIZE=-1	Internet Communication Settings
.isp	SIZE=-1	Internet Communication Settings
.js	SIZE=-1	JavaScript
.jse	SIZE=-1	JavaScript Encoded
.mdb	SIZE=-1	Acess Application
.mde	SIZE=-1	Access MDE Database
.msc	SIZE=-1	Common Console Document
.msi	SIZE=-1	Windows Installer Package
.msp	SIZE=-1	Windows Installer Patch
.mst	SIZE=-1	Visual Test Source File
.nls	SIZE=-1	National Language Support
.pcd	SIZE=-1	Photo CD Image
.reg	SIZE=-1	Windows Registry file
.sct	SIZE=-1	Scriptlet File
.shb	SIZE=-1	Shell Scrap object
.shs	SIZE=-1	Shell automation code
.url	SIZE=-1	Internet Shortcut (Uniform Resource Locator)
.vb	SIZE=-1	Script Script File
.vba	SIZE=-1	Visual Basic Application
.vbe	SIZE=-1	VisualBasic Encoded
.wsc	SIZE=-1	Windows Script Component
.wsf	SIZE=-1	Windows Scripting File

設定反映

setuidgid qscand /var/qmail/bin/qmail-scanner-queue.pl -g

Cronの設定

0 0 * * * /var/qmail/bin/qmail-scanner-queue.pl -z
59 23 * * * /var/qmail/bin/log-report.sh /var/spool/qscan/qmail-queue.log | mail -s 'qmail log-report' webmaster@example.org

アンチウィルスの追加とか

つい最近、SophosがLinux向けのアンチウィルスを無償提供するとのニュースが有ったので、
いろいろなフリーのアンチウィルスを入れて試してみます。(各ページにて確認してね)
2015/5/20現在Sophos用のscannnerの設定がうまくいかないので誰かうまく動かせる人がいたら教えて下しあ
とりあえず、動かすのはClamAV、AVG、F-protの3つをインストールして使います。
ClamAVは既にインストールされてると思うので、それ以外を入れます。
尚、qmail-scanner側のコンパイル時の設定は以下のようにしています。
--scanners "clamdscan,avgd,mhr,fpscan,verbose_spamassassin,savscan" AVGはインストール後にqmail-queueを元に戻してqmail-scanner-queue.plをいじる必要があるので
インストールのところを確認しておいてください。

後はqmailctl restartでOKなはずです。
ちゃんと動いているかチェックする場合はqmail-scanner付属の
チェックツールで確認可能です。

cd /usr/local/src/qmail-scanner-2.11st/contrib
./test_installation.sh -doit

これは4通投げるのですが、
1通目は正常なメール
2通目はeicarのテストウィルス(メール本文)
3通目もeicarのテストウィルス(添付ファイル)
4通目はSpamテスト

1通目だけ届いていればたぶん完璧です。

コメントを追加

Plain text

  • HTMLタグは利用できません。
  • ウェブページアドレスとメールアドレスは、自動的にハイパーリンクに変換されます。
  • 行と段落は自動的に折り返されます。
CAPTCHA
また変更しました
Fill in the blank.