SASL auxprop / sasldbがpostfix / Ubuntu 12.04で動作しない


9

私はPostfix 2.5.1を実行しているUbuntu 8.04LTSシステムを持っています。そのシステムでは、SMTP AUTHは問題なく実行されます。の内容は次の /etc/postfix/sasl/smtpd.confとおりです。

pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN

SASL関連のプロパティは次のとおりです。

smtpd_sasl_type = cyrus
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = smtpd
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_local_domain = $myhostname

私がするとき私はsudo sasldblistusers2得ます:

authusername@mail.mydomain.com: userPassword

私が言ったように、それはすべて8.04LTSシステムでうまく働きます。

しかし、私はこれをPostfix 2.9.3を実行しているUbuntu 12.04LTSシステムに移行しようとしており、それを機能させることができません。私はすべて同じことをしていますが、postfixは毎回認証エラーを出します。

/etc/sasldb2ファイルではありません。古いシステムからファイルを引き継いでみましたが、うまくいきません。そして、私は以下を使用して新しいファイルを作成しました:

saslpasswd2 -c -u mail.mydomain.com authusername

それはかかわらず、それは、ない仕事をしWILL私は、ファイルと何も間違っているがあります知っている方法です古いシステムにそれをコピーした場合、古いシステム上で動作します。

同様に、私はpostfixがsmtpd.confファイルを見ていることを知っています。mech_listファイルの行にさらにメカニズムを追加すると、smtpdデーモンに接続したときに、それらの余分なメカニズムがアドバタイズされていることがわかります。そして、私がそれらを取り除くと、彼らは再び消えます。だから、/etc/postfix/sasl/smtpd.conf明確に慣れてきています。

私は実際のメールクライアントを使用して、これを使ってトークンを生成した後、手動でサーバーと通信してテストしています。

perl -MMIME::Base64 -e 'print encode_base64("\000authusername\000thePassword");'

次に:

openssl s_client -quiet -starttls smtp -connect the.newsystem.com:587

結果の会話は次のとおりです。

250 DSN
EHLO example.com
250-the.newsystem.com
250-PIPELINING
250-SIZE 20971520
250-ETRN
250-AUTH PLAIN
250-AUTH=PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
AUTH PLAIN theBase64EncodedToken
535 5.7.8 Error: authentication failed: authentication failure

しかし、代わりに接続the.oldsystem.com:587して同じことをすると、次のようになります。

235 2.7.0 Authentication successful

新しいマシンでのsaslfingerの出力は次のとおりです。

# sudoh saslfinger -s
saslfinger - postfix Cyrus sasl configuration Sat Jul 21 00:24:24 EDT 2012
version: 1.0.4
mode: server-side SMTP AUTH

-- basics --
Postfix: 2.9.3
System: Ubuntu 12.04 LTS \n \l

-- smtpd is linked to --
        libsasl2.so.2 => /usr/lib/i386-linux-gnu/libsasl2.so.2 (0xb76c5000)


-- active SMTP AUTH and TLS parameters for smtpd --
broken_sasl_auth_clients = yes
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_path = smtpd
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = cyrus
smtpd_tls_CAfile = /etc/ssl/certs/MyCA.pem
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /etc/postfix/ssl/server.crt
smtpd_tls_key_file = /etc/postfix/ssl/server.key
smtpd_tls_loglevel = 1
smtpd_tls_security_level = may
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_tls_session_cache_timeout = 3600s


-- listing of /usr/lib/sasl2 --
total 16
drwxr-xr-x  2 root root 4096 Jul 20 23:00 .
drwxr-xr-x 67 root root 8192 Jul 20 21:25 ..
-rw-r--r--  1 root root    1 May  4 00:17 berkeley_db.txt

-- listing of /etc/postfix/sasl --
total 20
drwxr-xr-x 2 root root 4096 Jul 20 21:29 .
drwxr-xr-x 5 root root 4096 Jul 20 23:58 ..
-rw-r--r-- 1 root root   64 Jul 20 21:29 smtpd.conf



-- content of /etc/postfix/sasl/smtpd.conf --
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN

-- content of /etc/postfix/sasl/smtpd.conf --
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN


-- active services in /etc/postfix/master.cf --
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
smtp      inet  n       -       -       -       -       smtpd
submission inet n       -       -       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING

[snipping the rest of the services]

-- mechanisms on localhost --

-- end of saslfinger output --

何が欠けている/間違っているのでしょうか?私が知る限り、すべての構成は同じですが、新しいシステムでは機能しません。

回答:


15

プレゼントはこちらです:

-- active services in /etc/postfix/master.cf --
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
smtp      inet  n       -       -       -       -       smtpd
submission inet n       -       -       -       -       smtpd

ポートのsmtpdプロセスsubmissionはchrootモードで実行されています(-その列にがあるため、デフォルト(つまりyes)が適用されるため、を表示できません/etc/sasldb2

認証にコピー/etc/sasldb2すると、/var/spool/postfix/etc正常に動作し始めました。


3
このコメントは、今夜のポストフィックスの狂気を終わらせました。また、この構成を使用する場合、認証ユーザーは "user"だけでなく、user @ $ myhostnameである必要があることに注意してください。これは、認証済みリレーのこの類似のexim構成とは異なります。
David Dombrowsky、2016年

5

chrootは間違いなくその理由ですが、私の場合、へのコピーは機能/var/spool/postfix/etcしませんでした。

だから私はchrootを取り除くだけでそれは私にとってはうまくいきます。

これを行うには、/ etc / postfix / master.cfを編集する必要があります。次の行を見つけます。

smtp      inet  n       -       -       -       -       smtpd

次のように変更します。

smtp      inet  n       -       n       -       -       smtpd

4

sasldb2ファイルをPostfixのデフォルトのchroot jailに同期させる別の方法は、ハードリンクを追加することです。

ln /etc/sasldb2 /var/spool/postfix/etc/

刑務所内からシンボリックリンクにアクセスすることはできませんが、ハードリンクにはアクセスできるため、シンボリックリンクは機能しません。これには、単にファイルをコピーするよりも利点があります。これは、将来の新しいユーザーとパスワードの変更が、postfixのリロードすらなくても自動的に同期されるためです。


あなたの美しさ、私はテストサーバーUbuntu 16リレーを取得することができたので、運用サーバーUbuntu 14に変更を再実装するだけだと思っていました... その理由はchrootでしたが、chrootにならないように変更すると結果が悪化したため、chrootを維持して上記を実装すると問題が解決しました。
mrjamesmyers 2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.