金子邦彦研究室インストールSolarisSolaris で qpopper

Solaris で qpopper

 

POPとは

POPは,sendmail を動かしてないマシンで,メイルを読むために, 要求に応じて,メイルスプールからメイルをそのマシンに配送する仕組みです. Becky, Eudora など,PC のメイルリーダは大抵これを使っています.

研究室の popper は qpopper を使ってます. qpopper のソースは,http://www.ring.gr.jp/ などにあります. 現在(2004年3月)のバージョンはqpopper4.0.9です. qpopper は APOP に対応しています.


 

make と install

(旧バージョンの popper があるとき) 前のバージョンの大事なファイル

念のため /etc/pop.auth 等はバックアップしておく

cp /etc/pop.auth /etc/pop.auth.BAK
chmod 600 pop.auth.BAK
cp /usr/local/etc/popauth /usr/local/etc/popauth302
cp /usr/local/etc/popper /usr/local/etc/popper302

ちなみに、

cd /usr/local/etc
ls -la pop*
-rws--x--x 1 pop pop .... popauth
-rwxr-xr-x 1 pop pop .... popper

という感じです。

インストールの前に必要な設定

pop ユーザ追加
/etc/passwd と /etc/group に pop ってユーザを追加します. 番号は両方とも 110 でいいと思う.

/etc/passwd に次の1行
pop:x:110:110:POP USER:/tmp/:/bin/sh

/etc/group に次の1行
pop::110:

gdbm のインストール

gzip -d gdbm-1.8.3.tar.gz
tar -xvf gdbm-1.8.3.tar.gz
cd gdbm-1.8.3
./configure
make
make install

インストール

# 「cp /usr/lib/libgcc_s.so.1 /usr/local/lib」でエラーが出て無視して下さい
cp /usr/lib/libgcc_s.so.1 /usr/local/lib
rm -f /usr/lib/libgcc_s.so.1
ln -s /usr/local/lib/libgcc_s.so.1 /usr/lib/libgcc_s.so.1
gzip -d < qpopper4.0.9.tar.gz | gtar -xvf
cd qpopper4.0.9
./configure --enable-specialauth --enable-apop=/etc/pop.auth --with-popuid=pop --with-openssl=/usr/local
# または
# ./configure --enable-specialauth --enable-apop=/etc/pop.auth --with-popuid=pop --with-openssl=/usr/sfw
gmake
gmake install
cd /usr/local/sbin
chown pop:pop popauth
chown pop:pop popper
chmod 4711 popauth    
cd /usr/sbin
rm popauth popper
ln -s /usr/local/sbin/popauth popauth
ln -s /usr/local/sbin/popper popper
chown pop:pop /etc/pop.auth

GNU の gdbm を前もってインストールしておいた方が良いみたいです。

--enable-apopではauthentication fileの場所を指定

--with-popuidではpopのadministering accountを指定

前もって、pop という user ID, group ID を設定しておくこと。

/etc/passwd では 「pop:x:110:110:POP:/tmp/:/bib/sh」 のように
/etc/group では 「pop::110:」のように

インストールが終わると、インストール場所、pop.auth の場所が表示される ので、確認しておく。

Installed popauth as /usr/local/sbin/popauth  with uid pop
POP authentication DB not initialized (exists): /etc/pop.auth

 

設定

/etc/inetd.conf に以下のエントリを加える. /usr/local/sbin/popper の個所は,popper のインストール先に応じて変更してください.

pop3    stream  tcp     nowait  root    /usr/local/sbin/popper   popper -s

また,/etc/servicesにも次の一行が入っていることを確認しておく。

pop3            110/tcp                         # Post Office Protocol - Version 3

Solaris 10 の場合

最後に 「inetconv」 を実行 (/etc/inet/inetd.conf をインポートするため)

inetconv

Solaris 9 あるいはそれ以前の場合

inetd を restart

kill -HUP `pgrep inetd`

 

テスト

POP サーバ上でテストします.

まず,テスト用のメールを送っておきます. hoge の個所は,送りたい相手先に読み替えてください.

echo popper test mail | /usr/ucb/Mail -s subject hoge
% telnet popple 110     
rying 133.5.18.yyy...    
Connected to popserver.    
Escape character is '^]'.    
+OK Qpopper (version 4.0.5) at popserver starting.  (xxxxxxxxxxxxx@popserver)    
APOP hoge <MD5 で作ったパスワード>
+OK hoge has xxx visible message ...
LIST   <-- メールの一覧の表示 
+ok 1 visilble messages (xxxx octets)
1 xxxx
.
`
QUIT  <-- POPサーバとさようなら                        
+OK Pop server at popserver signing off.        
Connection closed by foreign host.        

 

運用

次にユーザのパスワードを設定します. これはUNIXのパスワードとは異なるパスワードをつけるようにします.

# popauth -user hoge            
Changing POP password for hoge.      
New password: *************        
Retype new password: **************    

一般のユーザがパスワードを変更したいときは popper にログインしてから

hoge@popper[~]% popauth        
Changing only APOP password for hoge.    
Old password: *************        
New password: **************        
Retype new password: **************    

ユーザの取消は,-delete オプションを使う. APOP 認証の準備がしてあるユーザは,APOP でしか認証できなくなるので, メールクライアントは APOP に対応しているものを使うようにします.

popper というプログラムが,たまにうまくセッ ションを終れなくて,固まってしまうことがあります.こういう時には, popper を終らせてやらないといけません.

この popper は,inetd により要求があった時だけ起こされて動いているので, 要求がない時には ps で見えません.一方,サーバが Busy だというメッセー ジを出す時には,ps で見るといるので殺します.殺してなくなっても大丈夫. 次の要求時には inetd が popper をまた起こしてくれます.