FreeBSD 9.3 RELEASE - qmail - ウィルススキャン設定 ~ qmail 起動

クラウディア 
 ウィルススキャンの設定を行います。  ウィルススキャンは、完全なものではありませんが、既知のウィルスであれば、クライアントマシンをウィルスメールの攻撃から守ってくれるでしょう。  スキャナーとアンチウィルスソフトを組み合わせて使います。  以前は、qmail-scanner と Sophos Anti-Virus の使用する方法を記述していましたが、qmail-scanner が 2014年9月3日現在、使用できなくなっていることのほか諸事情により simscan と ClamAV という組み合わせを使用します。
1. ports
2. clamav 設定
3. simscan 設定
4. 起動スクリプトの編集

1. ports

 「clamav」、「simscan」の順にインストールします。

/usr/ports/security/clamav
/usr/ports/mail/simscan
 「simscan」のオプションについてわたしのお勧めは以下にチェックをいれて他を外します。 ・CLAMAV (clamav でチェックする上で必須) ・HEADERS (受信ヘッダに simscan のバージョンや処理時間を挿入します) ・PASSTHRU (チェックを入れないと誤認識であっても spam と判断したメールは削除されます) ・RIPMIME ・SPAMD (SpamassAssin を動作させる上で必須) ・USER
「/usr/ports/mail/simscan」「make config」

2. clamav 設定

 「clamav」が「simscan」経由で動作するように

/usr/local/etc/clamd.conf
 を書き換えます。

LogFile /var/log/clamav/clamd.log
PidFile /var/run/clamav/clamd.pid
LocalSocket /var/run/clamav/clamd.sock
User clamav
 の箇所を

LogFile /var/log/simscan/clamd.log
PidFile /var/run/simscan/clamd.pid
LocalSocket /var/run/simscan/clamd.sock
User simscan
 に書き換えます。  こうすると「clamav_clamd」が「simscan」のユーザで動作しますので、ログファイルや「pid」ファイル用のディレクトリを「simscan」用に作成します。

mkdir /var/log/simscan
chown simscan:simscan /var/log/simscan
mkdir /var/run/simscan
chown simscan:simscan /run/log/simscan
 「freshclam」のログは「/var/log/clamav」に作成されます。  「clamd」のログは「/var/log/simscan」に作成されます。  「/etc/newsyslog.conf」を更新して、ログをローテーションさせることを忘れないように。  「clamav」が動作するようにするには以下のようにします。  「/etc/rc.conf」に以下の行を加えます。

clamav_freshclam_enable="YES"
clamav_clamd_enable="YES"
clamav_clamd_user="simscan"
 ウィルスパターンのデータベースを取得します。

rehash
freshclam
 以下で起動します。

/usr/local/etc/rc.d/clamav-freshclam start
/usr/local/etc/rc.d/clamav-clamd     start

3. simscan 設定

 simscan がメールキュー起動時に動作するようにするには「5. 不正中継させないための設定」で作成した /etc/tcp.smtp を以下のように書き換えます。

127.:allow,RELAYCLIENT=""
192.168.0.:allow,RELAYCLIENT="",QMAILQUEUE="/var/qmail/bin/simscan"
xxx.yyy.zzz.0-8:allow,RELAYCLIENT="",QMAILQUEUE="/var/qmail/bin/simscan"
:allow,QMAILQUEUE="/var/qmail/bin/simscan"

4. 起動スクリプトの編集

 起動スクリプトを編集します。起動スクリプトは以前の紹介ではまとめて1つのファイルにしていましたが、pid ファイル等の関係もあり、以下の3つに分けます。
qmail-start
qmail-smtpd
qmail-pop3d
 サブミッションポートを使用する場合は、これにサブミッションポート用のスクリプトを追加します。  まずは起動用に、rc.conf に以下の行を加えます。

qmailstart_enable="YES"
qmailsmtpd_enable="YES"
qmailpop3d_enable="YES"
 qmail-start の起動スクリプト /usr/local/etc/rc.d/qmail-start を編集します。(このスクリプトで # PROVIDE: qmailstart から3行はただのコメントではありません。わたしはそこがわからずに時間を浪費してしまいました。マニュアルで rcorder を参照してください)

#!/bin/sh
#
# PROVIDE: qmailstart
# REQUIRE: LOGIN cleanvar
# KEYWORD: shutdown

qmailstart_enable=${qmailstart_enable:-"NO"}

. /etc/rc.subr

name=qmailstart
rcvar=qmailstart_enable

load_rc_config $name

start_cmd=qmailstart_start
procname=/var/qmail/bin/qmail-send
command=/var/qmail/bin/qmail-send
pidfile=/var/run/qmailstart.pid

qmailstart_start()
{
	echo "Starting qmail-start."

	exec env - PATH="/var/qmail/bin:$PATH" qmail-start ./Maildir/ splogger qmail &
	echo $! > $pidfile
}

run_rc_command "$1"
 qmail-smtpd はサンプルがありますのでコピーして

cp /var/qmail/boot/qmailsmtpd /usr/local/etc/rc.d/qmail-smtpd
 一か所、わたしの設定方と合わない箇所がありますので、編集します。

procname=${qmailsmtpd_tcprules}
 の箇所を

procname=${qmailsmtpd_tcpserver}
 と書き換えます。  qmail-pop3d の起動スクリプト /usr/local/etc/rc.d/qmail-pop3d を編集します。

#!/bin/sh
#
# PROVIDE: qmailpop3d
# REQUIRE: LOGIN cleanvar
# KEYWORD: shutdown

qmailpop3d_enable=${qmailpop3d_enable:-"NO"}

. /etc/rc.subr

name=qmailpop3d
rcvar=qmailpop3d_enable

load_rc_config $name

start_cmd=qmailpop3d_start
procname=/usr/local/bin/tcpserver_pop3
command=/usr/local/bin/tcpserver_pop3
pidfile=/var/run/qmailpop3d.pid

qmailpop3d_start()
{
	echo "Starting qmaili-pop3d."

	/usr/local/bin/tcpserver_pop3 0 pop3 /var/qmail/bin/qmail-popup 
サーバドメイン名
\ /usr/local/bin/checkpassword \ /var/qmail/bin/qmail-pop3d Maildir & echo $! > $pidfile } run_rc_command "$1"
 pop3 で起動する tcpserver で pid を他と区別するために /usr/local/bin/tcpserver から tcpserver_pop3 にシンボリックリンクをはっておきます。(そのままコピーすると、以降、tcpserver が更新された際に更新されなくなるので)

ln -s /usr/local/bin/tcpserver /usr/local/bin/tcpserver_pop3
 /usr/local/etc/rc.d/qmail-start と /usr/local/etc/rc.d/qmail-pop3d は、編集しただけでは、実行権限がついていませんので実行権限を付与します。

chmod +x /usr/local/etc/rc.d/qmail-start
chmod +x /usr/local/etc/rc.d/qmail-pop3d
 一通り書き終えたら、リブートして動作を確認します。
earthcar(アースカー)
薬屋の独り言