GNU/Linux >> Linux の 問題 >  >> Debian

Ubuntu/DebianサーバーにPostfixとDovecotを使用してSpamassassinをインストールする方法

SpamAssassinを使用したスパム無料メール

PostfixとDovecotを使用してサーバー上で独自のメールボックスを実行している場合は、スパム対策ソフトウェアをインストールして、メールボックスが着信スパムメールで爆撃されるのを防ぐ必要があります。

そしてこのSpamAssassinは、そこにある最高のソリューションの1つです。非常に効果的で、最も人気のあるものの1つです。

この投稿では、スパム保護のためにpostfixとdovecotを使用してspamassassinを設定する方法を説明します。

受信メールを処理するために、サーバーにPostfixとDovecotがすでに設定されていることを前提としています。

また、ユーザーアカウントにメールを配信するためにDovecotLMTPを使用していること。このプロセスは、以前の投稿で概説されていました-

Ubuntu/DebianでPostfixとDovecotを使用してメールサーバーをセットアップする

Spamassassinは受信メールをスキャンしてスパムを識別し、メールがスパムメールである可能性があることが判明した場合、Spamassassinはそのメールにヘッダーを追加してスパムとしてマークします。

スパムチェックはPostfixレベルで行われます。 Postfixは、content_filterとしてSpamassassinと通信するように構成されています。

次のステップでは、Dovecotがこれらのヘッダーを分析してスパムメッセージを識別し、Gmailと同じように別のスパムフォルダに配置します。

1。 Spamassassinをインストールする

まず、spamassassinパッケージをインストールします。

 $ apt-get install spamassassin spamc 

2。スパムサービス用のユーザーアカウントとグループを設定する

#groupadd spamd#useradd -g spamd -s / bin / false -d / var / log / spamassassin spamd#mkdir / var / log / spamassassin#chown spamd:spamd / var / log / spamassassin 

3。 Spamassassinを構成する

/ etc / default / spamassassinを編集して、次のオプションが設定されるようにします。

#1に変更して、spamdENABLED =1SAHOME ="/ var / log / spamassassin /"#オプションを有効にします。#可能なオプションについては、manspamdを参照してください。 -dオプションは自動的に追加されます。#SpamAssassinはプリフォークモデルを使用するため、注意してください。 #何をしているのかわからない限り、-max-childrenが5より高い値に設定されていないことを確認する必要があります。OPTIONS="-create-prefs --max-children 5 --helper-home- dir --username spamd \ -H $ {SAHOME} -s $ {SAHOME} spamd.log "

また、下部にあるCRONというオプションを見つけて、1に変更します。これにより、spamassassinルールがリリースされたときに自動更新できるようになります。

#Cronjob#0以外に設定すると、cronジョブが毎晩#spamassassinのルールを自動的に更新できるようになりますCRON =1 

4。 Spamassassinデーモン(spamd)を起動します

#service spamassassin startStarting SpamAssassin Mail Filter Daemon:[email protected]:/etc/default#[email protected]:/ etc / default#service spamassassin status * spamd is [email protected]:/ etc / default#

Spamassassinはバックグラウンドサービスを開始するため、netstatコマンドを使用して、spamassassinが正常に実行されているかどうかを確認します。

#netstat -nlp4 | grep spamtcp 0 0 127.0.0.1:783 0.0.0.0:* LISTEN 1123 / spamd.pid 

4。 Spamassassinをフィルターとして使用するようにPostfixを設定する

すべての受信メールをフィルタリングするためにspamassassinサービスを使用するようにPostfixを設定する必要があります
postfix設定ファイルmaster.cfを編集してspamassassinフィルタを追加する必要があります。ファイルを開きます。

#cat /etc/postfix/master.cf 

ファイルの最後に以下を追加します

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

上記の行をmaster.cfに追加した後、次のタスクはpostfixを再起動し、正常に動作することを確認することです。

 $ service postfix restart 

5。スパムメッセージをマークするようにSpamassassinを設定する

