SendmailでのSPAMメール受信拒否

ホームページでメールアドレスを公開していると凄い数のスパムメールが届くようになったりします。大手プロバイダーでは、スパムフィルタが追加されたので、ある程度見なくて済むようになったものの、自宅サーバーではフィルタのプログラムを組むのも面倒です(時間があれば組むかも知れませんが、ここのところ全然時間がない)。以前、spamメールのログを数ヶ月間蓄積して、ドメインだけをプログラムで抽出してリストを作ってみたところ、特定のドメイン(ほとんどがフリーメール)から届いていることがわかりました。そのようなことから特定のドメインのメールを受信拒否することにします。 (「メールサーバーの設定」でも少し書いてありますが、拒否する方法のみに限定して書きました。)
sendmailのバージョンを確認する
sendmail8.10.0以降から追加された機能のようなので、古い場合には新しいバージョンに更新します。(セキュリティの面でも新しくしておいた方が吉)
sendmailの更新は「メールサーバーの設定」を参照して下さい。
拒否するドメイン名を設定する
スーパーユーザーで「/etc/mail/access」をviで開き、拒否したいドメイン名を記述します。
% su -l
# cd /etc/mail
# vi access
yahoo.co.jp
REJECT
aol.com
REJECT
mail.goo.ne.jp
REJECT


データベースファイルに変換する
先ほど記入した「access」ファイルをsendmail用のデータベースに変換します。「make」をかけると自動的にやってくれます。
# make
/usr/sbin/makemap hash access.db < access
chmod 0640 access.db
sendmailを再起動すれば設定が有効になります。
# /etc/rc.d/sendmail restart