Vine3.1 + Clamav + amavisd-new でウイルス・チェック

2005/09/04

ここではMarijuanaさんが作成されているamavisd-new日本語版を利用する場合で書いてます。

以下はVine3.1をフル・インストールされているものとして書いています。個々で足らないパッケージはご自身で追加インストールをお願いします。

それと、ここではpostfixの細かいことについては触れていません。postfixの設定などはすでに終わっているという前提で書きます。


Clamavのインストール

  1. aptのextrasを有効にします。
    $ su -
    # emacs /etc/apt/sources.list
    rpm     [vine] http://updates.vinelinux.org/apt 3.1/$(ARCH) main devel plus updates extras
    rpm-src [vine] http://updates.vinelinux.org/apt 3.1/$(ARCH) main devel plus updates extras
  2. Vine3.1をインストールした直後の状態ではパッケージのバージョンの問題じゃないかと思いますがうまくいきません。
    そこで、まずは最新パッケージに更新しておきましょう。
    # apt-get update
    # apt-get upgrade
  3. Clam Antivirusをインストールします。また、db4-develがないとamavisd-new日本語版のインストールで失敗するので、ここでついでにインストールしてしまいます。
    # apt-get install clamav db4-devel

ClamAVの設定

  1. ClamAVの設定をします。詳しくはClam Antivirusに関するメモに書かれています。
    # emacs /etc/clamd.conf
    # 以下は変更する所のみ表示しています。
     
    # この項目が設定されている場合、clamdはすぐに終了する
    # コメントに変更
    # Example
     
    # 指定したファイルにログを記録する (Default: 無効)
    # ログ指定を変更
    LogFile /var/log/clamd.log
     
    # VirusDBファイル(main.cvd/daily.cvd/*.db等)のあるディレクトリを
    # 明示して指定
    # 標準ではデフォルトで/usr/share/clamav/になっているようで
    # 指定する必要はないと思うが、必要なら指定してください。
    #DatabaseDirectory /var/lib/clamav
  2. ウィルス・データベースを更新するfreshclamの設定をします。
    # emacs /etc/freshclam.conf
    # 以下は変更する所のみ表示しています。
     
    # この項目が設定されている場合、clamdはすぐに終了する
    # コメントに変更
    # Example
  3. ウィルス・データベース更新時のログ・ファイルを生成しておきます。
    # 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
  4. 初回は、手動でウィルス・データベースを更新しておきましょう。
    # /usr/bin/freshclam --log=/var/log/freshclam.log
  5. cronを利用してウィルス・データベースを更新させるようにします。
    ここでは/etc/cron.daily/freshclamを新規生成します。
    必要であれば、ご自身の環境に合わせてください。
    # emacs /etc/cron.daily/freshclam
    #!/bin/sh
    
    /usr/bin/freshclam --daemon-notify --quiet \
    			   --log=/var/log/freshclam.log
    		
    # chmod 755 /etc/cron.daily/freshclam
  6. clamd起動スクリプトを作ります。Marijuanaさん作成の起動スクリプトは以下です。 /etc/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
    		
  7. パーミッションを変更します。
    # chmod 755 /etc/init.d/clamd
  8. clamdを起動します。
    # /etc/init.d/clamd start
  9. clamdをサーバ起動時に自動起動させます。
    # /sbin/chkconfig clamd on
参考サイト
Marijuana's XOOPS TEST ROOM - Take It EASY! -
Clam Antivirusに関するメモ

Perlモジュールのインストール

PerlモジュールはMarijuanaさんの作成されたインストーラでインストールされますが、rpmの依存関係の問題もあるのでaptでインストールしてみました。

Marijuanaさん作成のインストーラだけでも動作しますが、後々、依存関係で困らないように念のためインストールしてます。気にならないようならこの作業は必要ありません。

  1. # apt-get install perl-Archive-Tar perl-Compress-Zlib perl-IO-Zlib \
    > perl-IO-stringy perl-Time-HiRes perl-Jcode

amavisd-new日本語版のインストール

