To:おやじさん
おやじさんのサイトを参考にして、courier-imapとpostfixを使用してメールサーバを構築しています。
/etc/passwdを使ってユーザ認証をするpop3受信がうまくできないので質問させてください。
■現象
ユーザateamでpop3受信をするとエラーになる。
■質問内容
以下に記載しますメール受信時のエラーやauthtestコマンドの結果、そのときのログから、
認証はできているが、Maildirの設定に誤りがあるのかなぁって思っています。
しかし、設定のどこに誤りがあるのかよくわからないのでご教授ください。
■メール受信時のログ
Dec 22 15:59:31 test198 pop3d: Connection, ip=[::ffff:202.○.○.○]
Dec 22 15:59:31 test198 pop3d: authdaemon: s_connect() failed: No such file or directory
Dec 22 15:59:31 test198 pop3d: LOGIN FAILED, user=ateam, ip=[::ffff:202.○.○.○]
Dec 22 15:59:31 test198 pop3d: authentication error: No such file or directory
■authtestコマンドの結果
# /usr/sbin/authtest ateam Password
Authentication succeeded.
Authenticated: ateam (system username: ateam)
Home Directory: /home/ateam
Maildir: (none)
Quota: (none)
Encrypted Password: $1$ttpFEIpJ$Wal47XT/7or2VMkHP4j3o.
Cleartext Password: Password
Options: (none)
■authtestコマンド使用時に出力されたログ
Dec 22 15:00:31 test198 authdaemond: received auth request, service=login, authtype=login
Dec 22 15:00:31 test198 authdaemond: authpam: trying this module
Dec 22 15:00:31 test198 authdaemond: authpam: sysusername=ateam, sysuserid=<null>, sysgroupid=1000, homedir=/home/ateam, address=ateam, fullname=, m
aildir=<null>, quota=<null>, options=<null>
Dec 22 15:00:31 test198 authdaemond: pam_service=login, pam_username=ateam
Dec 22 15:00:31 test198 authdaemond: dopam successful
Dec 22 15:00:31 test198 authdaemond: Authenticated: sysusername=ateam, sysuserid=<null>, sysgroupid=1000, homedir=/home/ateam, address=ateam, fullna
me=, maildir=<null>, quota=<null>, options=<null>
■courierの起動プロセス
# ps ax | grep courier
10425 ? S 0:00 /usr/sbin/courierlogger -pid=/var/spool/authdaemon/pid -facility=local1 -start /usr/libexec/courier-authlib/authdaemond
10426 ? S 0:00 /usr/libexec/courier-authlib/authdaemond
10427 ? S 0:00 /usr/libexec/courier-authlib/authdaemond
10454 ? S 0:00 /usr/local/sbin/courierlogger -pid=/var/run/imapd.pid -start -name=imapd /usr/lib/courier-imap/libexec/couriertcpd -address=0 -maxprocs=40 -maxperip=4 -nodnslookup -noidentlookup 143 /usr/lib/courier-imap/sbin/imaplogin /usr/lib/courier-imap/bin/imapd Maildir
10455 ? S 0:00 /usr/lib/courier-imap/libexec/couriertcpd -address=0 -maxprocs=40 -maxperip=4 -nodnslookup -noidentlookup 143 /usr/lib/courier-imap/sbin/imaplogin /usr/lib/courier-imap/bin/imapd Maildir
10461 ? S 0:00 /usr/local/sbin/courierlogger -pid=/var/run/imapd-ssl.pid -start -name=imapd-ssl /usr/lib/courier-imap/libexec/couriertcpd -address=0 -maxprocs=40 -maxperip=4 -nodnslookup -noidentlookup 993 /usr/lib/courier-imap/bin/couriertls -server -tcpd /usr/lib/courier-imap/sbin/imaplogin /usr/lib/courier-imap/bin/imapd Maildir
10462 ? S 0:00 /usr/lib/courier-imap/libexec/couriertcpd -address=0 -maxprocs=40 -maxperip=4 -nodnslookup -noidentlookup 993 /usr/lib/courier-imap/bin/couriertls -server -tcpd /usr/lib/courier-imap/sbin/imaplogin /usr/lib/courier-imap/bin/imapd Maildir
10467 ? S 0:00 /usr/local/sbin/courierlogger -pid=/var/run/pop3d.pid -start -name=pop3d -facility=local1 /usr/lib/courier-imap/libexec/couriertcpd -address=0 -maxprocs=40 -maxperip=4 -nodnslookup -noidentlookup 110 /usr/lib/courier-imap/sbin/pop3login /usr/lib/courier-imap/bin/pop3d Maildir
10468 ? S 0:00 /usr/lib/courier-imap/libexec/couriertcpd -address=0 -maxprocs=40 -maxperip=4 -nodnslookup -noidentlookup 110 /usr/lib/courier-imap/sbin/pop3login /usr/lib/courier-imap/bin/pop3d Maildir
10473 ? S 0:00 /usr/local/sbin/courierlogger -pid=/var/run/pop3d-ssl.pid -start -name=pop3d-ssl /usr/lib/courier-imap/libexec/couriertcpd -address=0 -maxprocs=40 -maxperip=4 -nodnslookup -noidentlookup 995 /usr/lib/courier-imap/bin/couriertls -server -tcpd /usr/lib/courier-imap/sbin/pop3login /usr/lib/courier-imap/bin/pop3d Maildir
10474 ? S 0:00 /usr/lib/courier-imap/libexec/couriertcpd -address=0 -maxprocs=40 -maxperip=4 -nodnslookup -noidentlookup 995 /usr/lib/courier-imap/bin/couriertls -server -tcpd /usr/lib/courier-imap/sbin/pop3login /usr/lib/courier-imap/bin/pop3d Maildir
10476 pts/0 S+ 0:00 grep courier
■/usr/lib/courier-imap/etc/pop3dのMAILDIRPATH設定
MAILDIRPATH=Maildir
■ユーザateamのMaildirの場所
# ls /home/ateam/Maildir/
cur new tmp
以上です。
よろしくお願いします。
To:おやじさん
環境情報が抜けていたのでほそくさせてください。
■環境
OS:CentOS4.4
インストールしたバージョン
# rpm -qa | grep courier
courier-authlib-devel-0.58-1
courier-authlib-pgsql-0.58-1
courier-authlib-pipe-0.58-1
courier-authlib-0.58-1
courier-imap-4.1.1-1
courier-authlib-ldap-0.58-1
courier-authlib-mysql-0.58-1
courier-authlib-debuginfo-0.58-1
courier-authlib-userdb-0.58-1
以上です。
よろしくお願いします。
説明の都合上、内容を両方まとめてあります。
結論から言うと、おやじのCentOS4.4の32ビット環境(64ビット環境はつぶしてしまったので今現在はなし)では何も問題なくpamで認証できます。
気になる点をインライインで上げておきますが、おやじのところではうまく動いているのでピタッとは思いつくものがありません。
> おやじさんのサイトを参考にして、courier-imapとpostfixを使用してメールサーバを構築しています。
RPMはおやじのサイトの内容をまねして作成しましたか?
もしそうなら、CentOS4.4ではgamin-develをインストールすると何故かfam.hがインストールされますので、courie-authlibのRPMを作成するときに、specファイルをfam.hからgamin.hに書き換えると作成できませんが、そのあたりは大丈夫ですか?
おやじが作成したRPM/SRPMを下記に置いておきますので、試してみてください。
http://www.aconus.com/~oyaji/ftp/download.htm
> /etc/passwdを使ってユーザ認証をするpop3受信がうまくできないので質問させてください。
>
> ■現象
> ユーザateamでpop3受信をするとエラーになる。
>
> ■質問内容
> 以下に記載しますメール受信時のエラーやauthtestコマンドの結果、そのときのログから、
> 認証はできているが、Maildirの設定に誤りがあるのかなぁって思っています。
> しかし、設定のどこに誤りがあるのかよくわからないのでご教授ください。
MailDirがらみではなくて、authlibまわりがおかしい気がします。
> ■メール受信時のログ
> Dec 22 15:59:31 test198 pop3d: Connection, ip=[::ffff:202.○.○.○]
> Dec 22 15:59:31 test198 pop3d: authdaemon: s_connect() failed: No such file or directory
> Dec 22 15:59:31 test198 pop3d: LOGIN FAILED, user=ateam, ip=[::ffff:202.○.○.○]
> Dec 22 15:59:31 test198 pop3d: authentication error: No such file or directory
>
> ■authtestコマンドの結果
> # /usr/sbin/authtest ateam Password
> Authentication succeeded.
>
> Authenticated: ateam (system username: ateam)
> Home Directory: /home/ateam
> Maildir: (none)
> Quota: (none)
> Encrypted Password: $1$ttpFEIpJ$Wal47XT/7or2VMkHP4j3o.
> Cleartext Password: Password
> Options: (none)
>
> ■authtestコマンド使用時に出力されたログ
> Dec 22 15:00:31 test198 authdaemond: received auth request, service=login, authtype=login
> Dec 22 15:00:31 test198 authdaemond: authpam: trying this module
> Dec 22 15:00:31 test198 authdaemond: authpam: sysusername=ateam, sysuserid=<null>, sysgroupid=1000, homedir=/home/ateam, address=ateam, fullname=, m
> aildir=<null>, quota=<null>, options=<null>
> Dec 22 15:00:31 test198 authdaemond: pam_service=login, pam_username=ateam
> Dec 22 15:00:31 test198 authdaemond: dopam successful
> Dec 22 15:00:31 test198 authdaemond: Authenticated: sysusername=ateam, sysuserid=<null>, sysgroupid=1000, homedir=/home/ateam, address=ateam, fullna
> me=, maildir=<null>, quota=<null>, options=<null>
>
> ■courierの起動プロセス
> # ps ax | grep courier
> 10425 ? S 0:00 /usr/sbin/courierlogger -pid=/var/spool/authdaemon/pid -facility=local1 -start /usr/libexec/courier-authlib/authdaemond
> 10426 ? S 0:00 /usr/libexec/courier-authlib/authdaemond
> 10427 ? S 0:00 /usr/libexec/courier-authlib/authdaemond
> 10454 ? S 0:00 /usr/local/sbin/courierlogger -pid=/var/run/imapd.pid -start -name=imapd /usr/lib/courier-imap/libexec/couriertcpd -address=0 -maxprocs=40 -maxperip=4 -nodnslookup -noidentlookup 143 /usr/lib/courier-imap/sbin/imaplogin /usr/lib/courier-imap/bin/imapd Maildir
> 10455 ? S 0:00 /usr/lib/courier-imap/libexec/couriertcpd -address=0 -maxprocs=40 -maxperip=4 -nodnslookup -noidentlookup 143 /usr/lib/courier-imap/sbin/imaplogin /usr/lib/courier-imap/bin/imapd Maildir
> 10461 ? S 0:00 /usr/local/sbin/courierlogger -pid=/var/run/imapd-ssl.pid -start -name=imapd-ssl /usr/lib/courier-imap/libexec/couriertcpd -address=0 -maxprocs=40 -maxperip=4 -nodnslookup -noidentlookup 993 /usr/lib/courier-imap/bin/couriertls -server -tcpd /usr/lib/courier-imap/sbin/imaplogin /usr/lib/courier-imap/bin/imapd Maildir
> 10462 ? S 0:00 /usr/lib/courier-imap/libexec/couriertcpd -address=0 -maxprocs=40 -maxperip=4 -nodnslookup -noidentlookup 993 /usr/lib/courier-imap/bin/couriertls -server -tcpd /usr/lib/courier-imap/sbin/imaplogin /usr/lib/courier-imap/bin/imapd Maildir
> 10467 ? S 0:00 /usr/local/sbin/courierlogger -pid=/var/run/pop3d.pid -start -name=pop3d -facility=local1 /usr/lib/courier-imap/libexec/couriertcpd -address=0 -maxprocs=40 -maxperip=4 -nodnslookup -noidentlookup 110 /usr/lib/courier-imap/sbin/pop3login /usr/lib/courier-imap/bin/pop3d Maildir
> 10468 ? S 0:00 /usr/lib/courier-imap/libexec/couriertcpd -address=0 -maxprocs=40 -maxperip=4 -nodnslookup -noidentlookup 110 /usr/lib/courier-imap/sbin/pop3login /usr/lib/courier-imap/bin/pop3d Maildir
> 10473 ? S 0:00 /usr/local/sbin/courierlogger -pid=/var/run/pop3d-ssl.pid -start -name=pop3d-ssl /usr/lib/courier-imap/libexec/couriertcpd -address=0 -maxprocs=40 -maxperip=4 -nodnslookup -noidentlookup 995 /usr/lib/courier-imap/bin/couriertls -server -tcpd /usr/lib/courier-imap/sbin/pop3login /usr/lib/courier-imap/bin/pop3d Maildir
> 10474 ? S 0:00 /usr/lib/courier-imap/libexec/couriertcpd -address=0 -maxprocs=40 -maxperip=4 -nodnslookup -noidentlookup 995 /usr/lib/courier-imap/bin/couriertls -server -tcpd /usr/lib/courier-imap/sbin/pop3login /usr/lib/courier-imap/bin/pop3d Maildir
> 10476 pts/0 S+ 0:00 grep courier
これは少し気になります。authdaemonrcでdaemons=1に変更してますか? もし変更していないならおかしいですし、変更したなら元に戻すべきと思います。
デフォルトのままなら、「/usr/libexec/courier-authlib/authdaemond」が5+1で6になるはず。
> ■/usr/lib/courier-imap/etc/pop3dのMAILDIRPATH設定
> MAILDIRPATH=Maildir
>
> ■ユーザateamのMaildirの場所
> # ls /home/ateam/Maildir/
> cur new tmp
>
> ■環境
> OS:CentOS4.4
> インストールしたバージョン
> # rpm -qa | grep courier
> courier-authlib-devel-0.58-1
> courier-authlib-pgsql-0.58-1
> courier-authlib-pipe-0.58-1
> courier-authlib-0.58-1
> courier-imap-4.1.1-1
> courier-authlib-ldap-0.58-1
> courier-authlib-mysql-0.58-1
> courier-authlib-debuginfo-0.58-1
> courier-authlib-userdb-0.58-1
pamでいいなら、下記の上2つのみで良いです。余計なものを入れるとエラーがでるだけ。自分でrpmを作成するならdevelパッケージが必要。
後は、既にやられているようですがauthdaemonrcで「authmodulelist="authpam"」だけにする。(これも変更しなくても動きますが・・。authmodulelistorigはそのままで良い。つまり、極論するなら触らなくていい。)
> courier-authlib-0.58-1
> courier-imap-4.1.1-1
> courier-authlib-devel-0.58-1
To:おやじさん
courier-imapのrpmをおやじさんのサイトから直接ダウンロードして、インストールし直したらメール受信ができました。
おやじさんの手順にてrpmを作成する際に、以下のエラーが
出力され、どのように対処すればいいのかよくわからなかったので、別の手順で作成したのが問題だったようです。
本来なら、下記エラーに対してどのように対処すべきだったのでしょうか?
fam.hやgamin.hについてよくわからなかったので。。。
■エラー
$ rpmbuild -ba courier-imap.spec
エラー: Failed build dependencies:
/usr/include/gamin.h is needed by courier-imap-4.1.1-1.i386
■別の手順
courier-imap.specの以下の箇所だけ変更し、rpmbuild
(変更前)%define xflags --enable-unicode=iso-2022-jp,iso-8859-1,utf-8
(変更後)%define xflags --enable-unicode=iso-8859-1,utf-8
> courier-imapのrpmをおやじさんのサイトから直接ダウンロードして、インストールし直したらメール受信ができました。
>
> おやじさんの手順にてrpmを作成する際に、以下のエラーが
> 出力され、どのように対処すればいいのかよくわからなかったので、別の手順で作成したのが問題だったようです。
>
> 本来なら、下記エラーに対してどのように対処すべきだったのでしょうか?
> fam.hやgamin.hについてよくわからなかったので。。。
"もしそうなら、CentOS4.4ではgamin-develをインストールすると何故かfam.hがインストールされますので、courie-authlibのRPMを作成するときに、specファイルをfam.hからgamin.hに書き換えると作成できませんが、そのあたりは大丈夫ですか?" と一部間違えて(courie-authlibの作成ではなくcourier-imapの間違い)書いてありますが、このとおりに対処すれば良いだけです。下記エラーは、
$ sed -e "s/fam/gamin/g" \
-e "s/iso-8859-1/iso-2022-jp,iso-8859-1/g" \
./courier-imap-4.0.2/courier-imap.spec > ../SPECS/courier-imap.spec
コンテンツ上は、上記のように1行目でcourier-imap.spec内のfam.hをgamin.hの書き換えてますが、実は、gamin-develで普通はgamin.hがインストールされるのに、CentOS4.4ではfam.hという名前でインストールされるため、寧ろ元のままのfam.hで作成すれば問題がでません。
ということで、下記のように1行目を削除して日本語対応(iso-2022-jpの追加)だけすれば、うまく作成できるというオチです。
$ sed -e "s/iso-8859-1/iso-2022-jp,iso-8859-1/g" \
./courier-imap-4.0.2/courier-imap.spec > ../SPECS/courier-imap.spec
>
> ■エラー
> $ rpmbuild -ba courier-imap.spec
> エラー: Failed build dependencies:
> /usr/include/gamin.h is needed by courier-imap-4.1.1-1.i386
>
> ■別の手順
> courier-imap.specの以下の箇所だけ変更し、rpmbuild
> (変更前)%define xflags --enable-unicode=iso-2022-jp,iso-8859-1,utf-8
> (変更後)%define xflags --enable-unicode=iso-8859-1,utf-8
ここは全く意味がありませんね。
なお、@ITのLinux Square 会議室のほうは、ちゃんとクローズしてくださいね。