Spamassassinを使用するようにPostfixを設定した後、スパムチェックに従って電子メールを変更するようにSpamassassinを設定します。構成ファイルは-/etc/spamassassin/local.cf

 $ nano /etc/spamassassin/local.cf 

rewrite_header行のコメントを解除して、スパムとして識別された電子メールの件名行を変更します。

#スパムメールの件名ヘッダーに*****SPAM*****を追加##rewrite_header件名*****SPAM*****rewrite_header件名[*****SPAM_SCORE_ *****] 

上記の行は、メッセージがスパムのように見えることを示すために、アスタリスクマーク付きのスパムスコアを追加します。スコアが高いほど、メッセージがスパムである可能性が高いことを示します。

スパムスコア

メッセージをスパムとしてマークするために必要な最小スコア。デフォルトは5.0ですが、現在はより厳密なスコアレベルが必要になる場合があります。したがって、4.0は適切に機能します。

#メッセージがスパムと見なされるしきい値を設定します(デフォルト:5.0)#required_score 4.0 

ファイル内の他のオプションを確認し、必要に応じて編集します。

Spamassassinを再起動 -ファイル内のすべてのパラメーターを構成した後、ファイルを保存してspamassassinを再起動します。

#service spamassassin restart SpamAssassinメールフィルターデーモンの再起動:spamd。

6。 Spamassassinログを確認する

何かをデバッグしたり、spamassassinのバックグラウンドで何が起こっているかを確認したりする必要がある場合は、そのルックファイルを自由に確認してください。

#tail -f /var/log/spamassassin/spamd.logFri2016年2月5日20:11:43[1123]情報:prefork:子の状態:IIFri2016年2月5日20:23:02[1123]情報:spamd :サーバーがSIGTERMによって強制終了され、シャットダウンされました金2月5日20:23:02 2016 [1404]情報:ロガー:stderrメソッドを削除します金2月5日20:23:03 2016 [1406]情報:ズーム:360/360を使用できますコンパイルされたルール(100%)2016年2月5日金曜日20:23:03 [1406]情報:スパム:サーバーはIO ::Socket ::INET6 [127.0.0.1]:783、IO ::Socket ::INET6[::で起動しました1]:783(バージョン3.4.0を実行)Fri Feb 5 20:23:03 2016 [1406] info:spamd:server pid:1406Fri Feb 5 20:23:03 2016 [1406] info:spamd:サーバーが正常に子を生成しましたプロセス、pid 1407Fri Feb 5 20:23:03 2016 [1406]情報:スパム:サーバーが正常に子プロセスを生成しました、pid 1408Fri Feb 5 20:23:03 2016 [1406]情報:prefork:子の状態:ISFri Feb 5 20: 2016年3月23日[1406]情報:プリフォーク:子の状態:II 

7。スパムメールをテストする

アウトサイトからメールシステムにメールを送信します。メールの本文に次のテキストを含めます

 XJS * C4JDBQADN1.NSBN3 * 2IDNEN * GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL * C.34X 

その呼ばれるGTUBE-迷惑メールの一般的なテスト。メールサーバーがspamassassinを使用してメールをフィルタリングしているかどうかをテストする簡単な方法です。

詳細については、こちらをご覧ください-
http://spamassassin.apache.org/gtube/

SpamAssassinは、スパムスコアが0を超えるすべてのメールにヘッダーを追加します

スパムスコアが12.9のメールこれは、最小スコア3の構成によるとスパムと見なされます

 X-Spam-Checker-Version:SpamAssassin 3.4.0(2014-02-07)on localhostX-Spam-Flag:YESX-Spam-Level:************ X-Spam -ステータス:はい、スコア=12.9必須=3.0テスト=FROM_LOCAL_NOVOWEL、HTML_FONT_LOW_CONTRAST、HTML_FONT_SIZE_LARGE、HTML_MESSAGE、HTML_OBFUSCATE_05_10、MIME_HTML_ONLY、MISSING_MID、DNS / pre> 

