□pop(qpopper (x)inetd)
□pop(qpopper (x)inetd)
参考URL:
http://qpopper.sourceforge.net/
tar xvzf package/qpopper4.0.16.tar.gz
cd qpopper4.0.16/
./configure \
–prefix=/usr \
–enable-specialauth \
–enable-servermode
make
install -s ./popper/popper /usr/sbin/popper_pop3
これでまず普通の popper_pop3 を作る
–enable-auto-delete というオプションを付けると、読出し後に自動削除。
次にAPOP用の popper_apop を作る。popauth もインストール。
そのまえに、/etc/passwd と /etc/shadow に、pop ユーザーを
追加するのを忘れない様に。
make realclean
./configure \
–prefix=/usr \
–enable-specialauth \
–enable-servermode \
–enable-apop=/etc/pop.auth \
–with-popuid=pop \
–enable-auto-delete
make
install -s ./popper/popper /usr/sbin/popper_apop
install -s ./popper/popauth /usr/bin/popauth
chown pop /usr/bin/popauth
chmod u+s /usr/bin/popauth
/usr/bin/popauth -init
でパスワードのユーザー任意の設定許可とデータベースの初期化
続いていろいろ書き直し。
まず /etc/services は、
> apop 112/tcp apop # APOP
> apop 112/udp apop
上記を追加します。(POP3とAPOPのポートを分けたいため)
続いて /etc/xinetd.conf で
> service pop3
> {
> flags = NAMEINARGS
> socket_type = stream
> protocol = tcp
> wait = no
> user = root
> server = /usr/sbin/tcpd
> server_args = ipop3d
> }
となっているところを
> service pop3
> {
> flags = NAMEINARGS
> socket_type = stream
> protocol = tcp
> wait = no
> user = root
> server = /usr/sbin/tcpd
> server_args = /usr/sbin/popper_pop3 -s -t /var/log/popper_pop3.log
> }
>
> service apop
> {
> flags = NAMEINARGS
> socket_type = stream
> protocol = tcp
> wait = no
> user = root
> server = /usr/sbin/tcpd
> server_args = /usr/sbin/popper_apop -s -t /var/log/popper_apop.log
> }
とする。hosts.allow への追記を忘れずに。
もし tcpwrapper によるフィルタリンクがうざい(負荷なども含めて)と
思うならば、下記のように xinetd から直接呼んでしまえば良い。
> service pop3
> {
> flags = REUSE NAMEINARGS
> socket_type = stream
> protocol = tcp
> wait = no
> user = root
> server = /usr/sbin/popper_pop3
> server_args = -s -t /var/log/popper_pop3.log -T 60 -R
> log_on_success -= HOST PID
> }
>
> service pop3
> {
> flags = REUSE NAMEINARGS
> socket_type = stream
> protocol = tcp
> wait = no
> user = root
> server = /usr/sbin/popper_apop
> server_args = -s -t /var/log/popper_apop.log -T 60 -R
> log_on_success -= HOST PID
> }
inetd(xinetd) を kill -HUP(kill) しておわり。
で、とりあえず自分でアクセスしてみて下記のようになればOK。
> # telnet localhost pop3
> Trying 127.0.0.1…
> Connected to localhost.
> Escape character is ‘^]’.
> +OK Qpopper (version 4.0.16) at yebisu.fwnet.or.jp starting.
> quit
> +OK Pop server at yebisu.fwnet.or.jp signing off.
> Connection closed by foreign host.
> # telnet localhost apop
> Trying 127.0.0.1…
> Connected to localhost.
> Escape character is ‘^]’.
> +OK Qpopper (version 4.0.16) at yebisu.fwnet.or.jp starting. <1245.1138588184@yebisu.fwnet.or.jp>
> quit
> +OK Pop server at yebisu.fwnet.or.jp signing off.
> Connection closed by foreign host.
補足:負荷軽減のパラメータ
server_args で qpopper のオプションとして下記のような物を付けると
アクセスがやたらと多いメールサーバーの負荷軽減に繋がったりする…
かも!?
-T xx : タイムアウト値(単位は秒)、よくこけるクライアント対策として
-R : ホスト名をDNSに問い合わせない(負荷が軽くなる)