最終更新日 2003/12/27  戻る  472604 人 REMOTE = 38.103.63.18 REFERER =

★スパムメールの受信拒否とqmHandle

1.yaguma.comの場合huxa@yaguma.comなどという存在しないユーザに対してメールが届きます.このメールはFromが千差万別でbadmailfromのようなコントロールファイルは使えません.そこで,この場合aliasを使って受信拒否します.
/var/qmail/aliasに.qmail-huxaを作ります.
内容を#とします.これでhuxa@yaguma.com宛のメールは闇の中です.停滞キューに残っているときはqmHandleを使って削除しましょう.

2.特定のメールアドレスから来るジャンクメールの場合badmailfromファイルを使って受信拒否することが出来ます.
/var/qmail/control/badmailfrom
@mail.internetseer.com
badmail@notexist.com
のように記述します.

3.rblsmtpdを使用する.
rblsmtpdはRBL(http://e-words.jp/w/MAPS20RBL.html)に登録されているサイトからのメールを拒否し,tcpserverの下で動いているSMTPサーバがあれば使用することが出来ます.
rblsmtpdはtcpserverをインストールした時点で既にインストールされています.
現在使っているqmail-vida用のqmail起動ファイルの中で
# Start smtpd
exec env - ALLOWPLAIN="0.0.0.0" DOMAINOWNER=""\
/usr/local/bin/tcpserver -vHR -x /var/qmail/control/tcprules.dat 0 smtp \
/var/qmail/bin/qmail-smtpup $HOST \
/var/qmail/bin/checkpassword /var/qmail/bin/qmail-smtpd \
2>&1 | /var/qmail/bin/splogger smtpd 4 &

# Start smtpd
exec env - ALLOWPLAIN="0.0.0.0" DOMAINOWNER=""\
/usr/local/bin/tcpserver -vHR -x /var/qmail/control/tcprules.dat 0 smtp \
/usr/local/bin/rblsmtpd -r relays.orbs.org -r rbl.maps.vix.com \
/var/qmail/bin/qmail-smtpup $HOST \
/var/qmail/bin/checkpassword /var/qmail/bin/qmail-smtpd \
2>&1 | /var/qmail/bin/splogger smtpd 4 &
を付け加えます.-rオプションを付けなければrbl.maps.vix.comというRBLソースを試します.スパムのブラックリストで有名なORDBを付け加えるならば-r relays.orbs.orgとします.また,いくつでも-rと-aオプションを付けることができます.
rblsmtpdを使用するときは遅延が生じる事があるのでホワイトリストを作った方がよいそうです.しかし今のところそれほど遅延が生じているとは思えないので作ってません.
http://spam.h1r.org/qmail/whitelist.html

4.condredirectとiftoccを使用する.
スパムの中にはBccフィールドを利用して送信しているものがあるのでそれに対してフィルタをかけます.
condredirectは/var/qmail/binにありqmailがインストールされた時点でインストールされています.
condredirect 転送先のアドレス 判定条件
のように使います.
iftoccは所定のあて先がToやCcに含まれているかどうかの判定を行います.
ftp://ftp.jp.qmail.org/qmail/からmess822-0.58.tar.gzをダウンロードし/usr/local/bin/にインストール.例によってmess822-0.58.tar.gzが/usr/local/srcにあるとします.
# tar xvzf mess822-0.58.tar.gz
# cd mess822-0.58
# make
# make setup check
これでiftoccは/usr/local/binにインストールされます.
一番簡単なのはgomiなどというユーザを作っておき自分の.qmailに
|/var/qmail/bin/condredirect gomi@yaguma.com except /usr/local/bin/iftocc
./Maildir/
と記述することです.これで,Bccで送信されてきたものは転送されそれ以外はMaildirで受け取ります.gomiの.qmailは#だけを記述します.するとここへ来たメールは全て削除されます.
AMMさんのHPにhttp://www.ayamizu.com/makeserver.htm#27
condredirectを利用したスパムメール受信拒否の記事があります.
参考ページ
http://www.emaillab.org/djb/tools/ucspi-tcp/rblsmtpd.html
http://www.atmarkit.co.jp/flinux/rensai/qmail03/qmail03b.html

5.procmailを使用する
かつさんのHPhttp://www.kkoba.com/mailserver/procmail.shtml
procmailを使った記事があります.
http://acorn.zive.net/~oyaji/mail2/spamassassin.htm
にはspamassassinとprocmailによるスパムメール対策が紹介されています.
Vineでは以下のファイルをVinePlusから持ってきます.
spamassassin-2.55-0vl2.i386.rpm

spamassassin-tools-2.55-0vl2.i386.rpm
perl-HTML-Parser-3.26-14vl2.i386.rpm
perl-Time-HiRes-1.35-0vl2.i386.rpm
perl-Mail-SpamAssassin-2.55-0vl2.i386.rpm
なぜかperl-HTML-Tagset-3.03-25vl2.src.rpm
はバイナリRPMがないのでSRPMからビルドしなければいけません.
/root/rpmにperl-HTML-Tagset-3.03-25vl2.src.rpmがあるとします.
#cd /root/rpm
#rpm -ivh perl-HTML-Tagset-3.03-25vl2.src.rpm
#cd SPECS
#rpm -ba perl-HTML-Tagset.spec
これで/root/rpm/RPMS/noarch/perl-HTML-Tagset-3.03-25vl2.noarch.rpm
が作られます.
#rpm -ivh perl-HTML-Tagset-3.03-25vl2.noarch.rpm
#rpm -ivh perl-Time-HiRes-1.35-0vl2.i386.rpm
#rpm -ivh perl-HTML-Parser-3.26-14vl2.i386.rpm
#rpm -ivh perl-Mail-SpamAssassin-2.55-0vl2.i386.rpm
#rpm -ivh spamassassin-2.55-0vl2.i386.rpm
#rpm -ivh spamassassin-tools-2.55-0vl2.i386.rpm
これでspamassassinのインストールはおしまいです.
ntsysvで自動実行しておきましょう.
設定ファイル
/home/user/.procmailrc
PATH=/bin:/usr/bin:/usr/local/bin
MAILDIR=$HOME/Maildir
DEFAULT=$MAILDIR/
LOGFILE=$MAILDIR/procmaillog
LOCKFILE=$HOME/.lockmail
:0fw
*!^X-Spam.*
|/usr/bin/spamc
:0:
*^X-Spam-Status: Yes
! gomi@yaguma.com <- gomiユーザを作ってそこに全てのスパムを送る

/home/user/.qmail
|IFS=' ' && exec /usr/bin/procmail -f- || exit 75 #user

おまけ
上記のような対策をしていると停滞キューが発生することがあります.
このようなときに威力を発揮するのがqmHandleです.Perlのスクリプトですので
http://sourceforge.net/projects/qmhandle
から現在の最新バージョンqmhandle-1.1.1.tar.gzをDLして
#tar xzvf qmhandle-1.1.1.tar.gz
として,qmHandleを/usr/local/binなどに置けばよいでしょう.
停滞キューの普通の削除の仕方はhttp://www.atmarkit.co.jp/flinux/rensai/qmail03/qmail03c.htmlを参考にして下さい.qmail-qstatやqmail-qreadを使用した方法はとてもめんどくさいです.そこでqmHnadleの出番です.
使い方はとても簡単で
#qmHandle -L -R
とするとremoteとlocalの停滞キューが明示されます.
#qmHandle -dMessage-Id
とするとMessage-Idの停滞キューが削除されます.このときqmailが動いていればstopしてくれます.
#qmHandle -D
とすると全ての停滞キューが削除されます.このときqmailが動いていればstopしてくれその後に再起動してくれます.


Copyright 2002-2003 Kai All Rights Reserved & This site is Link Free 戻る