Impossibile far funzionare SASL auxprop / sasldb con Postfix / Ubuntu 12.04


9

Ho un sistema Ubuntu 8.04LTS con Postfix 2.5.1. Su quel sistema AUTH SMTP funziona bene . I contenuti di /etc/postfix/sasl/smtpd.confsono:

pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN

Le proprietà relative a SASL sono:

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

Quando lo faccio sudo sasldblistusers2ottengo:

authusername@mail.mydomain.com: userPassword

Come ho detto, tutto funziona bene sul sistema 8.04LTS.

Tuttavia, sto cercando di migrare questo su un sistema Ubuntu 12.04LTS che esegue Postfix 2.9.3 e non riesco proprio a farlo funzionare. Sto facendo tutto allo stesso modo, ma Postfix dà sempre errori di autenticazione.

Non è il /etc/sasldb2file. Ho provato a recuperare il file dal vecchio sistema e questo non funziona. E ho creato un nuovo file usando:

saslpasswd2 -c -u mail.mydomain.com authusername

e che non funziona, anche se SARÀ lavorare sul vecchio sistema se copio al vecchio sistema, che è come so che non c'è niente di sbagliato con il file.

Allo stesso modo, so che Postfix sta vedendo il smtpd.conffile. Se aggiungo più meccanismi alla mech_listriga del file, vedo quei meccanismi extra che vengono pubblicizzati quando mi collego al demone smtpd. E quando li rimuovo vanno via di nuovo. Quindi si /etc/postfix/sasl/smtpd.confsta chiaramente abituando.

Sto testando entrambi utilizzando un client di posta reale e parlando manualmente con il server dopo aver generato un token con questo:

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

poi:

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

La conversazione risultante è:

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

Ma se invece mi connetto the.oldsystem.com:587e faccio la stessa cosa, ottengo:

235 2.7.0 Authentication successful

L'output di saslfinger sulla nuova macchina è:

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

Cosa potrei perdere / fare di sbagliato? Per quanto ne so, tutta la configurazione è la stessa, ma non funzionerà sul nuovo sistema.

Risposte:


15

L'omaggio è qui:

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

Il smtpdprocesso sulla submissionporta è in esecuzione in modalità chroot (poiché -in quella colonna è presente un valore predefinito che indica che si yesapplica e che quindi non può essere visualizzato /etc/sasldb2.

Quando ho copiato /etc/sasldb2l' /var/spool/postfix/etcautenticazione ha iniziato a funzionare correttamente.


3
Questo commento ha posto fine alla follia postfissa di stasera. Inoltre, tieni presente che l'utilizzo di questa configurazione richiede che l'utente di autenticazione sia user @ $ myhostname e non solo "user". Questo è diverso tra questo e il mio simile exim config per l'inoltro autenticato.
David Dombrowsky,

5

chroot è sicuramente il motivo, tuttavia per il mio caso, la copia su /var/spool/postfix/etcnon ha funzionato.

Quindi mi sono appena liberato di Chroot e questo funziona per me.

Per fare ciò dovrai modificare /etc/postfix/master.cf individuare la seguente riga:

smtp      inet  n       -       -       -       -       smtpd

e modificarlo come segue:

smtp      inet  n       -       n       -       -       smtpd

4

Un altro modo per sincronizzare il file sasldb2 con la prigione chroot predefinita di postfix è aggiungere un link fisso ad esso:

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

Si noti che un collegamento simbolico non funzionerà perché non è possibile accedere ai collegamenti simbolici dall'interno della prigione, ma i collegamenti fisici possono farlo. Questo ha il vantaggio rispetto alla semplice copia del file perché i futuri nuovi utenti e le modifiche della password verranno sincronizzati automaticamente senza nemmeno un postfix.


Bellezza, ero riuscito a ottenere un server di test Ubuntu 16 inoltro, quindi ho pensato di implementare nuovamente le mie modifiche sul server di produzione Ubuntu 14 ... tutto il giorno a provare. Chroot era la ragione, ma cambiare per non essere chroot ha dato risultati peggiori, quindi mantenere chroot e implementare sopra ha risolto i miei problemi.
mrjamesmyers,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.