ClamAV と SpamAssassin を使用して Postfix メール サーバーにウイルス対策とスパム保護を追加する方法 - パート 3
このPostfixシリーズの前の 2 つの記事では、phpMyAdmin を使用して電子メール サーバー データベースを設定および管理する方法と、受信メールと送信メールを処理するために Postfix と Dovecot を設定する方法を学びました。さらに、以前に作成した仮想アカウントに対して Thunderbird などのメール クライアントを設定する方法についても説明しました。
- MariaDB を使用した Postfix メール サーバーと Dovecot のセットアップ – パート 1
- 仮想ドメイン ユーザーで Postfix と Dovecot を構成する方法 – パート 2
- Postfix の仮想ユーザーを使用した RoundCube Webmail クライアントのインストールと構成 - パート 4
- ウイルス対策/スパム対策ゲートウェイである Sagator を使用してメール サーバーを保護する – パート 5
ウイルスやスパムに対する対策を講じずに電子メール サーバーのセットアップを完了することはできないため、今回の記事ではそのトピックについて取り上げます。
通常、*nix のような オペレーティング システムにはウイルスがないと考えられていますが、他のオペレーティング システムを使用しているクライアントも電子メール サーバーに接続する可能性があることに注意してください。
そのため、そのような脅威から可能な限り保護するために必要な措置を講じているという確信を彼らに与える必要があります。
Postfix 用の SpamAssassin の構成
spamassassin は、電子メールを受信する過程で、外部の世界とサーバー自体で実行されている電子メール サービスの間に立ちます。定義ルールと設定に従って、受信メッセージがスパムであることが判明した場合、件名を書き換えてスパムであることを明確に識別します。方法を見てみましょう。
メインの設定ファイルは /etc/mail/spamassassin/local.cf
で、次のオプションが利用可能であることを確認する必要があります (存在しない場合は追加するか、必要に応じてコメントを解除します)。
report_safe 0
required_score 8.0
rewrite_header Subject [SPAM]
- report_safe が 0 (推奨値) に設定されている場合、受信スパムは rewrite_header に従って電子メール ヘッダーを変更することによってのみ変更されます。 1 に設定すると、メッセージは削除されます。
- スパム フィルターの攻撃性を設定するには、required_score の後に整数または 10 進数を続ける必要があります。数値が小さいほど、フィルターの感度が高くなります。多数の(~100)を処理する大規模なシステムでは、required_score を 8.0 から 10.0 の間の値に設定することをお勧めします。電子メールアカウント。
これらの変更を保存したら、スパム フィルター サービスを有効にして開始し、スパム ルールを更新します。
systemctl enable spamassassin
systemctl start spamassassin
sa-update
その他の構成オプションについては、コマンド ラインで perldoc Mail::SpamAssassin::Conf
を実行してドキュメントを参照してください。
Postfix と SpamAssassin の統合
Postfix と spamassassin を効率的に統合するには、スパム フィルター デーモンを実行する専用のユーザーとグループを作成する必要があります。
useradd spamd -s /bin/false -d /var/log/spamassassin
次に、/etc/postfix/master.cf
の最後に次の行を追加します。
spamassassin unix - n n - - pipe flags=R user=spamd argv=/usr/bin/spamc -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}
そして、spamassassin がcontent_filter として機能することを (上部に) 示します。
-o content_filter=spamassassin
最後に、Postfix を再起動して変更を適用します。
systemctl restart postfix
SpamAssassin が適切に動作し、受信スパムを検出していることを確認するために、GTUBE (迷惑バルク メールの汎用テスト) として知られるテストが提供されています。
このテストを実行するには、ネットワーク外部のドメイン (Yahoo!、Hotmail、Gmail など) から電子メール サーバーにあるアカウントに電子メールを送信します。件名行を任意に設定し、メッセージ本文に次のテキストを含めます。
XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X
たとえば、Gmail アカウントからメッセージ本文に上記のテキストを送信すると、次の結果が生成されます。
そして、対応する通知をログに表示します。
journalctl | grep spam
上の画像からわかるように、この電子メール メッセージのスパム スコアは 1002.3 でした。さらに、 コマンド ラインから直接spamassassin をテストできます。
spamassassin -D < /usr/share/doc/spamassassin-3.4.0/sample-spam.txt
上記のコマンドは、以下を含む非常に詳細な出力を生成します。
これらのテストが成功しない場合は、spamassassin 統合ガイドを参照してください。
ClamAV の起動とウイルス定義の更新
まず、/etc/clamd.d/scan.conf
を編集する必要があります。次の行のコメントを解除します。
LocalSocket /var/run/clamd.scan/clamd.sock
次の行をコメントアウトするか削除します。
Example
次に、clamav スキャナー デーモンを有効にして起動します。
systemctl enable [email
systemctl start [email
antivirus_can_scan_system SELinux ブール値を 1 に設定することを忘れないでください。
setsebool -P antivirus_can_scan_system 1
この時点で、サービスのステータスを確認する価値はあります。
上の画像からわかるように、ウイルス シグネチャは7 日よりも古いものです。これらを更新するには、clamav-update パッケージの一部としてインストールされた freshclam というツールを使用します。
ウイルス定義を更新する最も簡単な方法は、必要なだけ実行する cron ジョブを使用することです (たとえば、次の例に示すように、サーバー時間の午前 1 時に 1 日に 1 回実行すれば十分であると考えられます)。
00 01 * * * root /usr/share/clamav/freshclam-sleep
ウイルス定義を手動で更新することもできますが、その前に、/etc/freshclam.conf
内の次の行を削除またはコメントアウトする必要があります。
Example
これで、以下を実行できるようになります。
freshclam
これにより、必要に応じてウイルス定義が更新されます。
電子メール内の ClamAV ウイルスのテスト
ClamAV が適切に動作していることを確認するには、テスト ウイルス (http://www.eicar.org/download/eicar.com から入手できます) を [email の Maildir にダウンロードしてみましょう (これは /home/vmail/linuxnewz.com/tecmint/Maildir にあります) を使用して、メールの添付ファイルとして受信した感染ファイルをシミュレートします。
cd /home/vmail/linuxnewz.com/tecmint/Maildir
wget http://www.eicar.org/download/eicar.com
次に、/home/vmail/linuxnewz.com ディレクトリを再帰的にスキャンします。
clamscan --infected --remove --recursive /home/vmail/linuxnewz.com
ここで、cron ジョブを介して実行されるようにこのスキャンを自由に設定してください。 /etc/cron.daily/dailyclamscan
という名前のファイルを作成し、次の行を挿入します。
#!/bin/bash
SCAN_DIR="/home/vmail/linuxnewz.com"
LOG_FILE="/var/log/clamav/dailyclamscan.log"
touch $LOG_FILE
/usr/bin/clamscan --infected --remove --recursive $SCAN_DIR >> $LOG_FILE
そして実行権限を付与します。
chmod +x /etc/cron.daily/dailyclamscan
上記の cron ジョブは、メール サーバー ディレクトリを再帰的にスキャンし、その操作のログを /var/log/clamav/dailyclamscan.log
に残します (/var/log/clamav ディレクトリが存在します)。
eicar.com ファイルを [email から [email に送信するとどうなるかを見てみましょう。
まとめ
このチュートリアルとこのシリーズの前 2 つの記事で概説した手順に従った場合、スパムとウイルス対策から保護された動作する Postfix 電子メール サーバーが完成しました。
免責事項: サーバー セキュリティは広大なテーマであり、このような短いシリーズでは十分にカバーできないことに注意してください。
そのため、このシリーズで使用されるツールとそのマニュアル ページについてよく理解しておくことを強くお勧めします。このトピックに関連する重要な概念を説明するために最善を尽くしましたが、このシリーズを読み終えた後は、運用環境で電子メール サーバーをセットアップして保守する完全な資格があるとは考えないでください。
このシリーズは、Linux でのメール サーバー管理の包括的なガイドではなく、出発点として意図されています。
おそらくこのシリーズを充実させるための他のアイデアを思いつくでしょう。その場合は、以下のコメントフォームを使用してお気軽にお知らせください。ご質問やその他のご提案も歓迎いたします。ご連絡をお待ちしております。