設定 · 3 min read · Nov 14, 2025

Postfix スパムフィルターの設定 - ページ 4

3 Pyzor、Razor、DCC、SpamAssassin および MailScanner の設定

3.1 Pyzor の設定

まず、pyzor の権限を変更する必要があります:

chmod -R a+rX /usr/share/doc/pyzor /usr/bin/pyzor /usr/bin/pyzord

次のコマンドは、異なるバージョンの python を使用している場合は変更する必要があります。pyzor を探してみてください。

chmod -R a+rX /usr/lib/site-python/pyzor

ここでは、Pyzor サーバーの IP アドレスを Pyzor に提供します。これにより、ユーザーのホームディレクトリに .pyzor ディレクトリが作成され、その中にサーバーの IP アドレスが servers ファイルに配置されます。その後、接続をテストします。ファイアウォールの背後にいる場合は、サーバーへのポート 24441/udp を開いてください。その際、DCC 用に 6277/udp、Razor 用に 2703/tcp、SpamAssassin 用に 783/tcp も開いてください:

pyzor ping

通常、pyzor ping からタイムアウトが返されるので、心配しないでください。後で再度テストします。

将来的にサーバーの IP アドレスが変更された場合は、このセクションを再度実行する必要があります。現在の Pyzor サーバーのアドレスはここで見つけることができます http://pyzor.sourceforge.net/cgi-bin/inform-servers-0-3-x。

Pyzor が機能している場合は、「Pyzor: got response:」と表示されます。Pyzor は、コンピュータが DNS サーバーにクエリを送信するのとほぼ同じ方法で Pyzor サーバーにクエリを送信します。唯一の実際的な違いは、使用されるポート番号です。Pyzor が機能していない場合は、ファイアウォールでポートを開く必要があるか、Pyzor サーバーがビジー状態です。

3.2 Razor の設定

ルートホームディレクトリに default.razor 設定を作成します:

cd  
rm /etc/razor/razor-agent.conf  
razor-admin -create  
razor-admin -create

Razor v2 では、レポーターが登録される必要があります。そうすることで、彼らの評判が時間とともに計算され、取り消しメカニズムに参加できるようになります。登録は razor-admin -register で行います。razor-admin -register を root として呼び出すと、ノミネーションサーバーとの登録が交渉され、/root/.razor/identity-username にアイデンティティ情報が書き込まれます。以下のいずれかの方法で手動で呼び出します:

  1. ユーザー foo とパスワード s1kret (foo と s1kret は例です) を登録する:
razor-admin -register -user=foo -pass=s1kr3t
  1. メールアドレスで登録し、パスワードを割り当てる:
razor-admin -register [email protected]
  1. 両方 (ランダムな) ユーザー名とパスワードを割り当てる:
razor-admin -register

私は通常、3 番を実行します。/root/.razor/razor-agent.conf に次の変更を加えます:

vi /root/.razor/razor-agent.conf

debuglevel = 3 を debuglevel = 0 (はい、ゼロです。「o」ではありません) に変更します。これにより、Razor がデバッグ情報でドライブを埋めるのを防ぎます。また、これらの設定を Postfix ユーザーが読み取れる場所に移動するため、ファイルの最後に razorhome 行を追加します。完了すると、これらの 2 行は次のようになります:

debuglevel             = 0
razorhome             = /var/lib/MailScanner/.razor/

後で Razor をテストします。man razor-agent.conf または http://razor.sourceforge.net/docs/razor-agent.conf.php にアクセスして Razor に関する詳細情報を確認してください。

3.3 DCC のセットアップと設定

DCC をインストールします:

apt-get install dcc-client

DCC サーバーを実行していないため、自分自身をチェックする時間を無駄にする必要はありません: 大規模な組織 (1 日あたり 100,000 メッセージ) の場合は、自分のサーバーを実行することを検討してください。

インストールが完了したら、次を実行します:

cdcc "delete 127.0.0.1"  
cdcc "delete 127.0.0.1 Greylist"

インストールをテストします:

cdcc info

サーバーから ‘requests ok’ を受け取るはずです。

4 MailScanner、ClamAV および SpamAssassin の設定

4.1 MailScanner と ClamAV

Postfix を停止します:

postfix stop

パッケージをインストールします:

apt-get install mailscanner clamav

ClamAV ウイルス定義を更新します:

freshclam

MailScanner から始めましょう。リポジトリからインストールされた MailScanner は非常に古いバージョンなので、これを削除してソースから MailScanner パッケージをインストールします。

