amavis-new + clamav (2006/05/04)

ウィルススキャンメールサーバにSophos Anti-Virus + AMaViS + Postfixによるメールサーバにおけるウィルス対策について書きましたが,しばらくいじっていなかったうちに,amavis-postfixパッケージは提供されなくなっていたりして,だいぶ以前の設定はobsoluteであることが分かりました.今回,

「Debian GNU/Linux徹底入門」 武藤健志著
の12.1.6「ウィルスとspamへの対策」を読んで,フリーのウィルス検知ソフトウェアclamavを利用して,ウィルススキャンメールサーバを構築しようと思い立ちました.

まず,clamavパッケージをインストールします.

# apt-get install clamav
[clamav-freshclam]
Virus databbase update method: "daemon"
Local database mirror site: "db.jp.clamav.net (Japan)"
HTTP proxy information (leave blank for none): ""
Should clamd be notified after updates?: ""

依存関係でclamav-freshclamパッケージが入ります.質問を見ると,これはdaemonとして動き,ウィルス定義ファイルを最新のものにしてくれるようで,感激しました.

以前に検知されたウィルス付きメールをclamavでチェックしてみました.

# cd /var/lib/amavis/virusmails
# clamscan virus-20041009-110431-28255
virus-20041009-110431-28255: Worm.SomeFool.Q FOUND

----------- SCAN SUMMARY -----------
Known viruses: 53249
Engine version: 0.88.2
Scanned directories: 0
Scanned files: 1
Infected files: 1
Data scanned: 0.02 MB
Time: 1.533 sec (0 m 1 s)

きちんと検出しました.以前のamavis-postfixパッケージに相当するものがamavisd-newパッケージのようです.amavis-postfixパッケージをpurgeして,amavisd-newパッケージをインストールします.

# dpkg --purge amavis-postfix
# apt-get install amavisd-new

clamavをdaemonとして動作させるclamav-daemonパッケージをインストールします.

# apt-get install clamav-daemon

clamavユーザをamavisグループに追加します.

# adduser clamav amavis
Adding user `clamav' to group `amavis'...
Done.

設定ファイル/etc/amavis/conf.d/20-debian_defaults内にある$inet_socket_portはamavisd-newが監視するポート番号です.これを空いているポートにして下さい.この例では,30124とします.デフォルトは10124です.設定を変更したら,/etc/init.d/amavis reloadをしましょう.これ以降は,/usr/share/doc/amavisd-new/README.postfix.gzに従い,作業を進めました./etc/postfix/master.cfの末尾に次を追加します.

# vi /etc/postfix/master.cf
[Add the following lines at the end.]
#
# amavisd-new + clamav.
#
smtp-amavis unix -      -       n       -       2       smtp
  -o smtp_data_done_timeout=1200
  -o smtp_send_xforward_command=yes
  -o disable_dns_lookups=yes
  -o max_use=20
127.0.0.1:30125 inet n  -       n       -       -       smtpd
  -o content_filter=
  -o local_recipient_maps=
  -o relay_recipient_maps=
  -o smtpd_restriction_classes=
  -o smtpd_delay_reject=no
  -o smtpd_client_restrictions=permit_mynetworks,reject
  -o smtpd_helo_restrictions=
  -o smtpd_sender_restrictions=
  -o smtpd_recipient_restrictions=permit_mynetworks,reject
  -o smtpd_data_restrictions=reject_unauth_pipelining
  -o smtpd_end_of_data_restrictions=
  -o mynetworks=127.0.0.0/8
  -o smtpd_error_sleep_time=0
  -o smtpd_soft_error_limit=1001
  -o smtpd_hard_error_limit=1000
  -o smtpd_client_connection_count_limit=0
  -o smtpd_client_connection_rate_limit=0
  -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks

上のポート番号30125は適当ですので,空いているポート番号を利用して下さい.次に,/etc/postfix/main.cfに次の一行を加えます.

# vi /etc/postfix/main.cf
[Add a line]
content_filter = smtp-amavis:[127.0.0.1]:30124

postfixを再起動すれば,オーケーです.

# /etc/init.d/postfix restart

なお,/usr/share/doc/amavisd-new/README.postfix.gzには,いろいろな動作チェックの方法が書いてあります.それらを試しながら進めると,処理内容の理解の助けになると思います.


梅原 大祐 / UMEHARA Daisuke umehara@kit.ac.jp
Last modified: 2020/05/01 15:37
Total Access Count