totaltodayyesterday

フリーなCGIと自宅サーバー情報サイト

postfix + clamav + clamsmtpでウィルス対策(Vine4.x)(2007/03/20)

[インストール環境]
» vine linux 4.1
» postfix-2.2.10-0vl6
» clamav-0.90.1-0vl0.40
» clamsmtp-1.8-1

*すべてapt-get、RPMを構築してインストールしております
*postfixのインストール説明は割愛しております

[1] clamavのインストール

> apt-get install clamav

[2] clamd.confの編集

> vi /etc/clamd.conf

#Example LogFile /var/log/clamd LocalSocket /var/run/clamav/clamd FixStaleSocket yes User clamv

[3] freshclam.confの編集

> vi /etc/freshclam.conf

#Example

[4] clamavディレクトリ作成

> mkdir /var/run/clamav
> chown clamav:clamav /var/run/clamav

[5] ログファイルの作成

> touch /var/log/clamd
> chmod 666 /var/log/clamd

[6] ログファイルをlogrotateに追加

> vi /etc/logrotate.d/clamd

/var/log/clamd { create 666 root root }

[7] clamdデーモンの異常終了を監視/復旧させるスクリプトを作成

> vi /usr/local/bin/clamdcheck.sh

#!/bin/sh PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin COUNT=`ls /var/run/clamav/clamd | wc -l` if [ $COUNT -eq 0 ]; then /etc/rc.d/init.d/clamd start fi

> chmod 755 /usr/local/bin/clamdcheck.sh

[8] cronにウィルス定義ファイルの自動更新、監視/復旧スクリプトを追加

> crontab -e

0 * * * * /usr/bin/freshclam --daemon-notify --quiet -l /var/log/clamd 10 * * * * /usr/local/bin/clamdcheck.sh

[9] 起動スクリプトの作成

> vi /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

[10] ランレベルに追加

> /sbin/chkconfig clamd on

[11] clamavを起動

> /etc/rc.d/init.d/clamd start

[12] clamsmtpのSRPMを入手

> wget http://www.inet.lt/clamsmtp/clamsmtp-1.8-1.src.rpm

[13] clamsmtpのSRPMをインストール

> rpm -ivh clamsmtp-1.8-1.src.rpm

[14] clamsmtpのRPMをビルド

> cd /usr/src/vine/SPECS
> rpmbuild -bb --clean clamsmtp.spec

[15] clamsmtpのRPMをインストール

> cd ../RPMS/i386
> rpm -ivh clamsmtp-1.8-1.i386.rpm

[16] clamsmtp.confの編集

> vi /etc/clamsmtp.conf

OutAddress: 127.0.0.1:10026 Listen: 127.0.0.1:10025 ClamAddress: /var/run/clamav/clamd User: clamav VirusAction: /usr/local/bin/virusalert.sh

[17] ウィルス検出時にメール通知するスクリプトを作成

> vi /usr/local/bin/virusalert.sh

#!/bin/sh FROM='Clam Antivirus <clamav@example.com>' TO=$RECIPIENTS MAILER='/usr/sbin/sendmail -it' SUBJECT=`/bin/echo "ウィルスが検出されました" | /usr/bin/nkf -jMB` $MAILER <<EOM From: $FROM To: $TO Subject: =?ISO-2022-JP?B?$SUBJECT?= A virus was found. [Virus] $VIRUS [From] $SENDER [To] $RECIPIENTS EOM exit 0

> chmod 755 /usr/local/bin/virusalert.sh

[18] main.cfに下記を追加

> vi /etc/postfix/main.cf

content_filter = scan:127.0.0.1:10025 receive_override_options = no_address_mappings

[19] master.cfに下記を追加

> vi /etc/postfix/master.cf

scan unix - - n - 16 smtp -o smtp_send_xforward_command=yes 127.0.0.1:10026 inet n - n - 16 smtpd -o content_filter= -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks -o smtpd_helo_restrictions= -o smtpd_client_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o mynetworks_style=host -o smtpd_authorized_xforward_hosts=127.0.0.0/8

[20] postfixを再起動

> /usr/sbin/postfix reload

コメントを残す

logo
RSS はてなブックマーク Twitter Facebook Google+
now loading...