Clamav + amavisd-newでウィルスチェック

日経Linuxの9月号に「Clam AntiVirus」、「AMaViSd」を使って、メールサーバに届くメールのウィルスチェックという記事が載っていたので試してみました。ただし、記事はFedora Core向けのもので、うちで使っているVine2.6ではそのままの手順ではいけないっぽい(っていうか記事自体がFedoraのパッケージを使うことになっていた)ので、実際の手順はこちらを参考にさせて頂きました。

まず、Clam AntiVirusのインストールから。ソースコードをhttp://www.clamav.net/から落としてきます。これを書いている時点では、clamav-0.86.2.tar.gzがstableの最新でした。

次に、「clamav」というユーザとグループを作ります。

# groupadd clamav
# useradd -g clamav -s /bin/false -c "Clam Antivirus" clamav

インストールは、標準的な手順でOKです。

# tar zxvf clamav-0.86.2.tar.gz
# cd clamav-0.86.2
# ./configure --prefix=/usr --sysconfdir=/etc
# make
# make instll

上記の手順でインストールすると、設定ファイル「clamd.conf」「freshclam.conf」が/etcに出来ているのでこれを修正します。最低限、修正の必要があるのは、両ファイルとも8行目のExampleをコメントにするだけです。

# Comment or remove the line below.
Example
 ↓
# Example

その他の設定内容については、Clam Antivirusに関するメモを参考にしてください。

修正が終わったら、必要なログファイルを作っておきます(これはやらなくてもいいのかも?)

# touch /var/log/freshclam.log
# chown clamav /var/log/freshclam.log
# touch /var/log/clamscan.log
# chown clamav /var/log/clamscan.log
# touch /var/log/clamd.log
# chown clamav /var/log/clamd.log

そして、ウィルスデータベースを最新にするため、下記のコマンドを実行します。

# /usr/bin/freshclam

次回以降、自動的に更新するためにも/etc/cron.daily/freshclamというファイルを下記の内容で作成します。

#!/bin/sh

/usr/bin/freshclam --daemon-notify --quiet \
               --log=/var/log/freshclam.log

実行属性を付けるのを忘れないように。

次にデーモン起動用のスクリプトを作成します。以下の内容を/etc/rc.d/init.d/clamdとして保存します(こちらのサイトからの引用です)。

#!/bin/bash
# chkconfig: 345 80 20
# description: Clamd DAEMON
. /etc/init.d/functions
prog="/usr/sbin/clamd"
prog_base="$(basename ${prog})"
prog_config_file="/etc/clamd.conf"
RETVAL=0

# See how we were called.
case "$1" in
  start)
    action $"Starting ${prog_base}:" ${prog} -c ${prog_config_file}
    RETVAL=$?
    echo
    ;;
  stop)
    echo $"Shutting down ${prog_base}"
    killproc ${prog_base}
    RETVAL=$?
    echo
    ;;
  status)
    status $"${prog_base}"
    RETVAL=$?
    echo
    ;;
  restart)
    $0 stop
    $0 start
    RETVAL=$?
    ;;
  reload)
    pid=`pidofproc ${prog_base}`
    kill -USR2 ${pid}
    RETVAL=$?
    ;;
  *)
    echo "Usage: $0 {start|stop|status|restart|reload}"
    exit 1
esac

exit $RETVAL

続けて、以下のコマンドを実行。

# chmod 755 /etc/rc.d/init.d/clamd   ←パーミッションの変更
# /etc/rc.d/init.d/clamd start   ←デーモン実行
# /sbin/chkconfig clamd on     ←サーバ起動時にデーモン自動実行

念のため、ps axなどでプロセスが起動しているか確認しましょう。以下のような表示があればOKです。

/usr/sbin/clamd -c /etc/clamd.conf

次に、「AMaViSd」をインストールします。今回は、Marijuana’s XOOPS TEST ROOMで配布されているamavisd-new日本語版を使わして頂きました。

まず、ソースコードを展開して、必要なPerlモジュールの更新を行います。

# tar zxvf amavisd-new-2.3.3-JP.tgz
# cd amavisd-new-2.3.3-JP
# sh amavisd_install.sh perl

もし、CPANの設定をしていなければ、いろいろと質問されます。詳しくは、「CPAN」等のキーワードで検索してください。CPANの設定が終わっている場合、少しだけ質問されますが、基本的にすべてEnterで進めてもOKなようです。

で、インストールします。

# sh amavisd_install.sh install

インストールが終わると、設定ファイル/etc/amavisd.confが出来ているので修正します。最低限修正しなければならないのは、下記の2行だけです。

$mydomain = 'dream-seed.com';      ←自分の環境に合わせて!
$myhostname = 'dream-seed.com';  ←自分の環境に合わせて!

次に/etc/aliasesに下記の2行を追加します。

virusalert: root
spamalert: root

追加したら更新を忘れずに実行。

# newaliases

そして、起動。

# /etc/rc.d/init.d/amavisd start   ←デーモン実行
# /sbin/chkconfig amavisd on     ←サーバ起動時にデーモン自動実行

念のため、ps ax等で起動しているか確認します。下記のような表示があればOKです。

amavisd (master)
amavisd (ch4-avail)
amavisd (ch3-avail)

最後にPostfixの設定。
/etc/postfix/master.cfに以下の内容を追加します。

smtp-amavis unix -      -       n     -       2  smtp
    -o smtp_data_done_timeout=1200
    -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

次に、/etc/postfix/main.cfに以下の内容を追加。

content_filter=smtp-amavis:[127.0.0.1]:10024

修正が終わったら、Postfixを再起動(再読み込み)します。

# /usr/sbin/postfix restart
(普通は、/etc/rc.d/init.d/postfix restart)

テストの為に、ここからウィルスをダウンロードしてメールを送ってみます。注意として、サーバ機以外(普段使いのWindows機とか)でダウンロード、メール送信をする場合、ウィルス対策ソフトが入っているとそこで引っかかってテストになりません。一時的にウィルス検索を無効にする等の対応が必要です。

めでたくウィルス付メールが送れて、メールサーバが正しくウィルスを発見してくれると「ウィルス警告」という件名のメールが届きます。もし添付したウィルスファイルがそのまま届いてしまったら、再度設定を見直してください。

back to top