新しい Ubuntu 16.04 マシンにメール サーバーをセットアップしようとしていますが、正常に動作しません。
認証には MySQL を使用した Postfix/Courier セットアップを使用しています。
電子メールを受信し、任意の電子メール クライアント (POP3 および IMAP を使用) を使用して読むことは期待どおりに機能しますが、何かを送信しようとすると、認証エラーが発生し、次のエラーがログに表示されます。
saslauthd[29975]: PAM unable to dlopen(pam_mysql.so): /lib/security/pam_mysql.so: undefined symbol: make_scrambled_password
saslauthd[29975]: PAM adding faulty module: pam_mysql.so
saslauthd[29975]: DEBUG: auth_pam: pam_authenticate failed: Module is unknown
saslauthd[29975]: do_auth : auth failure: [[email protected]] [service=smtp] [realm=testubuntu1604.com] [mech=pam] [reason=PAM auth error]
これは Ubuntu 14.04 では完璧に動作していました。
Ubuntu 16.04 では、PAM 認証に関して知っておくべき変更点はありますか?
答え1
Courier の authdaemon の使用は機能しますが、Postfix の chroot 内から courier authdaemon を使用できるようにするには、以下を実行する必要があります。
sudo service courier-authdaemon stop
sudo rm -rf /var/run/courier/authdaemon/ /var/spool/postfix/var/run/courier/authdaemon/
sudo mkdir -p /var/spool/postfix/var/run/courier/authdaemon/
sudo ln -s /var/spool/postfix/var/run/courier/authdaemon/ /var/run/courier/authdaemon
sudo service courier-authdaemon start
次に、/etc/postfix/sasl/smtpd.confに次の内容を追加します。
pwcheck_method: authdaemond
authdaemond_path: /var/run/courier/authdaemon/socket
mech_list: plain login
log_level: 9
ソース:https://www.hostsom.com/postfix-mysql-courier-imap-ubuntu-16-04-part3/
ソース:http://wiki.tolien.co.uk/Postfix_w/o_Maildrop#Courier-Authdaemon
(私はまだコメントする資格がないため、既存のソリューションへのコメントではなく、新しいソリューションとしてこれを投稿します。また、既存のソリューションには重要なステップが欠けていました)
答え2
ファイルを開いてこれらの行を追加しますsudo vim /etc/default/saslauthd
。
MECHANISMS="rimap"
MECH_OPTIONS="127.0.0.1"
答え3
私の理解では、pam_mysql はもう開発されておらず、その特定の機能は数年前に廃止されており、新しいアップデートによって最終的に「壊れ」てしまいました。認証を mysql から移行する以外に、今のところ解決策は見つかっていません。私にとっては、これは実際には選択肢ではないので、まだ解決策を探しています。
アップデート: このページを見つけましたが、まだテストしていません。 Ubuntu 16.04 で、Ubuntu 16.04 のバグが修正されました。
答え4
courier IMAPを使用する場合は、次のようにauthdaemonを使用して認証することも可能です。https://www.hostsom.com/postfix-mysql-courier-imap-ubuntu-16-04-part3/