スパムスコア1.7、スパムとは見なされません

 X-Spam-Checker-Version:SpamAssassin 3.4.0(2014-02-07)on localhostX-Spam-Level:* X-Spam-Status:No、score =1.7 required =3.0 tests =DEAR_SOMETHING、FREEMAIL_FROM、 HTML_MESSAGE、RCVD_IN_MSPIKE_H2、URIBL_BLOCKED autolearn =no autolearn_force =no version =3.4.0 

これらのヘッダーは、DovecotLMTPトランスポートを介して別のスパムフォルダに電子メールを送信するために使用されます。

別のスパムフォルダを使用してDovecotを設定する

Dovecotは、メールの読み取りおよび管理システム、POP3およびIMAPサーバーです。基準に応じてメールを別々のフォルダに整理するのはDovecotです。

Dovecotは、メールヘッダーを読み取り、スパムメールをスパムと呼ばれる別のフォルダーに移動するように構成できます。 GmailやOutlookなどの無料のメールサービスで見られるように。

Sieveプラグインのインストールと構成

Dovecotは、Sieveを使用してメールを読み取るためにSieveインタープリタープラグインを必要とします。 Sieveパッケージをインストールする

#apt-get install dovecot-sieve dovecot-managesieved 

編集
/etc/dovecot/conf.d/20-lmtp.conf

