qmail+qpopperでsmPbS(POP before SMTP)

1. 概要


smPbSの節を参照。ここではMTAにqmail、POPにqpopperを使用した場合の解説を行う。
qmail-pop3dを使用する場合は、qmail-smPbSの節を参照。

2. 準備

・qmailのコンパイル、設定

qmailの節を参照

qpopperをコンパイル
--enable-home-dir-mail=Mailboxを,configure時のオプションに与える.

% tar zxvf qpopper3.x.tar.gz ; cd qpopper3.x
% ./configure --enable-home-dir-mail=Mailbox --enable-specialauth --enable-apop=/etc/mail/pop.auth --enable-log-login --with-log-facility=LOG_LOCAL0 --with-apopuid=pop (環境に合わせて)
% make

・pop.log

smPbSの節と同じく、/var/log/pop.logにlogを出力するために、
/etc/syslog.conf を編集し、syslogdにSIGHUPを送る。

ucspi-tcp

inetdでは同時接続数等の接続制御が行えないため,
ucspi-tcpを使用するのがおすすめです。 ucspi-tcpの節参照。

tcp.smtpに、
(relayを許可するClientのhostのip adress):allow,RELAYCLIENT=//
を追加しておこう

# /usr/local/bin/tcpserver -v -c 5 -x /etc/tcp/tcp.pop.cdb 0 \
pop3 /usr/sbin/popper -s 2>&1 | /usr/bin/logger -t tcp.pop3 &

popwatch

$popauthspool = "/var/spool/popauth";
$poppersyslog = "/var/log/pop.log";
$watcherlog = "/var/log/popwatch.log";
$popwatcherpidfile = "/etc/popwatch.pid";
$popwatchoutfile = "/etc/tcp/tcp.smtp.filter";
$TAIL = "/usr/local/bin/tail";
$date = `/usr/local/bin/date`; chop($date);

を、環境にあわせて編集する。

$rc = system ("cd /etc/tcp ; mv -f tcp.smtp.cdb tcp.smtp.cdb.old ; cat $popwatchoutfile tcp.smtp | /usr/local/bin/tcprules tcp.smtp.cdb tcp.smtp.cdb.$$");

も、編集する必要があるかも。

$popauthspool で設定されたディレクトリを予め作成しておく。

# popwatch &

して起動しよう。

・POP認証済みClientのIPアドレスの掃除のための設定

popclear を環境にあわせて編集し、cronでdbから認証済みIPを削除させたい時間毎に実行する。

・テスト

popで入ってみて、

% ls /var/spool/popauth ($popauthspoolに設定したディレクトリ)
正常動作していれば、popでloginした接続元のhostのIPアドレスが表示される
% cdbdump < /etc/tcp/tcp.smtp.cdb
正常動作していれば、

+15,14:210.162.171.194->+RELAYCLIENT=
+0,0:->

等の出力が得られる。

※参照url :

http://www.ne.jp/asahi/cyber/taki/server/qpopper/install.html
http://spam.ayamura.org/tools/smPbS.html


Copyright © Dai Okuyama / dai@unixuser.org
$Id: qmail-with-qpopper-smPbS.html,v 1.1.1.1 2002/04/11 03:41:41 dai Exp $