POP before SMTP


1. 概要

smtpでmailを外部に送信できるユーザを、localユーザに限定するために、POP(もしくはimap等)で認証されたユーザからのみ、自ホストをsmtpサーバとして、外部へのmail転送を行えるようにするもの。

2. 準備

sendmailの節に沿ってsendmailを作る。
CF-3.7Wpl2+CF-3.7Wpl2-smtpcheck-patch1,2相当に、
http://www.ayamura.org/installer/etc/smtpcheck.diff.txt をあてる。
qpopper-2.5.3にpatchをあてる。
qpopper-3.xにpatchをあて,コンパイルする.
手元のLinux Boxでは,以下のようにした
$ ./configure --with-pam=qpopper --enable-apop=/etc/pop.auth --with-popuid=pop --enable-log-login --enable-shy --with-log-facility=LOG_LOCAL0

3. 設定等

・CF

CFにpatchをあて、

% make cleantools ; make tools ; make samples
% cp Standerds/sendmail(smtpcheck部分だけ作るならsmtpcheck)-v8.def ./sendmail.def

して、

POPAUTH_HOST_IPADDR=hash:/etc/sendmail.popauthip
(/etc/sendmail.popauthipの部分は、作成されるファイル名から、.dbを除いたものであることに注意)

を追加し、

% make sendmail.cf

で、sendmail.cfを作成し、/etc/sendmail.cfと置き換え、

# makemap hash /etc/sendmail.popauthip.db < /dev/null

しておこう。(バックアップをお忘れなく :)

・qpopper

/etc/syslog.confに、

local0.notice (tabを入れる)/var/log/pop.log

を加え、

# touch /var/log/pop.log

して、syslogdにSIGHUPを送る。

・poprelayd

http://www.cynic.net/%7Ecjs/computer/sendmail/poprelayd
を入手して、環境設定する。

$logfile = "/var/log/pop.log"; # POP3 daemon log.
$pidfile = "/var/run/poprelayd.pid"; # Where we put our PID.
$dbfile = "/etc/sendmail.popauthip.db"; # Sendmail map to update.
$timeout_minutes = 10; # Minutes an entry lasts.
($logfile : syslog.confで指定したPOPのlog file
$pidfile : poprelaydのpidファイルが作られる場所
$dbfile : sendmail.cfで指定したpop認証済みip addrのdbのファイル
$timeout_minutes : dbからip addrが削除されるまでの時間(分単位))

等を、環境にあわせて変更。

# poprelayd -d

して起動しておく。

・テスト

popで入ってみて、

% cat /var/log/pop.log
% poprelayd -p

して、DBにip addressが追加されてればok。
あとは実際にsendmail.cfで定義された組織の外から接続してテストを行おう。

※参照url :

http://www.cynic.net/%7Ecjs/computer/sendmail/poprelay.html
http://spam.ayamura.org/tools/smPbS.html

追記: postfixでの POP before SMTP

/etc/postfix/main.cfの最後に,
smtpd_recipient_restrictions =
        permit_mynetworks
        check_client_access hash:/etc/postfix/auth_client
        check_relay_domains
等と追加し,poprelaydの$dbfile を,/etc/postfix/auth_client.db等にする.
$HOME/Mailboxタイプのmail spoolを使用する場合は,qpopper3.xのconfigure時に, --enable-home-dir-mail=Mailbox と加える.


Copyright © Dai Okuyama / dai@unixuser.org
Last modified: Sat Jun 26 13:49:21 JST 1999