ubuntu 16.04 postfix dovecot active directory

Sziasztok!

Adott egy Active Directory szerver, valamint egy Ubuntu 16.04 szerver. Az utóbbira szeretnék egy levelezőszervert ami AD-val autentikál. Valamint AD-ból venné az e-mail címeket több különböző domain végződéssel, valamint a mail csoportokat. Próbálkozom egy ideje, de sajnos a dovecoton keresztül nem tudok bejelentkezni (No password returned (and no nopassword)).

ldap_virtual_recipients.cf: https://pastebin.com/1yktaqLP
ldap_virtual_aliases.cf: https://pastebin.com/FAHeWQgT
dovecot-ldap.conf.ext: https://pastebin.com/expSJBgP
main.cf: https://pastebin.com/E4K9Aghd
10-mail.conf: https://pastebin.com/zRmX1DdP
10-master.conf: https://pastebin.com/WsKLzryL
10-auth.conf: https://pastebin.com/5mJbMkZA
auth.ldap.conf.ext: https://pastebin.com/8rHwdmvx
mail.log: https://pastebin.com/trEqbqZs

Hozzászólások

Használj auth bind-ot a dovecot-ldap.conf.ext-ben (úgy mondjuk lehet, hogy nem tudod ugyanazt a fájl használni passdb-nek és userdb-nek):

auth_bind = yes
...
pass_attrs = sAMAccountName=user

https://wiki.dovecot.org/AuthDatabase/LDAP/AuthBinds

Így a jelszót átadja az LDAP szervernek ellenőrzésre, ami figyelembe veszi a másik fél világnyi lehetőséget, amiért el kéne küldenie a usert a francba (letiltott fiók, lejárt fiók, lejárt jelszó, ...).

BlackY
--
"en is amikor bejovok dolgozni, nem egy pc-t [..] kapcsolok be, hanem a mainframe-et..." (sj)

Köszi, ez jogos! Azóta az alábbi fájlok változtak.

ldap_virtual_recipients.cf: https://pastebin.com/faip1Ss8
ldap_virtual_aliases.cf: https://pastebin.com/VsrTTVj8
auth.ldap.conf.ext: https://pastebin.com/CGqGmrAr
10-mail.conf: https://pastebin.com/f263yw0Y
dovecot-ldap-pass.conf.ext: https://pastebin.com/2aRYZvBx

143-as porton be telnetelve betudok jelentkezni ezek után. Viszont most egy következő lépésnél akadtam el. Létrejönnek a könyvtárak bejelentkezés után. Viszont:

  • swaks --from bobesz@example.com --to bob@example2.com --server 127.0.0.1:25, ekkor nem érkezik meg a levél, a logban a következő látható: https://pastebin.com/rCzuXw5W
  • mutt -f /home/vmail/example2.com/bob/Maildir/ esetén a követlező hibaüzenetet kapom: /home/vmail/example2.com/bob/Maildir/ is not a mailbox.

Az MTA configot még átdobhatnád (nem tudom eldönteni, hogy milyen MTA-t használsz, a .cf miatt Postfix-re tippelek, de a logban sm-mta szerepel).
Egyébként én úgy használom, hogy a Postfix fogja a levelet, a saját virtual_mailbox_maps-ei szerint megnézi, léteznie kellene-e az adott címnek, ha igen, átveszi, és LMTP-n adja át a Dovecot-nak, végig a Dovecot-ra van bízva, hogy mit hol hogyan tárol.

BlackY
--
"en is amikor bejovok dolgozni, nem egy pc-t [..] kapcsolok be, hanem a mainframe-et..." (sj)

Ezt nem is figyeltem a logban. És ez volt a megoldás is. Sendmail-MTA futott a szerveren alapértelmezetten. Leállítottam, újraindítottam a postfixet és így most már működik.

A következő lépés az lenne, hogy bekonfigurálom a Cyrus SASL-t hozzá. A következő fájlokat módosítottam/hoztam létre:

smtpd.conf: https://pastebin.com/Di6jLkW6
saslauthd: https://pastebin.com/YcPUq4aM
saslauthd.conf: https://pastebin.com/3U7eDaup

Viszont itt megint csak auth probléma lép fel:

testsaslauthd -u bobesz@example.com -p secret -f /var/spool/postfix/var/run/saslauthd/mux

Ez a válasz: 0: NO "authentication failed"

valamint, auth.log: https://pastebin.com/0uRaBsSu

Ez esetben mit nézhettem be? :/

