Właśnie wykonałem ten samouczek, aby skonfigurować serwer pocztowy z poprawkami dovecot i mysql jako backend dla użytkowników wirtualnych.
Teraz większość części działa, mogę połączyć się z POP3 (S) i IMAP (S).
Za pomocą
echo TEST-MAIL | mail myaccount@hotmail.com
działa dobrze, gdy zaloguję się na swoje konto Hotmail, wyświetla wiadomość e-mail.
Działa również w odwrotnej kolejności, dlatego mój wpis MX dla example.com w końcu został rozpowszechniony, więc jestem w stanie odbierać wiadomości e-mail wysyłane z myaccount@hotmail.com na myvirtualuser@example.com i przeglądać je w Thunderbird za pomocą STARTTLS za pośrednictwem IMAP.
Robiąc trochę więcej badań po otrzymaniu komunikatu o błędzie „ 5.7.1: Odmowa dostępu do przekaźnika ” podczas próby wysłania wiadomości e-mail na myaccount@hotmail.com przy użyciu Thunderbirda zalogowanego na myvirtualuser@example.com , zorientowałem się, że mój serwer działa jako „Open Mail Relay”, co - oczywiście - jest złą rzeczą.
Zagłębiając się w opcjonalne części samouczka, takie jak ten komentarz i inne turorial , postanowiłem wykonać te kroki, aby móc wysyłać wiadomości e-mail za pośrednictwem myvirtualuser@example.com przez Mozilla Thunderbird, nie otrzymując komunikatu o błędzie „ 5.7.1 : Odmowa dostępu do przekazywania dalej ”(ponieważ zwykłe serwery pocztowe odrzucają otwarte wiadomości e-mail przekazywane).
Ale teraz napotkałem błąd, próbując uzyskać postfiks pracujący z SMTPS, w /var/log/mail.log czyta
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:
Ten błąd jest rejestrowany zaraz po próbie wysłania wiadomości e-mail z mojego nowo zainstalowanego serwera pocztowego za pomocą SMTP SSL / TLS przez port 465 w Thunderbird. Thunderbird mówi mi, że upłynął limit czasu.
Google ma kilka wyników dotyczących tego problemu, ale nie mogłem go uruchomić z żadnym z nich. Chciałbym tutaj linkować niektóre z nich, ale jako nowy użytkownik mogę używać tylko dwóch hiperłączy.
Mój plik /etc/postfix/master.cf wygląda
smtp inet n - - - - smtpd
smtps inet n - - - - smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
i nmap mówi mi
PORT STATE SERVICE
[...]
465/tcp open smtps
[...]
wygląda mój /etc/postfix/main.cf
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
Pliki * .pem zostały utworzone zgodnie z opisem w powyższym samouczku przy użyciu
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
Myślę, że nie muszę tutaj włączać /etc/dovecot/dovecot.conf , ponieważ logowanie za pomocą imaps i pop3s działa poprawnie zgodnie z logami. Jedynym problemem jest prawidłowe używanie przez Postfiksa samodzielnie wygenerowanych certyfikatów z podpisem własnym.
Każda pomoc doceniona!
EDYCJA: Właśnie próbowałem tego innego samouczka na temat generowania samopodpisanego certyfikatu dla Postfiksa, wciąż otrzymując ten sam błąd. Naprawdę nie wiem, co jeszcze przetestować.
Sprawdziłem również biblioteki SSL, ale wszystko wydaje się w porządku:
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)
Po wykonaniu instrukcji Ansgar Wiechers wreszcie działa.
postconf -n
zawierał wiersze tak, jak powinien. Sprawdzanie certyfikatu / klucza przez openssl wykazało, że oba pliki są prawidłowe.
To rzeczywiście był problem z uprawnieniami! Nie wiedziałem, że chown'owanie plików /etc/ssl/*/postfix.pem do postfix: postfix nie wystarczy, aby postfix mógł odczytać pliki.