FreeBSD QandA 1217

FreeBSD QandA

Q. qpopper の USER/PASS認証で ユーザ として
   root,toor,daemon,operator,bin,games,news,man,uucp,xten,nobody
   を指定すると、正しいパスワードを与えているのに以下のように
   失敗してしまいます。なぜですか?

   % telnet news pop3
   Trying 192.168.1.1...
   Connected to foo.bar.org.
   Escape character is '^]'.
   +OK QPOP (version 2.53) at foo.bar.org starting.  <3185.919126589@foo.bar.org>
   USER news
   +OK Password required for news.
   PASS HogeHogeFuga
   -ERR Password supplied for "news" is incorrect.
   +OK Pop server at foo.bar.org signing off.
   Connection closed by foreign host.

A. qpopper には、接続を拒否するユーザリストを与えることができます。
   FreeBSD の portsや、packages からインストールした場合、デフォルトでは 
   Makefile で ftp の接続拒否ユーザリストである /etc/ftpusers を指定してます。

   O_DEFS=         -DSETPROCTITLE -DKEEP_TEMP_DROP -DBSD44_DBM -DBIND43 \
   		-DBULLDB -DNONAUTHFILE='\"/etc/ftpusers\"'

   ユーザ news は、/etc/ftpusers にデフォルトで記述されていますので
   失敗するわけです。

   では、/etc/ftpusers からユーザ news の記述をはずせばいいかというと、
   そうではないようです。
   ユーザ news は、/etc/passwd にデフォルトで存在するユーザで、UID が 8 です。
   恐らくセキュリティ上の理由からだと思われますが、
   qpopper は UID が 10以下のユーザの接続を拒否するようです。
   実際、認証は、

       Access is blocked for UIDs below 10

   というエラーで失敗します。

   ユーザ news で qpopper に接続する理由が単に news 宛のメイル取得であれば、
   /etc/aliases で一般ユーザに振ることで解決できるでしょう。

間違い・追加情報を見付けた場合は、 修正案の投稿のしかた を読んだ上で、
QandA@jp.FreeBSD.org まで お知らせください。