Tidak dapat menjalankan SASL auxprop / sasldb dengan postfix / Ubuntu 12.04

9

Saya memiliki sistem Ubuntu 8.04LTS yang menjalankan Postfix 2.5.1. Pada sistem itu SMTP AUTH berfungsi dengan baik . Isinya /etc/postfix/sasl/smtpd.confadalah:

pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN

Properti terkait SASL adalah:

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

Ketika saya melakukannya sudo sasldblistusers2saya mendapatkan:

[email protected]: userPassword

Seperti yang saya katakan, bahwa semua berfungsi dengan baik pada sistem 8.04LTS.

Namun, saya mencoba untuk memigrasikan ini ke sistem Ubuntu 12.04LTS yang menjalankan Postfix 2.9.3 dan saya tidak bisa membuatnya berfungsi. Saya melakukan semuanya dengan cara yang sama, tetapi postfix memberikan kegagalan otentikasi setiap saat.

Bukan /etc/sasldb2file. Saya sudah mencoba membawa file dari sistem lama dan itu tidak berhasil. Dan saya telah membuat file baru menggunakan:

saslpasswd2 -c -u mail.mydomain.com authusername

dan itu tidak berfungsi, walaupun itu AKAN bekerja pada sistem yang lama jika saya menyalinnya ke sistem yang lama, yang bagaimana saya tahu tidak ada yang salah dengan file tersebut.

Demikian pula, saya tahu postfix melihat smtpd.conffile. Jika saya menambahkan lebih banyak mekanisme ke mech_listbaris file, saya melihat mekanisme tambahan yang diiklankan ketika saya terhubung ke daemon smtpd. Dan ketika saya menghapusnya, mereka pergi lagi. Jadi /etc/postfix/sasl/smtpd.confjelas mulai terbiasa.

Saya menguji keduanya dengan menggunakan klien surat yang sebenarnya dan secara manual berbicara ke server setelah membuat token dengan ini:

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

kemudian:

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

Percakapan yang dihasilkan adalah:

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

Tetapi jika saya malah terhubung ke the.oldsystem.com:587dan melakukan hal yang sama, saya mendapatkan:

235 2.7.0 Authentication successful

Output dari saslfinger pada mesin baru adalah:

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

Apa yang bisa saya lewatkan / lakukan salah? Sejauh yang saya tahu, semua konfigurasi adalah sama, namun tidak akan bekerja pada sistem yang baru.

Mekanika Kuantum
sumber

Jawaban:

15

Hadiahnya ada di sini:

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

The smtpdproses pada submissionpelabuhan berjalan dalam mode chroot (karena ada -di kolom yang berarti default (yang yes) berlaku sehingga tidak bisa melihat /etc/sasldb2.

Ketika saya menyalin /etc/sasldb2ke /var/spool/postfix/etcotentikasi mulai berfungsi dengan baik.

Mekanika Kuantum
sumber
3
Komentar ini mengakhiri kegilaan postfix malam ini. Juga perlu diingat bahwa menggunakan konfigurasi ini akan mengharuskan pengguna otentikasi menjadi pengguna @ $ myhostname, dan bukan hanya "pengguna". Itu berbeda antara ini dan konfigurasi exim saya yang serupa untuk relay terautentikasi.
David Dombrowsky
5

chroot adalah alasan yang pasti, namun untuk kasus saya, menyalin ke /var/spool/postfix/etctidak berfungsi.

Jadi saya baru saja menyingkirkan chroot dan itu berhasil untuk saya.

Untuk melakukan itu, Anda perlu mengedit /etc/postfix/master.cf cari baris berikut:

smtp      inet  n       -       -       -       -       smtpd

dan memodifikasinya sebagai berikut:

smtp      inet  n       -       n       -       -       smtpd
WawaBrother
sumber
4

Cara lain untuk menyinkronkan file sasldb2 ke jail chroot default postfix adalah dengan menambahkan tautan keras ke dalamnya:

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

Perhatikan bahwa symlink tidak berfungsi karena symlink tidak dapat diakses dari dalam jail tetapi hardlink bisa. Ini memiliki keunggulan daripada hanya menyalin file karena pengguna baru di masa depan dan perubahan kata sandi akan secara otomatis disinkronkan bahkan tanpa memuat ulang postfix.

Josh
sumber
Anda yang cantik, saya telah berhasil mendapatkan relay pengujian server 16 Ubuntu, jadi saya pikir saya hanya akan mengimplementasikan kembali perubahan saya pada server produksi Ubuntu 14 ... sepanjang hari mencoba hal-hal. Chroot adalah alasannya, tetapi mengubah menjadi tidak chroot memberikan hasil yang lebih buruk, jadi menjaga chroot dan menerapkan di atas memecahkan masalah saya.
mrjamesmyers