Ich habe gerade dieses Tutorial befolgt , um einen Postfix-Mailserver mit Dovecot und MySQL als Backend für virtuelle Benutzer einzurichten.
Jetzt habe ich die meisten Teile zum Laufen gebracht, ich kann mich mit POP3 (S) und IMAP (S) verbinden.
Verwenden
echo TEST-MAIL | mail myaccount@hotmail.com
Funktioniert einwandfrei, wenn ich mich in meinem Hotmail-Konto anmelde, wird die E-Mail angezeigt.
Es funktioniert auch in umgekehrter Reihenfolge, daher wurde mein MX-Eintrag für example.com endgültig weitergegeben, sodass ich E-Mails von myaccount@hotmail.com an myvirtualuser@example.com empfangen und in Thunderbird mit STARTTLS über IMAP anzeigen kann.
Nachdem ich die Fehlermeldung " 5.7.1: Relay-Zugriff verweigert " erhalten hatte, als ich versuchte, mit Thunderbird, der bei myvirtualuser@example.com angemeldet war , E- Mails an myaccount@hotmail.com zu senden , stellte ich fest, dass mein Server aktiv war als "Open Mail Relay", was natürlich eine schlechte Sache ist.
Ich habe mich eingehender mit den optionalen Teilen des Tutorials wie diesem Kommentar und dem anderen Turorial befasst und mich dazu entschlossen, diese Schritte auch auszuführen , um E-Mails über myvirtualuser@example.com über Mozilla Thunderbird senden zu können , ohne die Fehlermeldung " 5.7.1 : Weiterleitungszugriff verweigert "mehr (da gängige Mailserver offene weitergeleitete E-Mails ablehnen).
Aber jetzt bin ich auf einen Fehler gestoßen, der versucht, Postfix mit SMTPS zum Laufen zu bringen. In /var/log/mail.log liest es
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:
Dieser Fehler wird sofort protokolliert, nachdem ich versucht habe, eine E-Mail von meinem neu installierten Mailserver mit SMTP SSL / TLS über Port 465 in Thunderbird zu senden. Thunderbird teilt mir dann mit, dass eine Zeitüberschreitung aufgetreten ist.
Google hat ein paar Ergebnisse zu diesem Problem, aber ich konnte es mit keinem davon zum Laufen bringen. Ich würde einige von ihnen hier verlinken, aber als neuer Benutzer darf ich nur zwei Hyperlinks verwenden.
Meine /etc/postfix/master.cf sieht so aus
smtp inet n - - - - smtpd
smtps inet n - - - - smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
und nmap sagt es mir
PORT STATE SERVICE
[...]
465/tcp open smtps
[...]
meine /etc/postfix/main.cf sieht so aus
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
Die * .pem-Dateien wurden wie im obigen Tutorial beschrieben mit erstellt
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
Ich glaube, ich muss /etc/dovecot/dovecot.conf hier nicht einschließen , da die Anmeldung über imaps und pop3s entsprechend den Protokollen gut funktioniert. Das einzige Problem ist, dass Postfix die selbst erstellten, selbst signierten Zertifikate ordnungsgemäß verwendet.
Jede Hilfe dankbar!
BEARBEITEN: Ich habe gerade dieses andere Tutorial zum Generieren eines selbstsignierten Zertifikats für Postfixausprobiert, wobei immer noch derselbe Fehler auftritt. Ich weiß wirklich nicht, was ich sonst noch testen soll.
Ich habe auch nach den SSL-Bibliotheken gesucht, aber alles scheint in Ordnung zu sein:
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)
Nach Ansgar Wiechers Anweisungen ist es endlich soweit.
postconf -n
enthielt die Zeilen, wie es sollte. Die Zertifikat- / Schlüsselüberprüfung über openssl hat ergeben, dass beide Dateien gültig sind.
Es war also tatsächlich ein Berechtigungsproblem! Wusste nicht, dass es nicht ausreicht, die Dateien /etc/ssl/*/postfix.pem nach postfix zu verschieben: postfix ist nicht ausreichend, damit postfix die Dateien liest.