ClamSMTP
ClamSMTP はあらゆる SMTP サーバーから使えるシンプルなウイルスフィルタリングツールです。Postfix MTA と組み合わせることで役に立ちます。
Postfix と ClamAV のインストール・設定が必要です。ClamAV と Postfix を見てください。
インストール
ClamSMTP をインストールする前に Postfix をインストール・設定して SMTP サーバーのユーザーを作成してテストしてください。ClamAV もインストールしてください。
Postfix と ClamAV がインストールできたら clamsmtpAUR パッケージをインストールしてください。
設定
ClamSMTP
/etc/conf.d/clamsmtp
の以下の行を:
START_CLAMSMTP="no"
以下のように変更してください:
START_CLAMSMTP="yes"
そして /etc/clamav/clamsmtpd.conf
を編集してデーモンを設定します。以下の内容で新しいファイルを作成してください (元のファイルは消してかまいません):
OutAddress: 10025 Listen: 127.0.0.1:10026 TempDirectory: /var/spool/clamsmtp User: clamav
ClamSMTP はデーモンとして機能します。設定ファイルに指定されたポートで待機して、メールが来たら ClamAV でスキャンを行い、別のポートで Postfix にメールを受け渡します。ここではポート 10026 を使用して、clamav ユーザーでメールをスキャンし、Postfix にはポート 10025 から送り返します。
次に clamsmtp のキャッシュを作成します (デフォルトの一時ディレクトリ /tmp
ではパーミッションエラーが発生します):
# mkdir /var/spool/clamsmtp # chown clamav:clamav /var/spool/clamsmtp
ClamAV
/etc/clamav/clamd.conf
を編集して以下の行を:
#ScanMail yes
以下のようにアンコメントしてください:
ScanMail yes
Postfix
/etc/postfix/main.cf
を編集してファイルの末尾に以下の2行を追加:
content_filter = scan:127.0.0.1:10026 receive_override_options = no_address_mappings
これで Postfix はメールをローカルホストのポート 10026 に送信するようになります。
/etc/postfix/master.cf
を編集:
scan unix - - n - 16 smtp -o smtp_send_xforward_command=yes # For injecting mail back into postfix from the filter 127.0.0.1:10025 inet n - n - 16 smtpd -o content_filter= -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks -o smtpd_helo_restrictions= -o smtpd_client_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o mynetworks_style=host -o smtpd_authorized_xforward_hosts=127.0.0.0/8
最初の2行は scan サービスを作成して、他の行は ClamSMTP からスキャンされたメールを受け取って配達します。
テスト
clamsmtp.service
を起動してサーバーをテストしてください。
ウイルスが含まれていないメールを自分自身に送信してみてください。
メールが届かない場合、/var/log/mail.log
にエラーが出てないか確認してください。
問題なければ、テストウイルスをダウンロードしてからメールに添付して送信してみてください。
サーバーのログファイルを確認すると、以下のように出力されているはずです:
May 23 00:04:08 servername postfix/smtp[2415]: A9B941F911: to=<user@your.postfix.server>, relay=127.0.0.1[127.0.0.1]:10026, delay=0.13, delays=0.08/0/0.04/0, dsn=2.0.0, status=sent (250 Virus Detected; Discarded Email)