Je viens de suivre ce tutoriel pour configurer un serveur de messagerie postfix avec dovecot et mysql comme backend pour les utilisateurs virtuels.
Maintenant que je fais travailler la plupart des pièces, je peux me connecter à POP3 (S) et IMAP (S).
En utilisant
echo TEST-MAIL | mail myaccount@hotmail.com
fonctionne bien, lorsque je me connecte à mon compte hotmail, il affiche l'e-mail.
Cela fonctionne également en sens inverse, donc mon entrée MX pour example.com a finalement été propagée, donc je suis en mesure de recevoir des e-mails envoyés de myaccount@hotmail.com à myvirtualuser@example.com et de les visualiser dans Thunderbird en utilisant STARTTLS via IMAP.
Faire un peu plus de recherche après avoir reçu le message d'erreur " 5.7.1: Accès au relais refusé " lorsque j'essaie d'envoyer des mails à myaccount@hotmail.com en utilisant Thunderbird étant connecté à myvirtualuser@example.com , j'ai compris que mon serveur agissait comme un "Open Mail Relay", ce qui - bien sûr - est une mauvaise chose.
En creusant davantage dans les parties facultatives du tutoriel comme ce commentaire et l'autre turorial , j'ai décidé de terminer ces étapes également pour pouvoir envoyer des mails via myvirtualuser@example.com via Mozilla Thunderbird, sans obtenir le message d'erreur " 5.7.1 : Accès relais refusé "(car les serveurs de messagerie courants rejettent les e-mails relayés ouverts).
Mais maintenant, je suis tombé sur une erreur en essayant de faire fonctionner Postfix avec SMTPS, dans /var/log/mail.log, il lit
Sep 28 17:29:34 domain postfix/smtpd[20251]: warning: cannot get RSA private key from file /etc/ssl/certs/postfix.pem: disabling TLS support
Sep 28 17:29:34 domain postfix/smtpd[20251]: warning: TLS library problem: 20251:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:650:Expecting: ANY PRIVATE KEY:
Sep 28 17:29:34 domain postfix/smtpd[20251]: warning: TLS library problem: 20251:error:140B0009:SSL routines:SSL_CTX_use_PrivateKey_file:PEM lib:ssl_rsa.c:669:
Cette erreur est enregistrée juste après que j'essaie d'envoyer un courrier à partir de mon serveur de messagerie nouvellement installé en utilisant SMTP SSL / TLS via le port 465 dans Thunderbird. Thunderbird me dit alors qu'un timeout s'est produit.
Google a quelques résultats concernant ce problème, mais je n'ai pas pu le faire fonctionner avec aucun d'entre eux. Je voudrais lier certains d'entre eux ici, mais en tant que nouvel utilisateur, je ne suis autorisé à utiliser que deux hyperliens.
Mon /etc/postfix/master.cf ressemble
smtp inet n - - - - smtpd
smtps inet n - - - - smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
et nmap me dit
PORT STATE SERVICE
[...]
465/tcp open smtps
[...]
mon /etc/postfix/main.cf ressemble
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
append_dot_mydomain = no
readme_directory = no
#smtpd_tls_cert_file = /etc/ssl/certs/postfix.pem #default postfix generated
#smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key #default postfix generated
smtpd_tls_cert_file = /etc/ssl/certs/postfix.pem
smptd_tls_key_file = /etc/ssl/private/postfix.pem
smtpd_use_tls = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smptd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
myhostname = example.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = localhost.com, localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1
mailbox_command = /usr/lib/dovecot/deliver
Les fichiers * .pem ont été créés comme décrit dans le tutoriel ci-dessus, en utilisant
Postfix
To create a certificate to be used by Postfix use:
openssl req -new -x509 -days 3650 -nodes -out /etc/ssl/certs/postfix.pem -keyout /etc/ssl/private/postfix.pem
Do not forget to set the permissions on the private key so that no unauthorized people can read it:
chmod o= /etc/ssl/private/postfix.pem
You will have to tell Postfix where to find your certificate and private key because by default it will look for a dummy certificate file called "ssl-cert-snakeoil":
postconf -e smtpd_tls_cert_file=/etc/ssl/certs/postfix.pem
postconf -e smtpd_tls_key_file=/etc/ssl/private/postfix.pem
Je pense que je n'ai pas besoin d'inclure /etc/dovecot/dovecot.conf ici, car la connexion via imaps et pop3s fonctionne bien selon les journaux. Le seul problème est que postfix utilise correctement les certificats auto-générés et auto-signés.
Toute aide appréciée!
EDIT: Je viens d'essayer ce tutoriel différent sur la génération d'un certificat auto-signé pour postfix, obtenant toujours la même erreur. Je ne sais vraiment pas quoi tester d'autre.
J'ai également vérifié les bibliothèques SSL, mais tout semble aller bien:
root@domain:~# ldd /usr/sbin/postfix
linux-vdso.so.1 => (0x00007fff91b25000)
libpostfix-global.so.1 => /usr/lib/libpostfix-global.so.1 (0x00007f6f8313d000)
libpostfix-util.so.1 => /usr/lib/libpostfix-util.so.1 (0x00007f6f82f07000)
libssl.so.0.9.8 => /usr/lib/libssl.so.0.9.8 (0x00007f6f82cb1000)
libcrypto.so.0.9.8 => /usr/lib/libcrypto.so.0.9.8 (0x00007f6f82910000)
libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0x00007f6f826f7000)
libdb-4.8.so => /usr/lib/libdb-4.8.so (0x00007f6f8237c000)
libnsl.so.1 => /lib/libnsl.so.1 (0x00007f6f82164000)
libresolv.so.2 => /lib/libresolv.so.2 (0x00007f6f81f4e000)
libc.so.6 => /lib/libc.so.6 (0x00007f6f81beb000)
libdl.so.2 => /lib/libdl.so.2 (0x00007f6f819e7000)
libz.so.1 => /usr/lib/libz.so.1 (0x00007f6f817d0000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00007f6f815b3000)
/lib64/ld-linux-x86-64.so.2 (0x00007f6f83581000)
Après avoir suivi les instructions d' Ansgar Wiechers, cela fonctionne enfin.
postconf -n
contenait les lignes comme il se doit. La vérification du certificat / clé via openssl a montré que les deux fichiers sont valides.
Il s'agit donc bien d'un problème d'autorisations! Je ne savais pas que la récupération des fichiers /etc/ssl/*/postfix.pem dans postfix: postfix ne suffit pas pour que postfix lise les fichiers.