SASL auxprop / sasldb, postfix / Ubuntu 12.04 ile çalışmıyor


9

Postfix 2.5.1 çalıştıran bir Ubuntu 8.04LTS sistemim var. O sistemde SMTP Kimlik çalışır cezası . İçeriği /etc/postfix/sasl/smtpd.conf:

pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN

SASL ile ilgili özellikler:

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

Ne zaman sudo sasldblistusers2alırım:

authusername@mail.mydomain.com: userPassword

Dediğim gibi, tüm 8.04LTS sisteminde iyi çalışıyor.

Ancak, bunu Postfix 2.9.3 çalıştıran bir Ubuntu 12.04LTS sistemine geçirmeye çalışıyorum ve sadece işe yarayamıyorum. Her şeyi aynı yapıyorum, ancak postfix her seferinde kimlik doğrulama hataları veriyor.

/etc/sasldb2Dosya değil . Eski sistemden dosyayı getirmeyi denedim ve bu işe yaramıyor. Ve şunu kullanarak yeni bir dosya oluşturdum:

saslpasswd2 -c -u mail.mydomain.com authusername

olsa ve bu, değil çalışır OLACAK Ben dosya ile yanlış bir şey olduğunu biliyorum nasıl eski sisteme kopyalamak eğer eski sistem üzerinde çalışıyoruz.

Benzer şekilde postfix'in smtpd.confdosyayı gördüğünü biliyorum . mech_listDosya satırına daha fazla mekanizma eklersem, smtpd arka plan programına bağlandığımda bu ek mekanizmaların tanıtıldığını görüyorum. Ve onları çıkardığımda tekrar uzaklaşıyorlar. Yani /etc/postfix/sasl/smtpd.confaçıkça kullanımı yaygınlaşıyor.

Hem gerçek bir posta istemcisi kullanarak hem de bununla bir belirteç oluşturduktan sonra sunucuyla el ile konuşarak test ediyorum:

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

sonra:

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

Ortaya çıkan konuşma:

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

Ama bunun yerine the.oldsystem.com:587aynı şeyi bağlarsam ve yaparsam, şunu elde ederim:

235 2.7.0 Authentication successful

Yeni makinedeki saslfinger çıkışı:

# 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 --

Neyi eksik / yanlış yapabilirim? Söyleyebildiğim kadarıyla, tüm yapılandırma aynı, ancak yeni sistemde çalışmayacak.

Yanıtlar:


15

Hediye burada:

-- 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

Bağlantı noktasındaki smtpdişlem submissionchroot modunda çalışıyor (çünkü -bu sütunda varsayılan (yani yes) geçerli olduğu ve göremediği anlamına gelen bir sütun var /etc/sasldb2.

Ben kopyalanan zaman /etc/sasldb2için /var/spool/postfix/etckimlik doğrulama cezası çalışmaya başladı.


3
Bu yorum bu gecenin postfix deliliğine son verdi. Ayrıca, bu yapılandırmayı kullanarak kimlik doğrulama kullanıcısının yalnızca "kullanıcı" değil kullanıcı @ $ myhostname olmasını gerektireceğini unutmayın. Bu ve kimliği doğrulanmış geçiş için benzer exim yapılandırmam arasındaki fark bu.
David Dombrowsky

5

chroot kesinlikle sebebidir, ancak benim durumum için kopyalama /var/spool/postfix/etcişe yaramadı.

Bu yüzden sadece kroottan kurtuldum ve bu benim için çalışıyor.

Bunu yapmak için /etc/postfix/master.cf dosyasını düzenlemeniz gerekir, aşağıdaki satırı bulun:

smtp      inet  n       -       -       -       -       smtpd

ve aşağıdaki gibi değiştirin:

smtp      inet  n       -       n       -       -       smtpd

4

Sasldb2 dosyasını postfix'in varsayılan chroot hapishanesine senkronize etmenin başka bir yolu, dosyaya sabit bir bağlantı eklemektir:

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

Syminklere hapishanenin içinden erişilemediği, ancak sabit linklerin çalışabileceği için bir sembolik bağlantının çalışmayacağını unutmayın. Gelecekteki yeni kullanıcılar ve şifre değişiklikleri, bir postfix yeniden yüklemesi bile otomatik olarak senkronize edileceğinden, bu, dosyayı kopyalamaktan daha avantajlıdır.


Sen güzelim, Ubuntu 16 geçişi için bir test sunucusu almayı başardım, bu yüzden değişikliklerimi üretim sunucusu Ubuntu 14'te yeniden uygulayacağımı düşündüm. Bunun nedeni Chroot'du, ancak kroot olmamak daha kötü sonuçlar verdi, bu yüzden krootu tutmak ve yukarıdaki uygulamaları uygulamak sorunlarımı çözdü.
mrjamesmyers
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.