以下は私がインストールしたときの、amavisd-new日本語版に付属するドキュメントに書いてあるままです。
インストールさる前に、念のため、最新のREADMEを確認するようにしましょう。

  1. CPANの設定をしていないようならここでCPANの設定をしておきます。すでに済んでいればこの作業は必要ありません。
    # perl -MCPAN -e shell
    この後、初回はいくつか質問されるが、すべてEnterでOKですが、以下はEnterで進めませんので次のようにします。
    Select your continent (or several nearby continents) [] 2 (Asiaを選択)
    Select your country (or several nearby countries) [] 5 (Japanを選択)
    Select as many URLs as you like (by number),
    put them on one line, separated by blanks, e.g. '1 4 5' [] 1 4 5
    上記以外はEnterでOKです。
    cpan> exit
  2. Marijuanaさんのサイトからamavisd-new日本語版をダウンロードしてください。
  3. 解凍します。
    # tar zxvf amavisd-new-2.3.3-JP.tgz
    # cd amavisd-new-2.3.3-JP
    ここに README-euc.txt というファイルがあり、インストール方法の詳しい説明が書かれています。参照するといいのではないかと思います。
  4. perlモジュールをインストールします。
    # sh amavisd_install.sh perl netserver
    途中、色々と質問されるけど、すべてEnterでOKみたいです。ここはかなり時間がかかります。
  5. amavisd-new日本語版をインストールします。
    # sh amavisd_install.sh install

amavisd-newの設定

  1. /etc/amavisd.confを編集して設定します。
    # emacs /etc/amavisd.conf
    # 以下のコメントをはずします。
    @bypass_spam_checks_maps = (1); # uncomment to DISABLE anti-spam code
    # 自分のドメインを設定(必ず設定)
    $mydomain = 'tsuttayo.sytes.net';
     
    # 自分のホスト名を設定(必ず設定)
    $myhostname = 'tsuttayo.sytes.net';
  2. aliasesの設定をします。
    # emacs /etc/aliases
    # 以下の行を追加します(AMaViS email scanner user)
    virusalert: root
    spamalert: root
    # newaliases
  3. amavisdを起動します。
    # /etc/init.d/amavisd start
  4. サーバ起動時にamavisdも自動起動するように設定します。
    # /sbin/chkconfig amavisd on
参考サイト
Marijuana's XOOPS TEST ROOM - Take It EASY! -

Postfixの設定

/etc/postfix/master.cfの最後に以下を追加します。
# emacs /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

/etc/postfix/main.cfの最後に以下を追加します。
# emacs /etc/postfix/main.cf
content_filter=smtp-amavis:[127.0.0.1]:10024

設定したらpostfixを再起動します。
# /etc/init.d/postfix restart


ウィルスを添付して動作確認

eicar - Anti-Virus test fileからテスト用のウィルスをダウンロードします。

ダウンロードしたファイルを添付して、送受信してみます。

添付ファイルが付いたままメールが届いたら失敗です。もう一度、設定を見直しましょう。


Webminの「Clam Antivirus 管理」モジュールをインストール

これは必須ではありませんが、あればたいへん便利なのでお勧めします。

最初にWebminが正常に動作している環境が必要です。Webminがインストールされていないなら、事前にこちらを見てインストールを済ませてください。

  1. perlモジュールをインストールします。
    # perl -MCPAN -e 'CPAN::Shell->install('HTML::Entities')'
  2. GForge: ファイルリストよりwbmclamav-0.5.2.wbm.gzをダウンロードします。
  3. Webminを開いて、「Webmin」の「Webmin 設定/Webmin モジュール」の「モジュールのインストール」で「ローカル ファイルから」を選択して、ダウンロードしたwbmclamav-0.5.2.wbm.gzをインストールします。
  4. Marijuanaさんのダウンロード・ページから、 wbmclamav-0.5.2日本語ランゲージファイル(wbmclamav-0[1].5.2-JP.tgz)をダウンロードします。
  5. 日本語ランゲージファイルをインストールします。
    # tar zxvf wbmclamav-0[1].5.2-JP.tgz
    # cp ja_JP.euc /usr/libexec/webmin/clamav/lang/
  6. これで、Webminの「システム」に「Clam Antivirus」が追加されます。これをクリックして次のようにモジュール設定を行いましょう。
    Clam Antivirus に設定可能なオプション
    Path to rc*.d directories
    Quarantine
    Use the following content scanner
    Path to quarantine repository
    ClamAV
    Path to daemon init script
    Path to logfile
    Path to configuration file
    Path to main virus signatures database
    Path to daily virus signatures database
    Freshclam
    Path to configuration file
    Method to use to refresh automatically viruses database?cron
    Path to logfile
    Path to daemon init script

これで、Webminの「システム/Clam Antivirus」で以下のように利用できます。
「隔離場所」で、ウィルス・メールを選択して削除することができます。

Copyright©2001-2019 釣ったよ! All Right Reserved.    sg@tsuttayo.jpn.org