Debian 12 (bookworm) - Postfix ウィルス・スパム対策(ClamAV)!
Updated:
Debian GNU/Linux 12 (bookworm) にアンチウイルスソフト ClamAV をインストールする方法についての記録です。
以前古いバージョンでの作業時に残していた記録を参考に作業を行い、今回更新した作業記録を貼付する形式の内容となっています。
(当然ながら、興味がなければスルーしてください)
0. 前提条件
- Debian GNU/Linux 12 (bookworm; 64bit) での作業を想定。
- SMTP サーバ Postfix を「Debian 12 (bookworm) - SMTP サーバ Postfix 構築!」の方法で導入済み。
- アンチウィルスソフト ClamAV 導入済み。
- アンチウィルス ClamAV との連携には、 ClamAV daemon を使用する方法の他に、ClamSMTP を使用する方法もある。
- root ユーザでの作業を想定。
1. インストール
Postfix を ClamAV と連携させてウィルススキャンを行うのに必要な ClamAV daemon, amavisd-new を、以下のようにしてインストールする。
# apt -y install clamav-daemon amavisd-new
2. amavisd-new 設定ファイルの編集
Postfix と ClamAV を連携するのに必要な amavisd-new の設定ファイルを用意し、編集する。
# cp /usr/share/doc/amavisd-new/examples/amavisd.conf-default /etc/amavis/amavisd.conf
File: /etc/amavis/amavisd.conf
$myhostname = 'mail.mk-mode.com'; # <= ホスト名
$mydomain = 'mk-mode.com'; # <= ドメイン名
$daemon_user = 'amavis'; # <= amavis デーモンユーザ名
$daemon_group = 'amavis'; # <= amavis デーモングループ名
$MYHOME = '/var/lib/amavis'; # <= amavisd ホーム
# $virus_admin = undef; # <= コメント化されていることを確認(ウィルス検知を都度通知しない)
3. 15-content_filter_mode の編集
File: /etc/amavis/conf.d/15-content_filter_mode
@bypass_virus_checks_maps = ( # <= コメント解除
\%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re); # <= コメント解除
@bypass_spam_checks_maps = ( # <= コメント解除
\%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re); # <= コメント解除
ちなみに、amavisd.conf
にも同じ記述がある。どちらを有効にしても良いだろう。
4. 15-av_scanners の編集
メールのウィルスチェックの度に clamscan が作動するとマシンが非力な場合は非常に重くなるため、 clamav-daemon が動作する今回の環境では clamdscan でウィルスチェックを行うこととする。(clamscan と clamdscan の違いについては、ここでは説明しない)
File: /etc/amavis/conf.d/15-av_scanners
#['ClamAV-clamscan', 'clamscan', # <= コメント化
['ClamAV-clamscan', 'clamdscan', # <= 追加
5. 20-debian_defaults の編集 (不要?)
Considered UNSOLICITED BULK EMAIL, apparently from you
というタイトルのメールが届くことがあるので、それを抑止するための設定を行う。
File: /etc/amavis/conf.d/20-debian_defaults
#$final_banned_destiny = D_DISCARD;
$final_banned_destiny = D_REJECT;
D_PASS
… メールは受信者に配送されるD_REJECT
… メールは配送されないが、送信者に配送されなかった事を伝えるD_BOUNCE
… メールは配送されないが、送信者に配送されなかった事を伝える。例外で伝えない場合もあるD_DISCARD
… メールは配送されず、送信者にも配送されなかった事を伝えない
6. Postfix - main.cf の編集
File: /etc/postfix/main.cf
# 最終行へ追加
content_filter=smtp-amavis:[127.0.0.1]:10024
7. Postfix - master.cf の編集
File: /etc/postfix/master.cf
# 最終行へ追加
smtp-amavis unix - - n - 2 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
127.0.0.1:10025 inet n - n - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks=127.0.0.0/8
-o strict_rfc821_envelopes=yes
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
8. その他の設定
処理に必要なファイルを作成したり、権限設定、ユーザ作成を行う。
# touch /etc/mailname
# chmod -R 775 /var/lib/amavis/tmp
# usermod -G amavis clamav
9. サービスの再起動
ClamAV daemon, Postfix, Amavisd を再起動する。
# systemctl restart clamav-daemon
# systemctl restart postfix
# systemctl restart amavis
10. サービス自動起動の設定
デフォルトで自動起動する設定になっている。
# systemctl is-enabled clamav-daemon
enabled
disabled
になっていれば、設定する。
# systemctl enable clamav-daemon
11. 動作確認
メールを送信してみる。
# echo test | mail -s "TEST" root
受信メールのヘッダに X-Virus-Scanned: Debian amavis at
の文字列が存在することが確認できれば成功である。(メールソフトでヘッダを表示できる。または、サーバ内に届いたメールファイルを開いてみる)
メール送信コマンド mail
が使用できない場合は、 mailutils
or heirloom-mailx
or bsd-mailx
等をインストールする。複数ある場合は、update-alternatives --config mailx
でデフォルト設定をする。
Return-Path: <root@vbox.mk-mode.com>
X-Original-To: root@mk-mode.com
Delivered-To: root@mk-mode.com
Received: from localhost (localhost [127.0.0.1])
by mail.mk-mode.com (Postfix) with ESMTP id 3E2698B
for <root@mk-mode.com>; Mon, 16 Oct 2023 14:25:44 +0900 (JST)
X-Virus-Scanned: Debian amavis at vbox.mk-mode.com
Received: from mail.mk-mode.com ([127.0.0.1])
by localhost (vbox.mk-mode.com [127.0.0.1]) (amavis, port 10024) with ESMTP
id gHktjXQxFmZn for <root@mk-mode.com>; Mon, 16 Oct 2023 14:25:43 +0900 (JST)
Received: by mail.mk-mode.com (Postfix, from userid 0)
id BD0798A; Mon, 16 Oct 2023 14:25:43 +0900 (JST)
Subject: TEST
To: root@mk-mode.com
User-Agent: mail (GNU Mailutils 3.15)
Date: Mon, 16 Oct 2023 14:25:43 +0900
Message-Id: <20231016052543.BD0798A@mail.mk-mode.com>
From: root <root@vbox.mk-mode.com>
test
以上。
Comments