http://www.mailscanner.info/downloads.html から tarball をダウンロードします… この執筆時点ではバージョン 4.56.8-1 で、tarball リンクは http://www.mailscanner.info/files/4/tar/MailScanner-install-4.56.8-1.tar.gz です。その後、install.sh スクリプトを使用して MailScanner をインストールします。

cd  
apt-get remove mailscanner  
wget http://www.mailscanner.info/files/4/tar/MailScanner-install-4.56.8-1.tar.gz  
tar zxvf MailScanner-install-4.56.8-1.tar.gz  
cd MailScanner-install-4.56.8  
./install.sh

今は cron に追加する必要がある cron 行に関するメッセージを無視してください。

それが完了したら、SpamAssassin 用のディレクトリをスプールに作成し、Postfix にその権限を与える必要があります。root として sa-learn –force を実行すると、これらのディレクトリに保存されている bayes データベースが root:root に変更され、spamassassin が db を参照する際にエラーが発生します。mail.log に注意を払い、権限を元に戻すことを忘れないでください。また、MailScanner のデフォルト設定を無効にします:

mkdir /var/spool/MailScanner/spamassassin  
mv /etc/MailScanner /etc/MailScanner.dist

MailScanner.conf ファイルのバックアップ:

cp /opt/MailScanner/etc/MailScanner.conf /opt/MailScanner/etc/MailScanner.conf.back

MailScanner.conf を編集:

vi /opt/MailScanner/etc/MailScanner.conf

MailScanner.conf で次のパラメータを変更します:

%org-name% = YOURDOMAIN-COM
%org-long-name% = Your Company Long Name INC
%web-site% = www.yourdomain.com
Run As User = postfix
Run As Group = postfix
Incoming Queue Dir = /var/spool/postfix/hold
Outgoing Queue Dir = /var/spool/postfix/incoming
MTA = postfix
Virus Scanners = clamav
Spam Subject Text = [SPAM]
Send Notices = no
Spam List = ORDB-RBL SBL+XBL
Required SpamAssassin Score = 6
High SpamAssassin Score = 10
Spam Actions = deliver striphtml
High Scoring Spam Actions = delete
Rebuild Bayes Every = 86400
Wait During Bayes Rebuild = yes
SpamAssassin User State Dir = /var/spool/MailScanner/spamassassin

最初の 9 行はすべてが機能するために基本的に必要で、残りは推奨されます。MailScanner.conf はよく文書化されているので、変更した他のオプションについて質問がある場合は、そこにあるノートをお読みください。このファイルを上から下まで見てみてください。

また、MailScanner.conf ファイルの「危険または潜在的に攻撃的なコンテンツの削除/ログ記録」セクションも確認してください。クライアントが ‘{Disarmed}’ メッセージについて不満を言っていたため、ほとんどを無効にする必要がありました。

4.2 SpamAssassin

まず、デフォルトの SpamAssassin 設定ファイルを無効にする必要があります:

mv /etc/spamassassin/local.cf /etc/spamassassin/local.cf.disabled

次に、MailScanner の SpamAssassin 設定ファイルをバックアップしてから編集します:

cp /opt/MailScanner/etc/spam.assassin.prefs.conf /opt/MailScanner/etc/spam.assassin.prefs.conf.back
vi /opt/MailScanner/etc/spam.assassin.prefs.conf

spam.assassin.prefs.conf の先頭に次の 2 行を追加します:

pyzor_options --homedir /var/lib/MailScanner/
razor_config /var/lib/MailScanner/.razor/razor-agent.conf

SpamAssassin が Bayes データベースを探す場所を変更し、デフォルトの bayes_path をコメントアウトするか、適宜変更します:

#bayes_path /var/lib/MailScanner/bayes
bayes_path /var/spool/MailScanner/spamassassin/bayes

これらの行を探して、適宜変更します:

bayes_ignore_header X-YOURDOMAIN-COM-MailScanner
bayes_ignore_header X-YOURDOMAIN-COM-MailScanner-SpamCheck
bayes_ignore_header X-YOURDOMAIN-COM-MailScanner-SpamScore
bayes_ignore_header X-YOURDOMAIN-COM-MailScanner-Information

“YOURDOMAIN-COM” は、MailScanner.conf ファイルの “%org-name%” に使用したものに置き換えてください。「X-」はそのままにしておいてください。

“bayes_auto_expire 0” がコメントアウトされていないことを確認してください:

bayes_auto_expire 0

Razor と DCC を有効にするために SpamAssassin v310.pre を編集します

vi /etc/spamassassin/v310.pre

次の行のコメントを外します:

loadplugin Mail::SpamAssassin::Plugin::DCC
loadplugin Mail::SpamAssassin::Plugin::Razor2

5 すべてをまとめる