Ne cyrus sasl-el játsz, ha Dovecot-ot használsz: a Dovecot is tud SASL szerverként funkcionálni, a Postfix meg ismeri, hogyan kell vele beszélgetni: https://wiki.dovecot.org/HowTo/PostfixAndDovecotSASL

BlackY
--
"en is amikor bejovok dolgozni, nem egy pc-t [..] kapcsolok be, hanem a mainframe-et..." (sj)

A következő fájlokat módosítottam:

main.cf: https://pastebin.com/LSqzpDtA
master.cf: https://pastebin.com/8ECGVCYy

Mikor próbálok csatlakozni az smtp-hez (postfix) a következő üzenetet kapom: 554 5.7.1 : Client host rejected: Access denied

mail.log: https://pastebin.com/j0xL217j

Telnettel próbálsz belépni? Próbálj ki egy telnettel vagy openssl s_client -connect [ip]:21 -starttls smtp -vel belépni , aztán végigjátszani egy teljes SMTP tranzakciót (EHLO, MAIL FROM, ...) és nézd meg, hogy melyik ponton küld el a szerver. (BTW, én a standard SMTP porton nem engednék hitelesíteni, csak a submission-ön [587], ott viszont megkövetelt starttls-sel)

BlackY
--
"en is amikor bejovok dolgozni, nem egy pc-t [..] kapcsolok be, hanem a mainframe-et..." (sj)

Közvetlenül indítás után nem ír a logokba bármit a TLS-ről? Mert eszerint a szerver fel se ajánlja. Próbáld ki telnettel is, de addig is:

smtpd_helo_restrictions =
permit_mynetworks
check_helo_access pcre:/etc/postfix/identitycheck.pcre
reject_invalid_hostname

Az identititycheck.pcre-ben mi van? Ill. Postfix 2.3-tól a reject_invalid_hostname helyett a reject_invalid_helo_hostname van.

BlackY
--
"en is amikor bejovok dolgozni, nem egy pc-t [..] kapcsolok be, hanem a mainframe-et..." (sj)

Oh... meg van.

A master.cf-ben van egy ilyened: -o smtpd_client_restrictions=permit_sasl_authenticated,reject

Amikor a client_restrictions-t nézi, még nem tudtál autholni, ezért eldobja a kapcsolatot. Az smtpd_sender_restrictions-ben nézd, hogy autholt-e (amire az ott levő reject_sender_login_mismatch elvileg elég is).

BlackY
--
"en is amikor bejovok dolgozni, nem egy pc-t [..] kapcsolok be, hanem a mainframe-et..." (sj)

220 mail.example.com ESMTP Postfix (Ubuntu)
EHLO test.local
250-mail.example.com
250-PIPELINING
250-SIZE 10240000
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
STARTTLS
220 2.0.0 Ready to start TLS
AUTH LOGIN

Connection to host lost.

Valamint mail.log:
Jun 7 16:45:45 mail postfix/submission/smtpd[2716]: SSL_accept error from unknown[myIP]: -1
Jun 7 16:45:45 mail postfix/submission/smtpd[2716]: warning: TLS library problem: error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol:s23_srvr.c:640:
Jun 7 16:45:45 mail postfix/submission/smtpd[2716]: lost connection after STARTTLS from unknown[myIP]
Jun 7 16:45:45 mail postfix/submission/smtpd[2716]: disconnect from unknown[myIP] ehlo=1 starttls=0/1 commands=1/2

Kicsit sajnos hanyagolnom kellett ezt pedig már használnám :/ na mindegy.

Igen rájöttem amint megírtam az előző hsz-em.

A követkető parancsot adtam ki:

openssl s_client -connect 127.0.0.1:587 -starttls smtp

a handshake-en kivül a következőt láttam:

depth=0 C = XX, ST = XX, L = XX, O = XX, OU = XX, CN = XX, emailAddress = XX
verify error:num=18:self signed certificate
verify return:1
depth=0 C = XX, ST = XX, L = XX, O = XX, OU = XX, CN = XX, emailAddress = XX
verify return:1
250 DSN
read:errno=0

Kipróbáltam outlookal is, ott elsőre feldobta a certet, hogy nem megbízható. Erre számítottam is. Elfogadtam had menjen tovább, de:

Bejelentkezés a bejövő levelek kiszolgálójára (IMAP): Nem sikerült biztonságos kapcsolatot létrehozni a kiszolgálóval.

Tesztüzenet küldése: A kiszolgálóval létesített kapcsolat megszakadt. Ha a probléma továbbra is fennáll, forduljon a kiszolgáló rendszergazdájához vagy internetszolgáltatójához.