OS全体よりもメールサーバだけに特化したウィルスソフトをインストールしようと思い、有償ソフトもあるのですが、無償のclamavを設定してみます。
メールサーバおよびclamavのインストールと基本設定がされていることが前提です。
Postfixのインストールと設定
Clamavのインストールと設定
なお、Clamに関してはオンアクセス設定までは不要です。postfixにclamavを連携するためのclamav-milterをインストールします。
milterというのはmail filterの略でメールで送受信する際に、そのメールに対してウィルススキャンを行うためのプラグインと考えて差し支えありません。
# dnf --enablerepo=crb install clamav-milter clamav-milter-systemd |
sendmail-milterというのも合わせてインストールされます。設定ファイルは/etc/mail/clamav-milter.confなのでこれを編集します。
# vi /etc/mail/clamav-milter.conf <一部、抜粋> ※コメントアウト #Example ※ソケットの定義 MilterSocket /run/clamav-milter/clamav-milter.socket MilterSocketMode 660 ※/etc/clamd.d/scan.confのLocalSocketと同一にする ClamdSocket unix:/run/clamd.scan/clamd.sock ※ウィルスを検知したときにシェルを起動する VirusAction /usr/local/bin/my_infected_message_handler ※ウィルス検知時は破棄する OnInfected Blackhole ※メールのヘッダに追記する AddHeader Yes ※ログの出力先をmailにする LogFacility LOG_MAIL |
clamav-milterを起動します。
# systemctl enable clamav-milter # systemctl start clamav-milter |
このclamav-milterをpostfixの動作に組み込むためにmain.cfに以下の設定を追加致します。仮にclamav-milterが何らかの理由で停止などした場合はそのまま通す設定となります。
# vi /etc/postfix/main.cf <追記> smtpd_milters = unix:/run/clamav/clmilter.sock non_smtpd_milters = unix:/run/clamav/clmilter.sock milter_default_action = accept |
clamiltグループにpostfixユーザを追加しておきます。
# usermod -G clamilt -a postfix |
念の為、postfixのconfigファイルにスペルミスなどないか確認しながら再起動を行い、設定が反映されているか確認してみます。
# postfix check # systemctl restart postfix # postconf -n | grep milter milter_default_action = accept non_smtpd_milters = unix:/run/clamav-milter/clamav-milter.socket smtpd_milters = unix:/run/clamav-milter/clamav-milter.socket |
ここまできたらテストメールを投げてみます。通常メールを投げて以下のメールヘッダがついているか確認してみてください。
X-Virus-Scanned: clamav-milter 1.0.6 at xxxxxx X-Virus-Status: Clean |
参考URL:https://centossrv.com/almalinux/postfix-clamav-milter.shtml