Postfixadmin (postfix + dovecot) help

 ( neutrino | 2019. február 1., péntek - 11:18 )

Sziasztok,

A segítségeteket szeretném kérni az alábbi hibával kapcsolatban.

Postfixadmint szeretnék használni egy levelezőszerver virtuális userejeinek a kezelésére.

Eme leirást követve feltelepitettem: https://www.rosehosting.com/blog/setup-and-configure-a-mail-server-with-postfixadmin/

Annyi különbséggel, hogy nem nginx hanem Apache2.4 van alatta (Ubuntu 18.04).

A postfixadmin irogatja az adatbázisba a bejegyzéseket szépen, viszont nem generál mailboxot a /var/vmail folderba.

A log ilyennel van tele:

/var/log/mail.err
Feb 1 10:06:01 hostname dovecot: auth-worker(18766): Error: sql(neut@domainom.hu): User query failed: FUNCTION postfixadmin.printf does not exist
Feb 1 10:06:01 hostname dovecot: lmtp(neut@domainom.hu): Error: user

: Auth USER lookup failed


/var/log/mail.log
Feb 1 10:11:01 hostname dovecot: lmtp(neut@domainom.hu): Error: user

: Auth USER lookup failed
Feb 1 10:11:01 hostname postfix/lmtp[19224]: 1FCDB256ED: to=, orig_to=, relay=domainom.hu[private/dovecot-lmtp], delay=0.01, delays=0/0/0/0, dsn=4.3.0, status=deferred (host domainom.hu[private/dovecot-lmtp] said: 451 4.3.0 Internal error occurred. Refer to server log for more information. (in reply to RCPT TO command))
Feb 1 10:11:01 hostname dovecot: lmtp(19124): Disconnect from local: Successful quit

Ha roundcube-ból próbálok belépni a fiókba, akkor "Connection to storage server failed" üzenetet kapok, logban pedig ezt:
/var/log/roundcube/errors

[01-Feb-2019 10:16:20 +0100]: <2dne952v> IMAP Error: Login failed for

from 192.168.1.86. Wrong startup greeting (localhost:110): +OK Dovecot ready. in /usr/share/roundcube/program/lib/Roundcube/rcube_imap.php on line 196 (POST /roundcube/?_task=login&_action=login)

Valaki találkozott már ezzel?

Előre is köszönöm.

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Nem ismerem nagyon a postfixet, sem a postfixadmint, de a hibaüzenetek olyanok, mintha nem is konfigurálódnának rendben a fiókok.
Biztos, hogy az adatbázisbejegyzések jól jönnek létre, és jól hivatkozol az adatbázisra?
A dovecot az "lda_mailbox_autocreate = yes" beállítással automatán létrehozza a mailbox mappáját, ha az nincs. Ha ezt bekapcsolod, kiderül, hogy tényleg csak ez hiányzik-e neki, de félek nem.
Továbbá a dovecot elég durván tud debug logot is készíteni, az alapján szinte biztos meg tudod találni, hol csúszik el a rendszer.

ha egy kicsit több logentry lenne, talán előrébb lennénk, pastebin-re mehetne.

Szerintem a postfix / postfixadmin *.cf -ben van valami elírva, tippre. Első körben.
Vagy a postfixadmin confja nem tökéletes.

Ha van lehetőség, akkor pastebinre bővebb logot lőjj fel, és nem ezt a két sort. :) Esetleg postfix / dovecot start logja is érdekes lehet.

Üdv

A Dovecot user_query valószínűleg hibás. Próbáld meg a query-t közvetlenül kiadni az adatbázisnak. Úgy működik?

mysql> SELECT '/home/vmail/%d/%n' as home, 'maildir:/home/vmail/%d/%n' as mail, \
-> 150 AS uid, 8 AS gid, printf('dirsize:storage=', quota) AS quota \
-> FROM mailbox WHERE username = '%u' AND active = '1';
ERROR 1305 (42000): FUNCTION postfixadmin.printf does not exist

-------------------------
Dropbox refer - mert kell a hely: https://db.tt/V3RtXWLl
neut @ présház

id vmail mit ad ki? biztos jó a jogosultság? azaz a fenti 150 as uid és a 8 as gid az jó?
Valamint a /var/vmail jó user/group joggal van?

szerintem a printf részt egyelőre hagyd ki ", printf('dirsize:storage=', quota) AS quota" ezt a teljes részt.

