FreeBSD 10.2 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

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 /var/run/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 がメールキュー起動時に動作するようにするには「不正中継させないための設定」で作成した /etc/tcp/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
 2か所ほど、わたしの設定と合わない箇所がありますので、編集します。

: ${qmailsmtpd_cdb:=/etc/tcp.smtp}
 の箇所を

: ${qmailsmtpd_cdb:=/etc/tcp/tcp.smtp}

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(アースカー)