>> HOME >> FC5 MENU >> メールサーバーでウィルスチェック (amavisd-new + Clam AntiVirus)
Clam AntiVirus と amavisd-new を使用してメールサーバー側でメールに対するウィルスチェックを行います。
ここでは、自宅サーバーに構築したメールサーバーに外部から送られてきたメール及び、内部から送り出すメールのウィルスチェックを行い、ウィルスを検出したら、メールを破棄するように設定します。
また、外部から送られてきたメールについてはスパムチェックも行ない、スパムと判断した場合には表題に『**** SPAM ****』と警告表示するようにします。

1. Clam AntiVirus デーモンインストール
1 ) clamav-server インストール
2. amavisd-new インストール
1 ) 依存パッケージ先行導入
2 ) amavisd-new インストール
3. amavisd-new の設定
1 ) amavisd-new 設定ファイル /etc/amavisd/amavisd.conf の編集
4. amavisd-new の起動と自動起動設定
1 ) Clam AntiVirus 起動
2 ) Clam AntiVirus 自動起動設定
3 ) amavisd-new 起動
4 ) amavisd-new 自動起動設定
5. Postfix の設定
1 ) Postfix 設定ファイル /etc/postfix/master.cf の編集
2 ) Postfix 設定ファイル /etc/postfix/main.cf の編集
6. Postfix の再起動
7. 動作確認
1 ) amavisd-new の動作確認
2 ) ウィルスチェックの動作確認
3 ) スパムチェックの動作確認
1. Clam AntiVirus デーモンインストール
1 ) clamav-server インストール
[root@linux ~]# yum -y install clamav-server 
Loading "installonlyn" plugin
Setting up Install Process
Setting up repositories
core                                                                 [1/3]
core                      100% |=========================| 1.1 kB    00:00
updates                                                              [2/3]
updates                   100% |=========================|  951 B    00:00
extras                                                               [3/3]
extras                    100% |=========================| 1.1 kB    00:00
Reading repository metadata in from local files
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for clamav-server to pack into transaction set.
clamav-server-0.88.2-1.fc 100% |=========================|  18 kB    00:00
---> Package clamav-server.i386 0:0.88.2-1.fc5 set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 clamav-server           i386       0.88.2-1.fc5     extras             55 k

Transaction Summary
=============================================================================
Install      1 Package(s)
Update       0 Package(s)
Remove       0 Package(s)
Total download size: 55 k
Downloading Packages:
(1/1): clamav-server-0.88 100% |=========================|  55 kB    00:00
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: clamav-server                ######################### [1/1]

Installed: clamav-server.i386 0:0.88.2-1.fc5
Complete!
2. amavisd-new インストール
1 ) 依存パッケージ先行導入
yum -y install amavisd-new で アーカイバ(zoo)が無いとエラーになったので別途導入します。
※「zoo fc5」で Google検索。
[root@linux ~]# wget http://mirrors.ircam.fr/pub/dag/dries/packages/zoo/fc5-i386/zoo-2.10-2.2.fc5.rf.i386.rpm 
--16:04:25--  http://mirrors.ircam.fr/pub/dag/dries/packages/zoo/fc5-i386/zoo-2.10-2.2.fc5.rf.i386.rpm
           => `zoo-2.10-2.2.fc5.rf.i386.rpm'
mirrors.ircam.fr をDNSに問いあわせています... 129.102.1.25, 2001:660:3004:4000::25:80
mirrors.ircam.fr|129.102.1.25|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 66,135 (65K) [application/x-rpm]

100%[============================================================================>] 66,135        27.41K/s

16:04:29 (27.38 KB/s) - `zoo-2.10-2.2.fc5.rf.i386.rpm' を保存しました [66135/66135]


[root@linux ~]# rpm -ivh zoo-2.10-2.2.fc5.rf.i386.rpm 
警告: zoo-2.10-2.2.fc5.rf.i386.rpm:  V3 DSA signature: NOKEY, key ID 1aa78495
Preparing...                ########################################### [100%]
   1:zoo                    ########################################### [100%]
2 ) amavisd-new インストール。
※ 依存関係により大量のパッケージがインストールされます。
[root@linux ~]# yum -y install amavisd-new 
Loading "installonlyn" plugin
Setting up Install Process
Setting up repositories
core                                                                 [1/3]
updates                                                              [2/3]
extras                                                               [3/3]
Reading repository metadata in from local files
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for httpd to pack into transaction set.
amavisd-new-2.4.0-1.fc5.n 100% |=========================|  12 kB    00:00
---> Package amavisd-new.noarch 0:2.4.0-1.fc5 set to be updated
--> Running transaction check
--> Processing Dependency: perl(Net::Server) >= 0.87 for package: amavisd-new
--> Processing Dependency: perl(MIME::Body) for package: amavisd-new
--> Processing Dependency: perl(Mail::SpamAssassin) for package: amavisd-new
  :
  :
  :
Complete!
3. amavisd-new の設定
1 ) amavisd-new 設定ファイル /etc/amavisd/amavisd.conf の編集
[root@linux ~]# vi /etc/amavisd/amavisd.conf 

  :
  :
