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-authIMAPの設定も同様に
今回はPOP3で気づきましたが、courier-imap を使用している場合、IMAPの設定ファイルである /etc/pam.d/imap についても同様の修正が必要です。
これで無事に認証が通り、メールの送受信ができるようになりました。 古い設定を引き継ぐ際は、PAM周りの仕様変更に注意が必要です。