ProcmailによるSPAM対策

Mail System Postfix SMTP-Auth SMTP-Auth+TLS SMTP+Virtual Qpopper Qpopper/SSL Courier-IMAP FetchMail Procmail WebMail AntiVirus Relay Mail

最近やたらと、「未承諾広告※ ・・・」というメールが届き始めた。家族にも届くので、一括してごみ箱行きにするため、メール振り分けソフトであるProcmailを使って処理することにしました。いろいろ調べ検討しましたが、ProcmailはPostfixからも起動できるのですが、おやじの環境はAntiVirを導入していたり、メールボックスがMaildir形式であったりしたため、オーソドックスな方法での導入となりました。なるべく、管理を簡単にしたかったのですか、下記が限界でした。他の方法があれば教えていただくとありがたいのですが。
なお、設定を誤るとメール紛失や、ループが発生しますので各人のリスクで導入検討してください。おやじは、バックアップ機で試験後、導入しましたがなかなかうまくいきませんでした。

■Promailの設定

RedHatでは、procmailはプレインストールされているので、設定のみで使用できます。一応、whichコマンドでインストールされているか確認します。
 $ which procmail
 /usr/bin/procmail
上記のように、procmailのパスが表示されればインストールされています。

Procmailを使用するには、下記の2つのファイルが必要です。この2つのファイルは、各ユーザのhomeディレクトリに置きます。ここが少し不便で、ユーザごとに設定しなければなりません。共通管理にしたかったのですが、Postfix連携でmbox形式ならできそうですが、Maildir形式ではうまく配送できませんでした。

  ・.forward  : 受信したメールをprocmailに処理させるためのファイル
  ・.procmailrc: レシピとも言われるもので、どのようにメールを配送するかを記述したファイル

■.forwardファイルの設定

各ユーザのhomeディレクトリに下記要領で、Procmailを起動させるための.forwardファイルを作成する。

 $ cd ~
  $ vi .forward

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

 ・「/usr/bin/procmail」は、上記で確認したProcmailへのパスを指定する。
 ・最後の「#oyaji」のところは、登録するユーザ名を記述する。

■.procmailrcファイルの設定

各ユーザのhomeディレクトリに下記要領で、メール配送ルールを記述した.procmailrcファイルを作成する。

 $ cd ~
  $ vi .procmailrc

 PATH=/bin:/usr/bin:/usr/local/bin     <--環境変数の設定
 MAILDIR=$HOME/Maildir                 <--メールディレクトリへのパス
 DEFAULT=$MAILDIR/                <--下記配送条件にマッチしなかった時の配送先
 LOGFILE=$MAILDIR/procmaillog        <--ログの保存先を指定
 LOCKFILE=$HOME/.lockmail             <--ロックファイルのパスを指定
 SPAM=$HOME/.spam                      <--スパムメールの保存先を指定

 :0H:
 * ^Subject:.*iso-2022-jp
 * ^Subject:.*\/.*
 * ? echo "$MATCH" | nkf -Zme | grep '未承諾広告※'
 $SPAM

ルール(レシピ)はいろいろ書けますが、おやじは取り敢えずうるさい「未承諾広告※」だけ、弾くようにしました。今後、順次レシピを増やしていく予定です。
レシピの書き方は、検索すれば、インターネット上にいくらでもありますのでここでは簡単に。

Mail System Postfix SMTP-Auth SMTP-Auth+TLS SMTP+Virtual Qpopper Qpopper/SSL Courier-IMAP FetchMail Procmail WebMail AntiVirus Relay Mail