Amúgy a Dovecot-nak kell mappát létrehoznia nem a pfadmin-nak! Létrehozás pedig vagy egy IMAP/POP hozzáféréskor vagy Postfix -> DovecotLDA azaz beérkező levél esetén kerül létrehozásra.

Ezt úgy lehet "kierőszakolni" hogy a Pfadmin küld egy Welcome üzenetet a létrehozott fiók felhasználójának.

id vmail
uid=150(vmail) gid=8(mail) groups=8(mail)

Na igen, ha kiszedem belőle a "printf('dirsize:storage=', quota) AS quota"-t, akkor működik. Létre is jön a mailbox.

Már csak a roundcube-al van nyűg, küldeni nem enged, mondván "SMTP Error (250): Authentication failed."

04-Feb-2019 11:37:25 +0100]: <6v983fca> SMTP Error: Authentication failure: SMTP server does not support authentication (Code: ) in /usr/share/roundcube/program/lib/Roundcube/rcube.php on line 1667 (POST /roundcube/?_task=mail&_unlock=loading1549276644851&_lang=undefined&_framed=1&_action=send)

/etc/postfix/main.cf

Melyik configról kértek pastebint?

-------------------------
Dropbox refer - mert kell a hely: https://db.tt/V3RtXWLl
neut @ présház

Ahogy irja, az SMTP szerver nem támogatja az authentikációt.

Két megoldás is lehet:
1. ha ugyanazon a gépen fut a roundcube, mint a postfix, és a mynetworks -be felveszed (alapból benne van) a 127.0.0.1 -et, akkor a roundcube-ban kikapcsolhatod az SMTP authot.
2. SMTP authentikációt bekapcsolod a postfixben. Ezt többféleképpen lehet, attól függően, hogy milyen egyéb komponenseket (pl. dovecot) használsz.

Próbálkoztam, viszont nem sikerült működésre birni, vagy akár csak egy kicsit bővebb hibaüzenetet kicsikarni belőle

dovecot auth.conf
dovecot master.conf
postfix master.cf

-------------------------
Dropbox refer - mert kell a hely: https://db.tt/V3RtXWLl
neut @ présház

ezt probald meg kikommentelni a dovecotban
# Auth process is run as this user.
user = $default_internal_user

(auth processt a postfix futtatja)

Nem segitett, ugyanaz:


An error occurred!SMTP Error (250): Authentication failed.

-------------------------
Dropbox refer - mert kell a hely: https://db.tt/V3RtXWLl
neut @ présház

az 1-es verzio mukodik? (auth kikapcsolva). A roundcube config is kellene. pl mi szerepel $config['smtp_server'] ertekekent?

a postfix master.cf alapjan valami ilyesmi kellene oda:
$config['smtp_server'] = 'ssl://domainem.hu:465'; (vagy)
$config['smtp_server'] = 'tls://domainem.hu:587';

Nope.

roundcube smtp conf

Próbáltam ssl/tls://localhost-al és változataival, de ugyanaz.

upd:

Közelebb jutottam, az SSl okozza a mókát


Feb 08 10:39:45 imap-login: Info: Disconnected (no auth attempts in 2 secs): user=<>, rip=127.0.0.1, lip=127.0.0.1, TLS handshaking: SSL_accept() failed: error:1408F10B:SSL routines:ssl3_get_record:wrong version number

#openssl s_client -connect localhost:587 -tls1_2
CONNECTED(00000003)
139633700721088:error:1408F10B:SSL routines:ssl3_get_record:wrong version number:../ssl/record/ssl3_record.c:252:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 5 bytes and written 176 bytes
Verification: OK
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
Protocol : TLSv1.2
Cipher : 0000
Session-ID:
Session-ID-ctx:
Master-Key:
PSK identity: None
PSK identity hint: None
SRP username: None
Start Time: 1549621052
Timeout : 7200 (sec)
Verify return code: 0 (ok)
Extended master secret: no
---

993-ra viszont tudok csatlakozni.

-------------------------
Dropbox refer - mert kell a hely: https://db.tt/V3RtXWLl
neut @ présház

Erre lenne ötleted?

Sajnos nem tudom működésre birni. Mobilról beállitva a fiókot, a kimenő levél kiszolgálónál elhasal, mondván "Az e-mail biztonsága nem garantált. Hiba történt a fiók védelmének beállitásakor. Előfordulhat, hogy nem támogatott a lehető legerősebb védelem".


