Question Erreur TLS Postfix


Je travaille avec une configuration Postfix / Dovecot / Roundcube, avec pour objectif un système de messagerie d'utilisateur virtuel capable d'envoyer des messages via Internet, comme indiqué dans la documentation. ici.

Tout semble bien fonctionner. Pigeonnier ne montre aucun problème, je peux telnet dans tous mes ports; Cependant, chaque fois que j'essaie d'envoyer un courrier via Roundcube, j'obtiens l'erreur suivante:

SMTP Error (220): Authentication failed.

Et des journaux:

[17-Jan-2015 05:27:31 +0000]: SMTP Error: SMTP error: Authentication failure: STARTTLS failed (Code: ) in /usr/share/webapps/roundcubemail/program/lib/Roundcube/rcube.php on line 1505 (POST /roundcube/?_task=mail&_unlock=loading1421472451594&_lang=en_US&_framed=1?_task=mail&_action=send)

J'ai pensé que puisque Postfix est responsable de SMTP, ce doit être le coupable. Je vois dans mes logs Postfix:

Jan 16 21:14:35 steelhorse postfix/smtpd[18426]: disconnect from localhost.localdomain[127.0.0.1]
Jan 16 21:14:35 steelhorse postfix/smtpd[18426]: lost connection after STARTTLS from localhost.localdomain[127.0.0.1]
Jan 16 21:14:35 steelhorse postfix/smtpd[18426]: warning: TLS library problem: error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca:s3_pkt.c:1293:SSL alert number
Jan 16 21:14:35 steelhorse postfix/smtpd[18426]: SSL_accept error from localhost.localdomain[127.0.0.1]: 0

Mon certificat SSL est signé avec localhost en tant que CN car cela corrigeait un problème différent que j'avais. Postfix a été défini avec le paramètre $ myhostname sur mail. [Mydomain] et avec Afraid DynDNS, j'ai défini un enregistrement A pour mail.mydomain ainsi qu'un enregistrement MX ayant la forme 1: mail. [Mydomain]. J'ai essayé de régler tout cela sur [mon domaine] et cela n'a pas fonctionné. Une session telnet ressemble à ceci:

telnet [mydomain] 587
Trying [myip]...
Connected to [mydomain].
Escape character is '^]'.
220 [mydomain] ESMTP Postfix
ehlo [mydomain]
250-[mydomain]
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

