POP認証では平文でパスワードが流れてるため、外出先でホットスポットなどでメールを受信すると最悪の場合パスワードが盗聴されてしまいます。パスワードを暗号化して受信する仕組みがAPOPとよばれるものです。対応しているメーラ(Becky!など)の制限もありますが、ここではqmailを利用したapopの実装について解説します。
既に qmailの標準インストール / qmailでpop before smtpの実装 の2点が完了しているものとして説明しています。
POP認証では平文でパスワードが流れてるため、外出先でホットスポットなどでメールを受信すると最悪の場合パスワードが盗聴されてしまいます。パスワードを暗号化して受信する仕組みがAPOPとよばれるものです。対応しているメーラ(Becky!など)の制限もありますが、ここではqmailを利用したapopの実装について解説します。
既に qmailの標準インストール / qmailでpop before smtpの実装 の2点が完了しているものとして説明しています。
以下のURLから最新のソースを入手してください。
http://checkpw.sourceforge.net/checkpw/
今回はcheckpw-1.01.tar.gzをダウンロードしました。
http://unc.dl.sourceforge.net/sourceforge/checkpw/checkpw-1.01.tar.gz
ここではcheckpw-1.01.tar.gzをダウンロードしたものとして説明します。
$ tar xvfz checkpw-1.01.tar.gz $ cd checkpw-1.01 $ make $ su # make setup check
これでインストールは完了です。
/bin以下にcheckapoppw,checkpw,selectcheckpwがインストールされます。
つづいて、qmailにパッチを当てます。
このパッチはPOPとAPOPを共有したい場合に当てるものです。
qmail1.03の展開したディレクトリに移動します。
$ cd qmail1.03を展開した場所/qmail-1.03 $ patch -p1 < checkpw1.01を展開した場所/checkpw-1.01/qmail-popup-auth.patch $ make $ su # make setup # make check
これでAPOPのパッチがあたってqmailのインストールも完了しました。
APOPを利用するために、ユーザディレクトリにパスワードファイルを作成します。
checkpwではshadowファイルは参照しないようです。
$ cd ~/Maildir/ $ echo "生パスワード" > .password $ chmod 600 .password
APOP対応にするにあたりPOPの起動方法を変更します。
この起動方法はpop before smtpの実装も完了しています。
pop before smtpの実装がまだの方は qmailでpop before smtpの実装 を参照してください。
/usr/local/bin/envdir /etc/relay-ctrl \ /usr/local/bin/relay-ctrl-chdir \ /usr/local/bin/tcpserver -v -R -H 0 pop3 \ /var/qmail/bin/qmail-popup hoge.example.com /bin/selectcheckpw \ /usr/local/bin/relay-ctrl-allow qmail-pop3d Maildir 2>&1 \ | /var/qmail/bin/splogger pop3d 3 &
qmailの自動起動スクリプトを作成しました。よろしければご利用ください。
stopでtcpserver経由のプロセスをkillしていますのでqmail以外でtcpserverを利用している場合は注意が必要です。
qmailでpop before smtpの実装 を少し編集したものですが。。。。
#!/bin/sh # chkconfig: 345 85 15 # description: Dynamic Relay Authorization Control # processname: qmail # # qmail: /var/qmail PATH=/var/qmail/bin:/usr/local/bin:/bin:/usr/bin [ -f /var/qmail/rc ] || exit 0 case "$1" in start) # Start daemons. echo "Starting qmail." # qmail csh -cf '/var/qmail/rc &' # POP3 envdir /etc/relay-ctrl relay-ctrl-chdir \ tcpserver -v -R -H 0 pop3 qmail-popup \ `/bin/cat /var/qmail/control/me` /bin/selectcheckpw \ relay-ctrl-allow qmail-pop3d Maildir 2>&1 \ | splogger pop3d 3 & # SMTP envdir /etc/relay-ctrl relay-ctrl-chdir \ tcpserver -v -x /etc/tcp.smtp.cdb -R -H \ -u `/usr/bin/id -u qmaild` -g `/usr/bin/id -g qmaild` \ 0 smtp relay-ctrl-check qmail-smtpd 2>&1 \ | splogger smtp 3 & echo touch /var/lock/subsys/qmail ;; stop) # Stop daemons. echo "Shutting down qmail." kill $(/sbin/pidof tcpserver) kill $(/sbin/pidof qmail-send) echo rm -f /var/lock/subsys/qmail ;; *) echo "Usage: S99qmail {start|stop}" exit 1 esac exit 0
これでAPOP,POPともにTCP110で動作します。
メーラがAPOPに対応していなくてもPOPでも動作しますのでとっても便利です。
Q-Mail Oreilly & Associates Inc / John R. Levine, Russell Nelson ¥ 3,965 |
|
The Qmail Handbook Apress / Dave Sill ¥ 5,021 |
|
Running Qmail (Sams White Book Series) Sams / Richard Blum |