totaltodayyesterday

フリーなCGIと自宅サーバー情報サイト

postfix + procmailによるメールフィルタリング(procmail-sub)

*管理人は現在これを使用していません

procmail-subはprocmailと連携してメールのSubjectと添付ファイルの拡張子をチェックし、スパムやウィルスの可能性があるメールを排除するperlスクリプトです。

[インストール環境]

» procmail
» postfix(Maildir)
» nkf

[1] procmail-subのダウンロード

> wget http://cmf.ohtanz.com/download/procmail-sub.tar.gz
> tar zxvf procmail-sub.tar.gz
> cd procmail-sub

[2] procmail-subをエディタで開いてperlのパスを編集

> cp procmail-sub /usr/local/bin/
> vi /usr/local/bin/procmail-sub

01:#!/usr/bin/perl


> chmod 755 /usr/local/bin/procmail-sub

[3] procmail-ext(拒否する拡張子)を編集

> cp procmail-ext /etc/postfix/
> vi /etc/postfix/procmail-ext

.vbs .vbe .jse .css .wsh ・ ・ ・

[4] procmail-bwd(スパムと見なすキーワード)を編集

> cp procmail-bwd /etc/postfix/
> vi /etc/postfix/procmail-bwd

未承諾広告 未承認広告

*Subjectに未承諾広告、未承認広告が含まれる場合に拒否

[5] フィルタリングしたいユーザーの$HOMEに.procmailrcを設置

> cp .procmailrc ~user/
> chown user:user ~user/.procmailrc

*.procmailrcをカスタマイズしたい場合は下記をご参考下さい

SHELL=/bin/sh PATH=/bin:/usr/bin:/usr/local/bin CONFDIR=/etc/postfix #procmail-bwd/procmail-extがあるディレクトリ LOGFILE=/var/log/procmail #procmail用のログ MAILDIR=$HOME/Maildir/ DEFAULT=$MAILDIR NGWORD=$CONFDIR/procmail-bwd NGEXT=$CONFDIR/procmail-ext #ここからスパムと見なすキーワードをチェック########## :0 H * ^Subject:.*¥/.* { DECWORD=$MATCH :0 h * ^Subject:.* DECWORD=|echo "$MATCH" | nkf -me :0 h *$ ? test -s $NGWORD * ? echo $DECWORD | procmail-sub -w $NGWORD { EXITCODE=67 #procmail-bwdにマッチした場合に :0 #User Unknownでリターンしてメールを破棄します /dev/null #(単に破棄するだけの場合はEXITCODE=67、0:の行を削除して下さい) } } #ここまで############################### #ここから特定の拡張子をチェック################## :0 B * (filename|name)=.*¥/.* { DECEXT=$MATCH :0 b * (filename|name)=.* DECEXT=|echo "$MATCH" | nkf -me :0 b *$ ? test -s $NGEXT * ? echo $DECEXT | procmail-sub -e $NGEXT { EXITCODE=67 #procmail-extマッチした場合に :0 #User Unknownでリターンしてメールを破棄します /dev/null #(単に破棄するだけの場合はEXITCODE=67、0:の行を削除して下さい) } } #ここまで###############################

[6] フィルタリングしたいユーザーの$HOMEに.forwardを設置

> cp .forward ~user/
> chown user:user ~user/.forward

*.forwardの内容

"|IFS=' ' && exec /usr/bin/procmail -f- || exit 75 #~/Maildir/"

[7] procmail用のログを作成

> touch /var/log/procmail
> chmod 666 /var/log/procmail

[8] logrotateに追加

> vi /etc/logrotate.d/procmail

/var/log/procmail { create 666 root root }

コメントを残す

logo
RSS はてなブックマーク Twitter Facebook Google+
now loading...