ClamSMTP

提供: ArchWiki
2017年8月10日 (木) 23:48時点におけるKusakata (トーク | 投稿記録)による版 (翻訳)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

ClamSMTP はあらゆる SMTP サーバーから使えるシンプルなウイルスフィルタリングツールです。Postfix MTA と組み合わせることで役に立ちます。

Postfix と ClamAV のインストール・設定が必要です。ClamAVPostfix を見てください。

インストール

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)

参照