/etc/dovecot# openssl s_client -connect localhost:587 -tls1_2
CONNECTED(00000003)
139660538020288:error:1408F10B:SSL routines:ssl3_get_record:wrong version number:../ssl/record/ssl3_record.c:252:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 5 bytes and written 176 bytes
Verification: OK
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
Protocol : TLSv1.2
Cipher : 0000
Session-ID:
Session-ID-ctx:
Master-Key:
PSK identity: None
PSK identity hint: None
SRP username: None
Start Time: 1549962612
Timeout : 7200 (sec)
Verify return code: 0 (ok)
Extended master secret: no
---

-------------------------
Dropbox refer - mert kell a hely: https://db.tt/V3RtXWLl
neut @ présház

a 465 (smtps) porton is fennal a hiba? (master.cf alapjan kellene mennie) Egy gyors google utan: This error occurs when the peer responds with something that doesn't look like TLS.

yup


etc/dovecot# openssl s_client -connect localhost:465 -tls1_2
CONNECTED(00000003)
139873277444544:error:1408F10B:SSL routines:ssl3_get_record:wrong version number:../ssl/record/ssl3_record.c:252:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 5 bytes and written 176 bytes
Verification: OK
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
Protocol : TLSv1.2
Cipher : 0000
Session-ID:
Session-ID-ctx:
Master-Key:
PSK identity: None
PSK identity hint: None
SRP username: None
Start Time: 1549976983
Timeout : 7200 (sec)
Verify return code: 0 (ok)
Extended master secret: no
---

-------------------------
Dropbox refer - mert kell a hely: https://db.tt/V3RtXWLl
neut @ présház

Nem világos, hogy miért -tls1_2 -el próbálsz kapcsolódni

így működik?
openssl s_client -connect smtp.domain.tld:587 -starttls smtp