# ドメインを指定
#$mydomain = 'example.com';   # a convenient default for other settings
$mydomain = 'mountainbigroad.jp';
  :
  :
# OTHER MORE COMMON SETTINGS (defaults may suffice):

# $myhostname = 'host.example.com';  # must be a fully-qualified domain name!
# ホスト名を記述
$myhostname = 'linux.mountainbigroad.jp';

# コメント解除
$notify_method  = 'smtp:[127.0.0.1]:10025';
$forward_method = 'smtp:[127.0.0.1]:10025';  # set to undef with milter!

# 以下の設定は、ウィルスやSPAMの処理を決める(詳細は後述)
ここから ---->
$final_virus_destiny      = D_DISCARD;
$final_banned_destiny     = D_BOUNCE;
$final_spam_destiny       = D_PASS;
$final_bad_header_destiny = D_BOUNCE;

$warnvirussender  = 0;
$warnspamsender   = 0;
$warnbannedsender = 0;
$warnbadhsender   = 0;
<---- ここまで
  :
  :

設定変数                  概要
$final_virus_destiny      ウィルスメールの最終的な処理方法
$final_banned_destiny     banned(禁止された)メールの最終的な処理方法
$final_spam_destiny       SPAMのメールの最終的な処理方法
$final_bad_header_destiny ヘッダにASCII以外の文字が含まれているメール(Bad Header)の最終的な処理方法

設定値                    概要
D_DISCARD                 メールは受信者に配送せず、送信者にも通知しない
D_BOUNCE                  メールは受信者には配送されないが、配送されなかったことを送信者に通知する。
                          ただし、例外的に送信者に通知しないものがある
D_REJECT                  メールは受信者には配送されないが、配送されなかったことを送信者に通知する
D_PASS                    メールは配送される

設定値に D_PASS を指定した場合に、ウィルスやSPAMメールを受け取った場合、警告するかどうかを以下のように設定
できます。有効にする場合は「1」を指定し、無効にする場合は「0」を指定します。

設定変数                  説明
$warnvirussender          ウィルス送信者に通知するかどうか
$warnspamsender           SPAM送信者に通知するかどうか
$warnbannedsender         禁止メールの場合、送信者に通知するかどうか
$warnbadhsender           ヘッダにASCII文字以外のものが含まれているメールの場合、送信者に通知するかどうか
4. amavisd-new の起動と自動起動設定
1 ) Clam AntiVirus 起動
[root@linux ~]# service clamd.amavisd start 
clamd.amavisd を起動中:                                    [  OK  ]
2 ) Clam AntiVirus 自動起動設定
[root@linux ~]# chkconfig clamd.amavisd on 
[root@linux ~]# chkconfig --list clamd.amavisd 
clamd.amavisd   0:off   1:off   2:on    3:on    4:on    5:on    6:off
3 ) amavisd-new 起動
[root@linux ~]# service amavisd start 
amavisd を起動中:                                          [  OK  ]
4 ) amavisd-new 自動起動設定
[root@linux ~]# chkconfig amavisd on 
[root@linux ~]# chkconfig --list amavisd 
amavisd         0:off   1:off   2:on    3:on    4:on    5:on    6:off
5. Postfix の設定
1 ) Postfix 設定ファイル /etc/postfix/master.cf の編集
[root@linux ~]# vi /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
2 ) Postfix 設定ファイル /etc/postfix/main.cf の編集
[root@linux ~]# vi /etc/postfix/main.cf 

  :
  :
# 以下を最終行へ追加
# amavisd-newと連携するようにする
content_filter=smtp-amavis:[127.0.0.1]:10024
6. Postfix の再起動
[root@linux ~]# service postfix reload 
postfix を再読み込み中:                                    [  OK  ]
7. 動作確認
1 ) amavisd-new 動作確認
自分宛にメールを送信してみて、受信したメールのヘッダに以下の行があることを確認します。

X-Virus-Scanned: amavisd-new at mountainbigroad.jp
2 ) ウィルスチェック動作確認
テスト用のウィルスをダウンロードします。
[root@linux ~]# wget http://www.eicar.org/download/eicar.com 
[root@linux ~]# wget http://www.eicar.org/download/eicar.com.txt 
[root@linux ~]# wget http://www.eicar.org/download/eicar_com.zip 
[root@linux ~]# wget http://www.eicar.org/download/eicarcom2.zip 
自分宛に送信し、メールが配送されないことを確認します。
[root@linux ~]# sendmail -i fedora@mountainbigroad.jp < eicar.com 
[root@linux ~]# sendmail -i fedora@mountainbigroad.jp < eicar.com.txt 
[root@linux ~]# sendmail -i fedora@mountainbigroad.jp < eicar_com.zip 
[root@linux ~]# sendmail -i fedora@mountainbigroad.jp < eicarcom2.zip 
ダウンロードしたテスト用ウィルスを削除しておきます。
[root@linux ~]# rm -f eicar* 
3 ) スパムチェック動作確認
テスト用のスパムメールを自分宛に送信し、受信したメールの表題が『**** SPAM ****』となることを確認します。
[root@linux ~]# echo "XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X" | mail 
fedora@mountainbigroad.jp