メール設定 · 3 min read · Oct 12, 2025
Postfix、Courier、MySQLを使用した仮想ユーザーとドメイン (CentOS 5.1) - ページ 4
12 Razor、Pyzor、DCCをインストールし、SpamAssassinを設定する
Razor、Pyzor、DCCは、共同フィルタリングネットワークを使用するスパムフィルターです。Razorをインストールするには、次のコマンドを実行します。
yum install perl-Razor-Agent razor-agentsPyzorはCentOS 5.1のリポジトリにはありませんが、代わりにRHEL 5用のPyzorパッケージをインストールできます。
rpm -ivh ftp://ftp.pbone.net/mirror/download.fedora.redhat.com/pub/fedora/epel/5/i386/pyzor-0.4.0-11.el5.noarch.rpm(上記のリンクが機能しない場合は、http://rpm.pbone.net/ で現在のバージョンを見つけることができます。)
次に、両方のサービスを初期化します。
chmod -R a+rX /usr/share/doc/pyzor-0.4.0 /usr/bin/pyzor /usr/bin/pyzord
chmod -R a+rX /usr/lib/python2.4/site-packages/pyzor
mkdir /var/spool/amavisd
chown amavis:amavis /var/spool/amavisd
su -m amavis -c 'pyzor --homedir /var/spool/amavisd discover'
su -m amavis -c 'razor-admin -home=/var/spool/amavisd -create'
su -m amavis -c 'razor-admin -home=/var/spool/amavisd -register'次に、DCCを次のようにインストールします。
cd /tmp
wget http://www.dcc-servers.net/dcc/source/dcc-dccproc.tar.Z
tar xzvf dcc-dccproc.tar.Z
cd dcc-dccproc-1.3.76
./configure --with-uid=amavis
make
make install
chown -R amavis:amavis /var/dcc
ln -s /var/dcc/libexec/dccifd /usr/local/bin/dccifd今、SpamAssassinにこれらの3つのプログラムを使用するように指示する必要があります。/etc/mail/spamassassin/local.cfを次のように編集します。
vi /etc/mail/spamassassin/local.cf| # これらの値は~/.spamassassin/user_prefs.cfを編集することで上書きできます # (詳細はspamassassin(1)を参照) # これらは安全な仮定であり、失われたメールのリスクなしに # 簡単な視覚的ふるい分けを可能にします。 #required_hits 5 #report_safe 0 #rewrite_header Subject [SPAM] # dcc use_dcc 1 dcc_path /usr/local/bin/dccproc #pyzor use_pyzor 1 pyzor_path /usr/bin/pyzor #razor use_razor2 1 razor_config /var/spool/amavisd/razor-agent.conf #bayes use_bayes 1 use_bayes_rules 1 bayes_auto_learn 1 |
次に、SpamAssassinでDCCプラグインを有効にする必要があります。/etc/mail/spamassassin/v310.preを開き、loadplugin Mail::SpamAssassin::Plugin::DCC行のコメントを外します。
vi /etc/mail/spamassassin/v310.pre| # これはSpamAssassinのインストールをカスタマイズするための正しい場所です。 # # 何が調整できるかの詳細は、'perldoc Mail::SpamAssassin::Conf'を参照してください。 # # このファイルはSpamAssassin 3.1.0のインストール中にインストールされ、 # そのリリースで追加された新しいプラグインのプラグイン読み込みコマンドが含まれています。 # 将来のSpamAssassinインストール中に上書きされることはありません。 # したがって、必要に応じて、デフォルトで無効になっているプラグインを有効にするために # 修正できます。 # # 現在、/etc/mail/spamassassinディレクトリ内のプラグインを有効にするために # 複数のファイルが読み込まれています。以前は「init.pre」だけが読み込まれていました。 # 現在は「init.pre」、「v310.pre」、および「.pre」で終わる他のファイルが読み込まれます。 # 将来のリリースが行われると、新しいプラグインが # 追加される新しいファイルに追加されます。 ########################################################################### # DCC - DCCメッセージチェックを実行します。 # # DCCはオープンソースではないため、ここでは無効になっています。 # 詳細についてはDCCライセンスを参照してください。 # loadplugin Mail::SpamAssassin::Plugin::DCC # Pyzor - Pyzorメッセージチェックを実行します。 # loadplugin Mail::SpamAssassin::Plugin::Pyzor # Razor2 - Razor2メッセージチェックを実行します。 # loadplugin Mail::SpamAssassin::Plugin::Razor2 # SpamCop - SpamCopメッセージ報告を実行します # loadplugin Mail::SpamAssassin::Plugin::SpamCop # AntiVirus - 簡単なウイルスチェック、これはClam AntiVirusのような # ウイルスフィルターの代わりにはなりません # #loadplugin Mail::SpamAssassin::Plugin::AntiVirus # AWL - 自動ホワイトリストチェックを実行します # loadplugin Mail::SpamAssassin::Plugin::AWL # AutoLearnThreshold - ベイズ自動学習のための閾値ベースの識別子 # loadplugin Mail::SpamAssassin::Plugin::AutoLearnThreshold # TextCat - 言語推測器 # #loadplugin Mail::SpamAssassin::Plugin::TextCat # AccessDB - アクセスデータベースからの送信元アドレスのルックアップ # #loadplugin Mail::SpamAssassin::Plugin::AccessDB # WhitelistSubject - 特定の件名の正規表現をホワイトリスト/ブラックリスト # loadplugin Mail::SpamAssassin::Plugin::WhiteListSubject ########################################################################### # 実験的プラグイン # DomainKeys - DomainKeys検証を実行します。 # # 使用するために外部モジュールが必要です。詳細についてはINSTALLを参照してください。 # DKIMプラグインを使用する予定がある場合は、これは冗長かもしれません。 # #loadplugin Mail::SpamAssassin::Plugin::DomainKeys # MIMEHeader - メッセージ内のMIMEヘッダーに対して正規表現ルールを適用します # loadplugin Mail::SpamAssassin::Plugin::MIMEHeader # ReplaceTags # loadplugin Mail::SpamAssassin::Plugin::ReplaceTags |
SpamAssassinの設定を確認するには、次のコマンドを実行します。
spamassassin --lintエラーが表示されないはずです。
その後、次のコマンドを実行します。
/etc/init.d/amavisd restart次に、インターネットで見つけたカスタムルールセットをSpamAssassinに挿入したいと思います。これらのルールセットをテストしたところ、スパムフィルタリングが非常に効果的になりました。ファイル/usr/local/sbin/sa_rules_update.shを作成します。
vi /usr/local/sbin/sa_rules_update.sh| #!/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/71_sare_redirect_pre3.0.0.cf -O 71_sare_redirect_pre3.0.0.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_bayes_poison_nxm.cf -O 70_sare_bayes_poison_nxm.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_html.cf -O 70_sare_html.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_html4.cf -O 70_sare_html4.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_html_x30.cf -O 70_sare_html_x30.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_header0.cf -O 70_sare_header0.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_header3.cf -O 70_sare_header3.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_header_x30.cf -O 70_sare_header_x30.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_specific.cf -O 70_sare_specific.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_adult.cf -O 70_sare_adult.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/72_sare_bml_post25x.cf -O 72_sare_bml_post25x.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/99_sare_fraud_post25x.cf -O 99_sare_fraud_post25x.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_spoof.cf -O 70_sare_spoof.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_random.cf -O 70_sare_random.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_oem.cf -O 70_sare_oem.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_genlsubj0.cf -O 70_sare_genlsubj0.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_genlsubj3.cf -O 70_sare_genlsubj3.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_genlsubj_x30.cf -O 70_sare_genlsubj_x30.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_unsub.cf -O 70_sare_unsub.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_uri.cf -O 70_sare_uri.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.timj.co.uk/linux/bogus-virus-warnings.cf -O bogus-virus-warnings.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.yackley.org/sa-rules/evilnumbers.cf -O evilnumbers.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.stearns.org/sa-blacklist/random.current.cf -O random.current.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/88_FVGT_body.cf -O 88_FVGT_body.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/88_FVGT_rawbody.cf -O 88_FVGT_rawbody.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/88_FVGT_subject.cf -O 88_FVGT_subject.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/88_FVGT_headers.cf -O 88_FVGT_headers.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/88_FVGT_uri.cf -O 88_FVGT_uri.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/99_FVGT_DomainDigits.cf -O 99_FVGT_DomainDigits.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/99_FVGT_Tripwire.cf -O 99_FVGT_Tripwire.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/99_FVGT_meta.cf -O 99_FVGT_meta.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.nospamtoday.com/download/mime_validate.cf -O mime_validate.cf &> /dev/null /etc/init.d/amavisd restart &> /dev/null exit 0 |
スクリプトを実行可能にします。
chmod 755 /usr/local/sbin/sa_rules_update.sh次に、そのスクリプトを一度実行します。これにより、ルールセットが取得され、SpamAssassinに挿入されます。
/usr/local/sbin/sa_rules_update.shこれらのルールセットが定期的に更新されるようにcronジョブを作成します。次のコマンドを実行します。
crontab -ecronジョブエディタを開き、次のcronジョブを作成します。
| 23 4 */2 * * /usr/local/sbin/sa_rules_update.sh &> /dev/null |
これにより、2日ごとに午前4時23分にルールセットが更新されます。
13 クォータ超過通知
すべてのメールアカウントがクォータを超えていることについて通知を受け取りたい場合は、次のようにします。
cd /usr/local/sbin/
wget http://puuhis.net/vhcs/quota.txt
mv quota.txt quota_notify
chmod 755 quota_notify/usr/local/sbin/quota_notifyを開き、上部の変数を編集します。ファイルの下部(最後の方)には、%記号を追加する必要がある2行があります。
vi /usr/local/sbin/quota_notify| [...] my $POSTFIX_CF = "/etc/postfix/main.cf"; my $MAILPROG = "/usr/sbin/sendmail -t"; my $WARNPERCENT = 80; my @POSTMASTERS = ('[email protected]'); my $CONAME = 'My Company'; my $COADDR = '[email protected]'; my $SUADDR = '[email protected]'; my $MAIL_REPORT = 1; my $MAIL_WARNING = 1; [...] print "Subject: WARNING: Your mailbox is $lusers{ $luser}% full.\n"; [...] print "Your mailbox: $luser is $lusers{ $luser}% full.\n\n"; [...] |
次のコマンドを実行して、スクリプトのcronジョブを作成します。
crontab -e| 0 0 * * * /usr/local/sbin/quota_notify &> /dev/null |
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。