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 と加える.