$ wget http://download.sourceforge.net/courier/maildrop-1.3.5.tar.gz $ tar zxvf maildrop-1.3.5.tar.gz $ cd maildrop-1.3.5 $ ./configure $ make $ su # make install
# chown root /usr/bin/suidperl # chmod 4711 /usr/bin/suidperlを忘れないこと。
$ wget http://www.cpan.org/modules/by-module/Time/Time-HiRes-01.20.tar.gz $ tar zxvf Time-HiRes-01.20.tar.gz $ cd Time-HiRes-01.20 $ perl Makefile.PL $ make $ su # make install
$ wget http://www.qmail.org/qmailqueue-patch $ cd qmail-1.03 $ patch < ../qmailqueue-patch $ su qmailを停止した後 # make setup
$ wget http://prdownloads.sourceforge.net/qmail-scanner/qmail-scanner-1.01.tgz $ tar zxvf qmail-scanner-1.01.tgz $ cd qmail-scanner-1.01 unzipが必要なのであらかじめinstallしておいてください。
/usr/ports/archivers/unzip が利用できます。
以前、記載していたgunzipで代用するのはうまくいかないようです。
# ./configure --install
/usr/local/bin/start-qmail-smtpdで
#!/bin/sh
QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"
export QMAILQUEUE
/usr/local/bin/tcpserver -u 7791 -g 2108 -x /etc/tcp.smtp.cdb \
0 smtp \
/usr/local/bin/pbs4q \
/var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 3 &
としてQMAILQUEUEを設定する。
qmail-conf を使用している場合は、
# echo /var/qmail/bin/qmail-scanner-queue.pl > /service/smtpd/env/QMAILQUEUEとします。
/var/spool/qmailscan/quarantine-attachments.txt にscanningの条件を設定する。
defaultの設定は以下のとおり
#######################################################
EICAR.COM 69 EICAR Test Virus
Happy99.exe 10000 Happy99 Trojan
zipped_files.exe 120495 W32/ExploreZip.worm.pak virus
ILOVEYOU Virus-Subject: Love Letter Virus/Trojan
#The following matches Date: headers that are over 100 chars in length
#these are impossible in the wild
.{100,} Virus-Date: Date Buffer Overflow trojan
#######################################################
#".exe"の添付ファイルを拒否する場合
.exe 0 Executable attachment too large
## ここは TAB ここもTAB
を追加する。その後
# /var/qmail/bin/qmail-scanner-queue.pl -g
を実行してdatabaseを再構築する。
***** 2001.11.27
.dll 0 Windows Dynamic Link Library .nls 0 National Language Supportを追加。
http://www.amavis.org/security/asa-2001-1.txt
に記載されているとおり、reformimeはW32/Alizを抽出できません。
そこでMIMEの切り分けをrefirmimeからripmimeに変更します。
$ wget http://www.pldaniels.com/ripmime/ripmime-1.2.7.tar.gz $ tar zxvf ripmime-1.2.7.tar.gz $ cd ripmime-1.2.7 $ make $ su # make installさらに、/var/qmail/bin/qmail-scanner.plにpatchを当てます。
# cd /var/qmail/bin # patch < qmail-scanner-ripmime.pathripmimeに変更すると、 qmail-scanner-1.01/contrib/test_installation.sh でテストのために送られるEICAR.COMのbyte数が69ではなく70になってしまいました。
$ cd qmail-scanner-1.01 $ wget http://www.y-min.or.jp/~nob/qmail/qmail-scanner-locale-ja.tar.gz $ tar zxvf qmail-scanner-locale-ja.tar.gz -C locale $ su # ./configure --lang ja_JP.EUC --install
@@ -1040,7 +1041,8 @@
sub email_sender {
- open(SM,"|$qmailinject -h -f ''")||&tempfail("cannot open $qmailinject for sending quarantine report - $!");
+# open(SM,"|$qmailinject -h -f ''")||&tempfail("cannot open $qmailinject for sending quarantine report - $!");
+open(SM,"|/usr/local/bin/nkf -j|$qmailinject -h -f ''")||&tempfail("cannot open $qmailinject for sending quarantine report
- $!");
print SM "From: \"$V_FROMNAME\" <$V_FROM>\n";
if (!&is_unreplyable_email('sender') && ¬ify_addr('sender')) {
&debug("e_s: sending quarantine report via: $qmailinject to sender address ($returnpath)");
@@ -1121,8 +1123,8 @@
sub email_recips {
-
- open(SM,"|$qmailinject -h -f ''")||&tempfail("cannot open $qmailinject for sending quarantine report - $!");
+open(SM,"|/usr/local/bin/nkf -j|$qmailinject -h -f ''")||&tempfail("cannot open $qmailinject for sending quarantine report
- $!");
+# open(SM,"|$qmailinject -h -f ''")||&tempfail("cannot open $qmailinject for sending quarantine report - $!");
print SM "From: \"$V_FROMNAME\" <$V_FROM>\n";
if (¬ify_addr('recips') ) {
if (!&is_unreplyable_email('recips')) {
として nkfでJISに変換しています。
-rwsr-xr-x 1 qmailq qmail 45139 Nov 27 16:22 /var/qmail/bin/qmail-scanner-queue.plとなっているか確認。