már nem érhető el a config a pastebin-en :-(

mi van akkor, ha a roundcube-nál a phpmail-ra bízod magad?

// If left blank, the PHP mail() function is used
$rcmail_config['smtp_server'] = '';
$rcmail_config['smtp_port'] = 25;
$rcmail_config['smtp_user'] = '';
$rcmail_config['smtp_pass'] = '';
$rcmail_config['smtp_auth_type'] = '';
$rcmail_config['smtp_auth_cid'] = null;
$rcmail_config['smtp_auth_pw'] = null;
$rcmail_config['smtp_helo_host'] = '';

A hibaüzenet alapján olyan, mintha a Dovecot által használt SQlite motor nem ismerné a "printf" függvényt, és keresné az adatbázisban tárolt eljárás/függvény-ként ("postfixadmin.printf"), de nem találná ott sem (nyilván ilyen nincs).

hajtsd vegre ezt a query-t a db-n:

SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = printf('%u', '@', alias_domain.target_domain) AND alias.active = 1 AND alias_domain.active='1';

behelyettesitve a %d es %u parametereket. Kapsz hibat?

--
O1G = orbanegygeci

Valószinűleg a holnapi nap folyamán odajutok a géphez és teszek fel bővebb logot, configot. Köszönöm a tanácsokat.
-------------------------
Dropbox refer - mert kell a hely: https://db.tt/V3RtXWLl
neut @ présház

Jelenleg eljutottam odáig, hogy már dob konkrét hibaüzenetet roundecube küldésnél, viszont a google nem segitett a megoldásában:

/var/log/roundcube/errors
[11-Feb-2019 11:29:11 +0100]: SMTP Error: Authentication failure: Invalid response code received from server (Code: 535) in /usr/share/roundcube/program/lib/Roundcube/rcube.php on line 1667 (POST /roundcube/?_task=mail&_unlock=loading1549880949504&_lang=undefined&_framed=1&_action=send)

/var/log/roundcube/smtp
[11-Feb-2019 11:29:09 +0100]: Recv: 220 mail.domainem.hu ESMTP Postfix (Ubuntu) [Prepare for your destiny...]
[11-Feb-2019 11:29:09 +0100]: Send: EHLO 123.123.123.123
[11-Feb-2019 11:29:09 +0100]: Recv: 250-mail.domainem.hu
[11-Feb-2019 11:29:09 +0100]: Recv: 250-PIPELINING
[11-Feb-2019 11:29:09 +0100]: Recv: 250-SIZE 10240000
[11-Feb-2019 11:29:09 +0100]: Recv: 250-VRFY
[11-Feb-2019 11:29:09 +0100]: Recv: 250-ETRN
[11-Feb-2019 11:29:09 +0100]: Recv: 250-STARTTLS
[11-Feb-2019 11:29:09 +0100]: Recv: 250-AUTH DIGEST-MD5 CRAM-MD5
[11-Feb-2019 11:29:09 +0100]: Recv: 250-ENHANCEDSTATUSCODES
[11-Feb-2019 11:29:09 +0100]: Recv: 250-8BITMIME
[11-Feb-2019 11:29:09 +0100]: Recv: 250-DSN
[11-Feb-2019 11:29:09 +0100]: Recv: 250 SMTPUTF8
[11-Feb-2019 11:29:09 +0100]: Send: AUTH DIGEST-MD5
[11-Feb-2019 11:29:09 +0100]: Recv: 334 cmVhbG09IiIsbm9uY2U9IkthVFNpMDV3SmdWQ1ZuYWppZVZ2ZlE9PSIscW9wPSJhdXRoIixjaGFyc2V0PSJ1dGYtOCIsYWxnb3JpdGhtPSJtZDUtc2VzcyI=
[11-Feb-2019 11:29:09 +0100]: Send: ****** [300]
[11-Feb-2019 11:29:11 +0100]: Recv: 535 5.7.8 Error: authentication failed: cmVhbG09IiIsbm9uY2U9IkthVFNpMDV3SmdWQ1ZuYWppZVZ2ZlE9PSIscW9wPSJhdXRoIixjaGFyc2V0PSJ1dGYtOCIsYWxnb3JpdGhtPSJtZDUtc2VzcyI=
[11-Feb-2019 11:29:11 +0100]: Send: RSET
[11-Feb-2019 11:29:11 +0100]: Recv: 250 2.0.0 Ok
[11-Feb-2019 11:29:11 +0100]: Send: QUIT
[11-Feb-2019 11:29:11 +0100]: Recv: 221 2.0.0 Bye

mail.log
Feb 11 11:29:11 lsotrs02 postfix/smtpd[29865]: warning: localhost[127.0.0.1]: SASL DIGEST-MD5 authentication failed: cmVhbG09IiIsbm9uY2U9IkthVFNpMDV3SmdWQ1ZuYWppZVZ2ZlE9PSIscW9wPSJhdXRoIixjaGFyc2V0PSJ1dGYtOCIsYWxnb3JpdGhtPSJtZDUtc2VzcyI=

dovecot.log
Feb 11 11:29:09 auth-worker(29962): Info: sql(teszt1@mail.leadmail.hu,127.0.0.1): Requested DIGEST-MD5 scheme, but we have only MD5-CRYPT

update:
időközben javitottam a dovecot hibát, átállitottam a postfixadmin jelszó hashelését CRAM-MD5-re., a többi hiba továbbra is fennáll.

update2: megheggesztettem, küld, fogad, elszavlja a Szózatot.

Köszönöm a segitséget annak aki hozzászólt.
-------------------------
Dropbox refer - mert kell a hely: https://db.tt/V3RtXWLl
neut @ présház

Húzom ezt mint a rétest...

https://pastebin.com/U0SjBAK1

Mi a baj a certtel?
-------------------------
Dropbox refer - mert kell a hely: https://db.tt/V3RtXWLl
neut @ présház

esetleg még publikus cert-et és a ca lánc cert-et kilistázhatnád még pontosabban az alábbi fájlokat:
postconf smtpd_tls_CAfile smtpd_tls_cert_file
így:
openssl x509 -in /path/to/file.crt -text

persze csak a lényegi részekre gondoltam (-----BEGIN CERTIFICATE----- blokk, Signature Algorithm blokk, Modulus blokk felesleges helyet foglal, illetve amit úgy gondolsz azt kicsillagozod )

Jelenlegi configok:
postfix main.cf
master.cf
Docecot.conf
dovecot / 10-auth.conf
dovecot / 10-mail.conf
dovecot / 10-master.conf
dovecot / 10-ssl.conf
dovecot / 20-imap.conf
dovecot / 20-pop3-conf

Teszt:
openssl s_client -connect localhost:587 -starttls smtp

Mobilról felvéve a fiókot (IMAP) a bejövő szervernél figyelmeztet hogy önaláirt cert és megerősités után továbbenged. Viszont amikor a kimenő szerver beállitása jönne azt irja, hogy "Az email biztonsága nem garantált". Van egy mégse és egy módositás gomb.
A logba ez kerül:
Feb 28 10:15:18 lmail dovecot: imap-login: Warning: SSL alert: where=0x4004, ret=558: fatal certificate unknown [130.43.203.168]
Feb 28 10:15:32 lmail postfix/smtps/smtpd[48458]: initializing the server-side TLS engine
Feb 28 10:15:33 lmail postfix/smtps/smtpd[48458]: connect from apn-130-43-203-168.vodafone.hu[130.43.203.168]
Feb 28 10:15:33 lmail postfix/smtps/smtpd[48458]: lost connection after CONNECT from apn-130-43-203-167.vodafone.hu[130.43.203.168]
Feb 28 10:15:33 lmail postfix/smtps/smtpd[48458]: disconnect from apn-130-43-203-168.vodafone.hu[130.43.203.168] commands=0/0
Feb 28 10:15:33 lmail postfix/smtps/smtpd[48458]: connect from apn-130-43-203-168.vodafone.hu[130.43.203.168]
Feb 28 10:15:33 lmail postfix/smtps/smtpd[48458]: lost connection after CONNECT from apn-130-43-203-168.vodafone.hu[130.43.203.168]
Feb 28 10:15:33 lmail postfix/smtps/smtpd[48458]: disconnect from apn-130-43-203-168.vodafone.hu[130.43.203.168] commands=0/0

Ezután kézzel átállitom 587-re és Startssl-re, ekkor már azt irja a telefon hogy "Nem érvényes a tanusitvány" (mégse / módositás)
Logba ez kerül:
https://pastebin.com/X3DAU455

openssl x509 -in /etc/ssl/certs/mail.domain.hu.crt -text

-------------------------
Dropbox refer - mert kell a hely: https://db.tt/V3RtXWLl
neut @ présház

szerintem a tanúsítvány nem az igazi... legalábbis ha jó is, nem megfelelően akarod a kapcsolódáskor használni, azaz lehet szükséged van kiterjesztett extension-re is.

Pl a fenti tesztnél localhost -ot írtál közben a CN nem a localhost-ról szól valamint nincs SAN rész a cert-ben ahol localhost is lenne....

pl esetemben így nézne ki a -text kimenetelénél az Exponent sor alatt -persze én CA-t csinálnék előtte, ami CA:TRUE és az írná alá a tanúsítványt CA:FALSE extension-el és nem self-signed-ot csinálnék egy publikus szolgáltatáshoz... ha már az ingyenes út a cél, akkor lehet inkább Let's encrypt, de ez most mindegy.

Az alternatív DNS-nél nem feltétlen kell wildcard (*), hanem lehet név szerint is felsorolva mail.domain.hu, smtp.domain.hu stb és IP is csak minta, hogy valid legyen ha nem névvel kapcsolódsz hanem IP-vel. Az SNI használja ezen SAN-okat, így valídnak kellene lennie.
X509v3 extensions:
X509v3 Basic Constraints: critical
CA:FALSE
X509v3 Subject Alternative Name:
DNS:*.domain.hu, DNS:domain.hu, IP Address:1.2.3.4
X509v3 Extended Key Usage:
TLS Web Server Authentication
X509v3 Key Usage: critical
Digital Signature, Key Encipherment
X509v3 Subject Key Identifier:
XX:XX:XX:XX:XX.....
X509v3 Authority Key Identifier:
XX:XX:XX:XX:XX......

Ha saját CA-t csinálsz, akkor azt jobb, szebb betenni a kliensekbe hogy megbízható, mint a selfsigned-et, ráadásul más SSL alkalmazáshoz (nem csak a levelezéshez) fel tudod használni.
Alternatíva persze a Lets encrypt, mint írtam.

Szerintem az SNI és SAN... esetleg még néhány certification usage megkötés miatt nem működik neked egyes klienseken a kommunikáció.

a dovecot / 10-ssl.conf -nél nekem furcsa, hogy van ssl_ca rész, de mintha a cert és a kulcs-nak már nincs köze ahhoz a CA-hoz.... vagy legalábbis eddig nem derült ki, hogy mondjuk a selfsigned miatt lecserélted volna azt a fájlt a generált cert-re