Pyzor と Razor の設定を Postfix ユーザーが読み取れる場所にコピーします:

cp -R /root/.pyzor /var/lib/MailScanner  
cp -R /root/.razor /var/lib/MailScanner

すべてがそこにあるので、正しい権限を設定します:

chown -R postfix.postfix /var/spool/MailScanner/  
chown -R postfix.postfix /var/lib/MailScanner/

SpamAssassin が正常に動作しているか確認します:

su postfix -p -c 'spamassassin -x -D -C /opt/MailScanner/etc/spam.assassin.prefs.conf --lint'

DCC、Pyzor、Razor の読み込みプラグインとエラーが表示されないことを確認してください。

注意: sa-learn を実行する場合は、次のように実行することを忘れないでください。su postfix -p -c ‘sa-learn –sync –force-expire -C /opt/MailScanner/etc/spam.assassin.prefs.conf’ そうしないと、SpamAssassin が bayes データベースを再構築する際にそれを読み取れなくなります。

すべてが順調に見える場合は、続行してください。そうでない場合は、トラブルシューティングを行ってから続行してください。

この部分を終了するために、Mailscanner をクリーンアップ/更新/実行する cron ジョブを追加する必要があります。MailScanner インストールスクリプトが終了した後にこのメッセージを見たかもしれません。今これを行う理由は、SpamAssassin の設定を完了するまで MailScanner を開始したくないからです。

crontab -e

次の行を追加します:

37      5 * * * /opt/MailScanner/bin/update_phishing_sites
58     23 * * * /opt/MailScanner/bin/clean.quarantine
42      * * * * /opt/MailScanner/bin/update_virus_scanners
3,23,43 * * * * /opt/MailScanner/bin/check_mailscanner

MailScanner が再起動時に開始されるように rc.local に行を追加する必要があります:

vi /etc/rc.local

「Exit 0」行の前に次を追加します:

/opt/MailScanner/bin/check_mailscanner

「check_mailscanner」ファイルを bin ディレクトリにリンクしておきましょう。これにより、MailScanner を再起動する必要があるときにいつでも実行できます:

cd /usr/bin  
ln -s /opt/MailScanner/bin/check_mailscanner check_mailscanner

クリーンなログを確認するために、再起動します:

rm /var/log/mail.log  
reboot

再起動時に MailScanner の起動時に Perl Sys/Hostname/Long.pm に関するエラーが表示された場合は、次のようにインストールする必要があります:

perl -MCPAN -e shell

今すぐ設定するように求められた場合は、知っている場合を除いて「いいえ」と答えてください。次のコマンドを実行してモジュールをインストールします:

install Sys::Hostname::Long

それが完了したら、「quit」と入力してコンソールに戻ります。再起動するか、「check_mailscanner」スクリプトで MailScanner を起動します。

この時点で、完全に機能するスパムフィルターがあるはずです。tail -f /var/log/mail.log を確認してください。エラーはほとんどないはずです。

この README は今後の使用に役立つはずです。スパムフィルターにコピーして、すぐに参照できるようにしてください。

POSTFIX, UBUNTU, MAILSCANNER README
************************************************
ADD DOMAIN
**********************************************
- '/etc/postfix/relay_recipients'、'relay_domains'、'transport' を編集します。
- 'postmap /etc/postfix/relay_recipients' を実行します。編集後は 'relay_domains' と 'transport' も同様です。
- 'postfix reload' で Postfix が新しい db ファイルを読み取ります。
- ドメインにユーザーを追加するには、'relay_recipients' を編集し、'postmap' します。
**********************************************
CONTROLLING BLIST WLIST
**********************************************
- /etc/postfix/sender_access を編集します。
- 'postmap /etc/postfix/sender_access' を実行します。
- 'postfix reload' を実行します。
**********************************************
OTHER CONFIG FILES
**********************************************
- MailScanner 設定を編集するには、'/opt/MailScanner/etc/MailScanner.conf' を編集します。
- SpamAssassin 設定を編集するには、'/opt/MailScanner/etc/spam.assassin.prefs.conf' を編集します。
- ClamAV 設定を編集するには、'/etc/clamav/clamd.conf' を編集します。
**********************************************
MISC
************************************************
- jailroot でファイルが一致しないという Postfix エラーが表示された場合は 'LINUX2' を実行します。
- Postfix が jailroot と同期しているか確認するには 'postfix check' を実行します。
- そのファイルに変更があった場合は、/etc/postfix/aliases データベースを更新するために newaliases を実行します。
- キューを確認するには 'mailq' と 'qshape' を実行します。
- MailScanner を再起動するには 'check_mailscanner' を実行します。
Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。