技術・開発

【Vine Linux 5】courier-imapのPOP3/IMAP認証が通らない時のPAM設定|pam_stack.soの廃止対応

2010年7月11日

Vine Linux 4からVine Linux 5へサーバー環境を移行する際、メールサーバー(courier-imap)のPOP3認証が通らずに少しハマってしまいました。

原因は、Linuxの認証モジュールであるPAM(Pluggable Authentication Modules)の設定記述が変わっていたためです。
備忘録として、Vine 5環境における正しい設定方法をメモしておきます。

原因:pam_stack.so の廃止

Vine 4時代には認証に pam_stack.so というモジュールが使われていましたが、Vine 5(および近年の多くのディストリビューション)ではこのモジュールが廃止・非推奨となり、代わりに include ディレクティブを使用する形式に変更されています。

そのため、古い設定ファイルをそのままコピーしてくると、POP3やIMAPのログイン認証に失敗します。

対処法:/etc/pam.d/pop3 の書き換え

認証設定ファイル /etc/pam.d/pop3 を開き、以下のように修正します。

修正前(Vine 4以前の記述)

pam_stack.so を呼び出している部分は、Vine 5では動作しません。

# /etc/pam.d/pop3

auth     required pam_nologin.so
# 以下の記述はVine 5ではエラーになります
auth     required pam_stack.so service=system-auth
account  required pam_stack.so service=system-auth
session  required pam_stack.so service=system-auth

修正後(Vine 5用の記述)

pam_stack.so の行をコメントアウト(または削除)し、include を使って system-auth を読み込むように変更します。

# /etc/pam.d/pop3

auth     required pam_nologin.so

# 旧設定(コメントアウト)
#auth     required pam_stack.so service=system-auth
#account  required pam_stack.so service=system-auth
#session  required pam_stack.so service=system-auth

# 新設定(includeを使用)
auth     include system-auth
account  include system-auth
session  include system-auth

IMAPの設定も同様に

今回はPOP3で気づきましたが、courier-imap を使用している場合、IMAPの設定ファイルである /etc/pam.d/imap についても同様の修正が必要です。

これで無事に認証が通り、メールの送受信ができるようになりました。 古い設定を引き継ぐ際は、PAM周りの仕様変更に注意が必要です。

-技術・開発
-, , , , , , ,