国際教育ニュース
世界の教育に関する情報発信メディア
en ja zh
スパムメールの退治

Postfix で SpamAssassin を使ってスパムメールを排除する方法

2020-05-20
image
メールサーバ Postfix レベルでスパムを判定し、マークする方法を解説します。

この記事では、CentOS 7 Linux プラットフォーム上の Postfix に SpamAssassin をインストールする方法を解説します。

前提条件

記事を執筆するにあたり下記条件で検証しています。

なお Postfix のバージョンは次の方法で確認できます

postconf -d | grep mail_version

SpamAssassinバージョン確認

spamassassin -V

SpamAssassin のインストール手順

$ sudo yum update    
$ sudo yum install spamassassin    

SpamAssassin の構成手順

$ sudo vi /etc/mail/spamassassin/local.cf

構成ファイルに、下記を記述します

required_hits 5.0    
report_safe 0    
required_score 5    
rewrite_header Subject [SPAM]    

SpamAssassin を実行する新しいユーザーを作成します。
具体的には spamd グループを追加してシェルなしユーザを作成します。

$ sudo groupadd spamd    
$ sudo useradd -g spamd -s /bin/false -d /var/log/spamassassin spamd    
$ sudo chown spamd:spamd /var/log/spamassassin    

自動起動を有効化してサービスを開始します

$ sudo systemctl enable spamassassin    
$ sudo systemctl start spamassassin    

スパムルールの更新をします

$ sudo sa-update

Postfix で SpamAssassin を使用する構成手順

master.cf ファイルを編集します。

$ sudo vi /etc/postfix/master.cf

smtp inet n - n - - smtpd

上の行を下に変更します

smtp inet n - n - - smtpd -o content_filter=spamassassin

最終行に下行を追加します。

spamassassin unix - n n - - pipe flags=R user=spamd argv=/usr/bin/spamc -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}

Postfixを再起動します

$ sudo systemctl restart postfix

スパム検出をテストする

本メールサーバーの外部から下記メールを送信してテストします。

タイトル:なんでも良い

メッセージ本文:XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X

正常に設定されていれば、受信トレイに [SPAM] で始まるタイトルのメールが届きます。

さらにログをチェックします。

$ journalctl | grep spam

スパム定義の更新を自動化する

crontab を開き

$ sudo vi /etc/crontab

自動更新(毎日午前零時実行)を設定します

0 0 * * * root /bin/sa-update && /sbin/service spamassassin restart

cron実行確認方法

grep "sa-update" /var/log/cron

以上

技術Postfix

おすすめの記事