Mon Postfix main.cf (n'incluant pas la plupart des lignes par défaut):

#soft_bounce = no
queue_directory = /var/spool/postfix
command_directory = /usr/bin
daemon_directory = /usr/lib/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
#default_privs = nobody
myhostname = [mydomain]
#myhostname = virtual.domain.tld
mydomain = [mydomain]
#myorigin = $myhostname
myorigin = $mydomain
#inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
#proxy_interfaces =
#proxy_interfaces = 1.2.3.4
#mydestination = $myhostname, localhost.$mydomain, localhost
...
#local_recipient_maps = unix:passwd.byname $alias_maps
unknown_local_recipient_reject_code = 550
#mynetworks_style = class
#mynetworks_style = subnet
mynetworks_style = host
#mynetworks = 168.100.189.0/28, 127.0.0.0/8
#mynetworks = $config_directory/mynetworks
#mynetworks = hash:/etc/postfix/network_table
#relay_domains = $mydestination
#relayhost = $mydomain
...
relay_domains = *
virtual_alias_maps = proxy:mysql:/etc/postfix/virtual_alias_maps.cf
virtual_mailbox_domains = proxy:mysql:/etc/postfix/virtual_mailbox_domains.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/virtual_mailbox_maps.cf
virtual_mailbox_base = /home/vmail
virtual_mailbox_limit = 512000000
virtual_minimum_uid = 5000
virtual_transport = virtual
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
local_transport = virtual
local_recipient_maps = $virtual_mailbox_maps
transport_maps = hash:/etc/postfix/transport

smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = /var/run/dovecot/auth-client
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated,     reject_unauth_destination
smtpd_sasl_security_options = noanonymous
smtpd_sasl_tls_security_options = $smtpd_sasl_security_options
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /etc/ssl/private/server.crt
smtpd_tls_key_file = /etc/ssl/private/server.key
smtpd_sasl_local_domain = $mydomain
broken_sasl_auth_clients = yes
smtpd_tls_loglevel = 1

J'ai également essayé de définir le smtp_conn_options Roundcube sur null selon ici. Je ne sais vraiment pas si le problème réside dans les enregistrements DNS, le certificat SSL ou quoi. Toute aide serait appréciée!

METTRE À JOUR

Après avoir défini mon Roundcube conf.inc.php sur verify_peer (_name) = false

/* Local configuration for Roundcube Webmail */
$config['db_dsnw'] = 'mysql://roundcube_user:steelcube@localhost/roundcube_db';
$config['default_host'] = 'ssl://localhost/';
$config['default_port'] = 993;
$config['smtp_server'] = 'tls://localhost/';
$config['smtp_user'] = '%u';
$config['smtp_pass'] = '%p';
$config['smtp_auth_type'] = 'LOGIN';
$config['smtp_conn_options'] = null;
$config['imap_conn_options'] = array(
  'ssl'         => array(
     'verify_peer'  => false,
     'verfify_peer_name' => false,
   ),
);
$config['smtp_conn_options'] = array(
  'ssl'         => array(
     'verify_peer'      => false,
     'verify_peer_name' => false,
  ),
);

$config['smtp_port'] = 587;
$config['support_url'] = '';
$config['des_key'] = '[secret]';
$config['plugins'] = array('archive', 'zipdownload');
$config['mime_types'] = '/etc/httpd/conf/mime.types';

Cela me donne une nouvelle erreur SMTP Error (535): Authentication failed quand envoyer un email. Voici le contenu de l'erreur roundcube

[18-Jan-2015 02:58:06 UTC] PHP Deprecated:  Non-static method PEAR::raiseError() should not be called statically, assuming $this from incompatible context in /usr/share/webapps/roundcubemail/program/lib/Net/SMTP.php on line 371
[18-Jan-2015 02:58:06 UTC] PHP Deprecated:  Non-static method PEAR::raiseError() should not be called statically, assuming $this from incompatible context in /usr/share/webapps//roundcubemail/program/lib/Net/SMTP.php on line 371
[18-Jan-2015 02:58:06 +0000]: SMTP Error: SMTP error: Failed to set sender /roundcubemail/program/lib/Net/SMTP.php on line 371'[username]@[mydomain]' in /usr/share/webapps/roundcubemail/program/lib/Roundcube/rcube.php on line 1505 (POST /roundcube/?_task=mail&_unlock=loading1421549886598&_lang=en_US&_framed=1?_task=mail&_action=send)

Et entrée de maillog

Jan 18 20:18:21 steelhorse postfix/smtpd[1942]: connect from localhost.localdomain[127.0.0.1]
Jan 18 20:18:21 steelhorse postfix/smtpd[1942]: Anonymous TLS connection established from localhost.localdomain[127.0.0.1]: TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128    
Jan 18 20:18:21 steelhorse postfix/smtpd[1942]: warning: localhost.localdomain[127.0.0.1]: SASL LOGIN authentication failed: Invalid authentication mechanism
Jan 18 20:18:21 steelhorse postfix/smtpd[1942]: disconnect from localhost.localdomain[127.0.0.1]

Comme demandé dans bavarder, c'est la sortie de dovecot -a | grep auth_mechanism

auth_mechanisms = plain 

5
2018-01-17 05:43


origine


Ressemble à cette question. Voyez si les réponses vous aident. - Michael Hampton♦
Si l’autre réponse ne vous aide pas, veuillez poster les configurations de roundcube et postfix. - sebix
Merci Michael, a vu cela et a essayé la solution sans succès. Et masegaloeh, dites-vous que je devrais répéter le tableau que j'ai pour IMAP dans les options de connexion SMTP? - steelcowboy
En fait, je viens d’essayer et j’obtiens maintenant: Erreur SMTP (535): L’authentification a échoué. - steelcowboy
Vous devez définir smtp_conn_options et non pas imap_conn_options. Définissez smtp_conn_options avec verify_peer (_name) = false - masegaloeh


Réponses:


OK semble indiquer qu'il y a trop de différences dans la configuration de postfix, roundcube et pigeonnier. Décomposons un par un.

Erreur STARTTLS

Cette ligne de journal

warning: TLS library problem: error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca:s3_pkt.c:1293:SSL alert number 

a indiqué que PHP ne parvient pas à vérifier le certificat homologue car l'autorité de certification est inconnue. C'est exactement le problème de double avec cette question: Roundcube & Postfix SMTP: Routines SSL: SSL3_READ_BYTES: Alerte tlsv1 inconnue ca: s3_pkt.c. Et à partir de la question que vous avez déjà résolue, ajoutez ces lignes dans roundcube

$config['smtp_conn_options'] = array(
  'ssl'         => array(
     'verify_peer'      => false,
     'verify_peer_name' => false,
  ),
);

L'authentification a échoué

Pour ce faire, nous devons rechercher dans les journaux postfix et roundcube les problèmes. Le vrai message a été capturé dans le fichier journal postfix

Jan 18 20:18:21 steelhorse postfix/smtpd[1942]: warning: localhost.localdomain[127.0.0.1]: SASL LOGIN authentication failed: Invalid authentication mechanism

Maintenant, parce que le mécanisme postfixé SASL a été fourni par dovecot, vous devez vérifier le mécanisme proposé par dovecot par exécution. dovecot -a | grep auth_mechanism.

En regardant roundcube $config['smtp_auth_type'] et pigeonnier auth_mechanisms config, vous pouvez voir une disparité entre ces deux. Dovecot propose uniquement le mécanisme PLAIN. Mais le roundcube était configuré pour utiliser le mécanisme LOGIN.

La solution peut être un ou les deux


7
2018-01-21 23:53



Cela a résolu mon problème, je peux m'envoyer des mails en interne! Le seul problème est que Postfix ne peut ni envoyer de courrier électronique à Gmail, ni recevoir de courrier électronique, bien que ce soit probablement un problème lié à un enregistrement Postfix / MX / domaine incorrect. Mais merci beaucoup pour votre aide, un si petit problème sournois! - steelcowboy