qpopper2.53 のインストール
1999-11-06 作成 福島
2000-08-21 更新 福島
2000-09-10 更新 福島

$ tar zxf qpopper2.53.tar.Z                    qpopper2.53 を解凍。
$ cd qpopper2.53
$ patch < ../authlog.patch                     sendmailリレー許可用パッチ
$ ./configure --enable-specialauth             shadow パスワードを取り扱うためのオプション

$ ./configure --enable-apop=/etc/pop.auth --with-popuid=pop APOP はこっち
                                                            (/etc/passwd は使用しないので shadow オプションも無し

$ make
$ su                                           インストールするので su
# mv /usr/sbin/in.pop3d /usr/sbin/in.pop3d-org 元の pop プログラムを退避
# cp ./popper /usr/sbin/in.pop3d               今出来たばかりのプログラム popper をコピー
                                              (tcp wrapper を使用しているので /usr/sbin にコピーする)
# chown root:bin /usr/sbin/in.pop3d            揃えておきます
# vi /etc/inetd.conf                           pop は inetd から呼ばれるので inetd.conf を編集
pop3 stream tcp nowait root /usr/sbin/tcpd in.pop3d -s    追加(変更)
pop3 stream tcp nowait root /usr/sbin/tcpd in.pop3d -t /var/log/popper.log sendmailリレー許可用はこっち
# ps -ax | grep inetd                          inetd の pid を調査
  100  ?  S    0:02 /usr/sbin/inetd
 1000  p0 S    0:00 grep inetd
# kill -HUP 100                                inetd を再起動

APOP を指定した場合はこっち
qpopper2.53 のテスト
$ telnet localhost 110                         POP のポート番号は 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK QPOP (version 2.53) at pop.xxxx.xx.jp starting.    POP との接続を確認
user xxxx                                      ユーザ名(既存)を入れてみる
+OK Password required for xxxx.
pass xxxx                                      そのユーザ名のパスワードを入れてみる
+OK xxxx has 0 messages (0 octets).
stat                                           ステータス表示をさせてみる
+OK 0 0                                        0通,0オクテット(バイト)
list                                           メール番号とそれ毎のサイズを表示させてみる
+OK 0 messages (0 octets)                      メールが無いので表示が無かった
.
retr 1                                         1 番のメールを表示してみる
-ERR Message 1 does not exist.                 メールが無いのでエラー
dele 1                                         1 番のメールを削除してみる
-ERR Message 1 does not exist.                 メールが無いのでエラー
quit                                           テスト終了
+OK Pop server at pop.xxxx.xx.jp signing off.
Connection closed by foreign host.
パスワードを違えたときのエラーチェック
$ telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK QPOP (version 2.53) at pop.xxxx.xx.jp starting.
user xxxx
+OK Password required for xxxx.
pass zzzz                                      わざと違うパスワードを入力
... この間約 10 秒
-ERR Password supplied for "xxxx" is incorrect.
+OK Pop server at pop.xxxx.xx.jp signing off.
Connection closed by foreign host.             。エライエライ。
2 重セッション時のチェック
$ telnet localhost 110 正常な POP ログインセッションが他で行われているときに接続
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK QPOP (version 2.53) at pop.xxxx.xx.jp starting.
user xxxx
+OK Password required for xxxx.
pass xxxx                                      正しいパスワードを入力
-ERR /usr/spool/mail/.xxxx.pop lock busy!  Is another session active? (11)
+OK Pop server at pop.xxxx.xx.jp signing off.
Connection closed by foreign host.


APOP を指定した場合
# adduser pop                                  ユーザ pop を追加
# cp popauth /usr/local/bin/.
# chown pop /usr/local/bin/popauth
# chmod u+s /usr/local/bin/popauth
# /usr/local/bin/popauth -init                 APOP データベースの初期化

# /usr/local/bin/popauth -user <USER-ID>       APOP ユーザの追加
# /usr/local/bin/popauth -delete <USER-ID>     APOP ユーザの削除はこっち

$ /usr/local/bin/popauth                       APOP の設定はこっち