2002年8月24日 改定
メールシステムを使っていると、どうしても出先から社内のメールサーバ(smtpサーバ)を利用したいケースがあります。しかし何も対策せずに社内
のサーバへ外部からのアクセスを許可してしまうと、SPAMメールのリレーに使われるなどの被害に遭ってしまいます。 そこで一般的にはメールサーバへの
アクセスにはまずpopサーバへアクセスさせてその認証を通った場合に短時間(1分〜3分程度)だけ、そのマシンからのsmtpサーバへの許可をするとい
う方法が取られます。このような手法を「POP Before SMTP」と呼びます。
qmailに対応した「POP Before SMTP」の実装にはいくつか方法がありますがここでは、「relay-ctrl
」というパッケージを利用した例を説明します。
relay-ctrl の特徴としては、従来のqmailのパッケージにパッチを当てなくてもPOP
Before SMTPが可能になっています。 このため、POP以外にもAPOPやIMAPでの認証でのSMTP利用が可能です。
なおrelay-ctrlを利用する為には、daemon-toolsを使う必要があるので、Mail(qmail)サーバ構築 を参考にqmailサーバを構築してください。
http://www.qmail.org/top.html#checkpassword の SMTP relay control パッケージのページからrelay-ctrl-x.x.x.tar.gz を入手します。入手したパッケージは次の手順で解凍します。
# mkdir /usr/local/man [Enter] # ------/usr/local/manディレクトリがない場合
# tar zxvf relay-ctrl-x.x.x.tar.gz [Enter]
# cd relay-ctrl-x.x.x [Enter]
# make [Enter]
# ./installer [Enter]
#
1)/var/spool/relay-ctrl/allow ディレクトリを作成し属性を設定します。
# mkdir -p /var/spool/relay-ctrl/allow [Enter]
# chmod 0777 /var/spool/relay-ctrl/allow [Enter]
# chmod 0700 /var/spool/relay-ctrl [Enter]
#
3) /var/qmail/env にRELAY_CTRL_DIR とRELAY_CTRL_EXPIRYいうファイルを以下の内容で作成します。
(/var/qmail/env/RELAY_CTRL_DIR)
/var/spool/relay-ctrl/allow
(/var/qmail/env/RELAY_CTRL_EXPIRY)※この数値(秒)の間、smtpリレーが許可されます。(デフォルト900(15分))
90
4) /etc/crontab に次の1行を追加します。
* * * * * root /usr/local/bin/envdir /var/qmail/env /usr/local/bin/relay-ctrl-age
5) /var/qmail/supervise/qmail-smtpd/run を次のように修正します。
※tcpserverのオプションで「-x /etc/tcp.smtp.cdb」の部分を外してください。
#!/bin/sh
QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`
exec /usr/local/bin/envdir /var/qmail/env sh -c '
'
/usr/local/bin/relay-ctrl-chdir \
/usr/local/bin/softlimit -m 2000000 \
/usr/local/bin/tcpserver -v -p \
-u $QMAILDUID -g $NOFILESGID 0 smtp \
/usr/local/bin/relay-ctrl-check \
/var/qmail/bin/qmail-smtpd 2>&1
6) /var/qmail/supervise/qmail-pop3d/run を以下のように修正します。
#!/bin/sh
#
# exec 2>&1
# exec envdir ./env sh -c '
exec envdir /var/qmail/env sh -c '
/usr/local/bin/relay-ctrl-chdir \
softlimit -d6000000 \
tcpserver -v -c 40 0 pop3 \
/var/qmail/bin/qmail-popup $HOST /bin/checkpassword \
/usr/local/bin/relay-ctrl-allow \
/var/qmail/bin/qmail-pop3d Maildir 2>&1
Copyrightc 1998-2003 ROBATA.ORG