ふるいプラグインを有効にするようにdovecotを構成します

 protocol lmtp {#ロードするプラグインのスペース区切りリスト(デフォルトはグローバルmail_plugins)。 mail_plugins =$ mail_plugins sieve} 

最後に、dovecotを再起動します

#service dovecot restart 

次に、sieveサーバーがポート4190で実行されているかどうかを確認します。netstatコマンドを使用します。サービスの名前はdovecotになります。

#netstat -nltp | grep 4190tcp 0 0 0.0.0.0:4190 0.0.0.0:* LISTEN 9843 / dovecottcp6 0 0 :::4190 :::* LISTEN 9843 / dovecot 

ふるいフィルタリングの設定

ふるいフィルターの詳細については、次のページをご覧ください-http://wiki2.dovecot.org/Pigeonhole/Sieve/Examples

#mkdir / var / lib / dovecot / sieve / 

default.sieveというファイルを作成し、次のルールセットを入力します

 require ["fileinto"、 "mailbox"]; if header:contains "X-Spam-Flag" "YES" {fileinto:create "Spam";} 

次に、sievecコマンドを使用して.sieveスクリプトファイルをコンパイルします。

#sievec default.sieve 

ディレクトリに複数の.sieveファイルがある場合は、次のようにすべてを一度にコンパイルできます-

#sievec sieve / 

次に、sieveファイルの所有権をdovecot固有のユーザーに変更して、dovecotがそれらを読み取れるようにします。この場合、ユーザー名はvmailです。

 / var / lib / dovecot#chown -R vmail:vmail sieve / * 

Dovecotを再起動します。

#service dovecot restart 

dovecotログを確認する

Dovecotログファイルは、途中で発生する可能性のある問題を診断するのに役立ちます。

次のコマンドを使用して、dovecotログファイルの場所を検索します

#doveadm log findDebug:/var/log/dovecot.logInfo:/var/log/dovecot.logWarning:/var/log/dovecot.logError:/var/log/dovecot.logFatal:/ var / log / dovecot .log 

次に、tailコマンドを使用してファイルを開きます

#tail -f /var/log/dovecot.log 
 Feb 06 11:17:16 imap-login:Info:Login:user =、method =PLAIN、rip =122.163.23.27、lip =173.255.230.5、mpid =10370、TLS、 session = Feb 06 11:17:37 lmtp(10379):情報:localFeb06から接続11:17:37lmtp(10379、[email protected]):エラー:uMMvHPmItVaLKAAA0J78UA:sieve:メインスクリプト:失敗しましたstat sieveスクリプト:stat(/var/lib/dovecot/sieve/default.sieve)が失敗しました:アクセスが拒否されました(euid =5000(vmail)egid =5000(vmail)がありません+ x perm:/ var / lib / dovecot、dirが所有していますby 0:0 mode =0750)Feb 06 11:17:37 lmtp(10379、[email protected]):エラー:uMMvHPmItVaLKAAA0J78UA:sieve:デフォルトのユーザースクリプト/var/lib/dovecot/sieve/default.sieveFebにアクセスできませんでした06 11:17:37 lmtp(10379、[email protected]):情報:uMMvHPmItVaLKAAA0J78UA:msgid =:メールをINBOXに保存Feb 06 11:17:37 lmtp(10379):情報:切断ローカル:成功したquitFeb 06 11:18:31 lmtp(10379):情報:localFeb06から接続11:18:31lmtp(10379、example @ unix linux.online):エラー:vMMvHPmItVaLKAAA0J78UA:sieve:msgid =:メールボックスに保存できませんでした'スパム':メールボックスが存在しません:SpamFeb 06 11:18:31 lmtp(10379、example @ unixlinux .online):情報:vMMvHPmItVaLKAAA0J78UA:sieve:msgid =:メールボックスに保存されたメール'INBOX' Feb 06 11:18:31 lmtp(10379、[email protected]):エラー:vMMvHPmItVaLKAAA0J78UA:sieve :スクリプト/var/lib/dovecot/sieve/default.sieve; name =mainスクリプトの実行に失敗しましたが、暗黙の保持は成功しましたFeb 06 11:18:31 lmtp(10379):情報:ローカルから切断:成功したquitFeb 06 11: 26:27 lmtp(10479):情報:localFeb06から接続11:26:27lmtp(10479、example @ unixlinux.online):情報:3h4eBwuLtVbvKAAA0J78UA:sieve:msgid =:メールボックスに保存されたメール'スパム'Feb06 11:26:27 lmtp(10479):情報:ローカルから切断:成功したquitFeb 06 11:26:57 imap-login:情報:ログイン:user =、method =PLAIN 、rip =122.163.23.27、lip =173.255.230 .5、mpid =10483、TLS、session = Feb 06 11:26:58 imap-login:情報:ログイン:user =、method =PLAIN、rip =122.163.23.27、lip =173.255.230.5、mpid =10484、TLS、session = Feb 06 11:28:30 imap-login:情報:ログイン:user =、method =PLAIN、rip =122.163 .23.27、lip =173.255.230.5、mpid =10499、TLS、session = 

dovecotディレクトリの権限を変更する

 / var / lib / dovecot#chmod a+x。

Pyzorを使用したSpamassassinスパムフィルタリングの強化

Pyzorは他のルールと同じように機能します。
https://wiki.apache.org/spamassassin/Rules/PYZOR_CHECK

http://spamassassin.apache.org/tests_3_3_x.html

にあるテスト表によると、約1.985のスパムスコアが追加されます。
#sudo apt-get install pyzor 

Pyzorサーバーを発見する

#pyzor --homedir / etc / mail / spamassassin / pyzor Discover 

サーバーファイルをすべての人が読み取れるようにする

 / etc / spamassassin / pyzor#chmod a+rサーバー

チェックを実行する -

#echo "test" | spamassassin -D pyzor 2>&1 |少ない

このような出力が表示されるはずです

 Feb 9 16:24:58.824 [23979] dbg:pyzor:ネットワークテストを実行し、PyzorFeb 9を試行16:24:59.787 [23979] dbg:pyzor:pyzorが使用可能:/ usr / bin / pyzorFeb 9 16:24 :59.788 [23979] dbg:pyzor:パイプを開く:/ usr / bin / pyzor check  

/etc/spamassassin/local.cfの最後に次の行を追加します

 pyzor_options --homedir / etc / mail / spamassassin / pyzor 

そして、spamassassinデーモンを再起動します

#service spamassassin restart 

Razorのインストール

 sudo apt-get install razor 
 / etc / spamassassin#mkdir razor 

次に、次のコマンドを実行して、かみそりの分散ネットワークに登録します。

#razor-admin -home =/ etc / spamassassin /razor-registerRegisterが成功しました。 / etc / mail / spamassassin / razor/identity-rudkVFCIxs#razor-admin-home=/etc/spamassassin/razor-create#razor-admin-home=/etc/spamassassin/razor-discoverに保存されているID

/etc/spamassassin/local.cfファイルの最後に次の行を追加します

 razor_config /etc/spamassassin/razor/razor-agent.conf 

最後にspamassassinを再起動します

このコマンドで動作するかみそりを確認してください

#echo "test" | spamassassin -D razor2 2>&1 |少ない

このようなものが表示されるはずです

 Feb 9 17:11:34.701 [26028] dbg:razor2:razor2が利用可能、バージョン2.84 Razor-Log:read_file:/etc/mail/spamassassin/razor/razor-agent.confから読み取られた15個のアイテム
>

より高いスコアのカスタムスコア

これは、spamassassinの精度を高めて、スパムをより適切にキャッチするための少し高度な方法です。これには、spamassassin内の特定のスパムテストのスコアレベルを上げることが含まれます。これらは、スパムの検出において非常に高いレベルの精度を持つことが知られているスパムテストです。

したがって、これらの高精度テストの一部でメールがスパムであることが示された場合は、さらに焦点を当てる必要があります。

http://toao.net/566-improving-spamassassin-accuracy-with-statistics

結論

これは、メールサーバーにSpamAssassinを設定して、スパムメールを検出し、メールボックスをクリーンに保つプロセスでした。
このプロセスは少し時間がかかりますが、スパム対策システムを備えた独自のメールサーバーが必要な場合に役立ちます。

フィードバックや質問がある場合は、下のコメントでお知らせください。

参考資料とリソース

UbuntuBreezyでのPostfixとDovecotを使用したシンプルなSpamassassinのセットアップ
http://www.townx.org/index.php?q=blog/elliot/simple_spamassassin_setup_with_postfix_and_dovecot_on_ubuntu_breezy

Ubuntu12.04にSpamassassinをインストールしてセットアップする方法
https://www.digitalocean.com/community/tutorials/how-to-install-and-setup-spamassassin-on-ubuntu-12-04

Spamassassinを使用してPyzorとRazorをインストールする手順
https://kura.io/2011/09/22/spamassassin-razor-pyzor/

Dovecotを使用したSieveフィルタリングの設定
https://easyengine.io/tutorials/mail/server/sieve-filtering/

Spamassassinのヒント:Ultimate Setup Guide
http://www.spamtips.org/p/ultimate-setup-guide.html

SpamAssassinの精度を向上させる方法
https://wiki.apache.org/spamassassin/ImproveAccuracy

SpamAssassinのしきい値を下げることの影響について
http://taint.org/2008/02/29/155648a.html

cPanel(またはその他の)メールサーバーでのSpamAssassinの精度の向上-統計を使用
http://toao.net/566-improving-spamassassin-accuracy-with-statistics

この投稿では、一部のspamassassinテストのスコアレベルを変更してスパムフィルタリングを改善するために使用できる簡単なハックの概要を説明します。

SpamAssassinを使用するための高度なヒント
https://www.andrewferrier.com/oldpages/spamassassin_tips.html


Debian
  1. Ubuntu/DebianにGerberaMediaServerをインストールしてセットアップする方法

  2. OpenSSHを使用してUbuntu/DebianにSSHサーバーをインストールする方法

  3. CentOS6VPSにSpamAssassinをインストールしてPostfixと統合する方法

  1. vsftpd FTPサーバーをインストールし、Debian11でTLSを使用して保護する方法

  2. Ubuntu 18.04 /Ubuntu16.04およびDebian9にPuppet6.xをインストールする方法

  3. UbuntuまたはDebianにPostfixメールサーバーとDovecotをインストールします

  1. Debian9にVNCをインストールして設定する方法

  2. Ubuntu 18.04 /Debian9にNginxをインストールして構成する方法

  3. Ubuntu18.04とDebianにEasyEngineでWordPressをインストールする方法