Eu apenas segui este tutorial para configurar um servidor de e-mail postfix com dovecot e mysql como backend para usuários virtuais.
Agora tenho mais partes trabalhando, posso conectar-me ao POP3 (S) e ao IMAP (S).
Usando
echo TEST-MAIL | mail [email protected]
funciona bem, quando eu entro na minha conta do hotmail ele mostra o email.
Ele também funciona em sentido inverso, portanto, minha entrada MX para example.com finalmente foi propagada, por isso estou recebendo e-mails enviados de [email protected] para [email protected] e visualizá-los no Thunderbird usando STARTTLS via IMAP.
Fazendo um pouco mais de pesquisa depois que recebi a mensagem de erro " 5.7.1: acesso de retransmissão negado " ao tentar enviar e-mails para [email protected] usando o Thunderbird estando logado em [email protected] , descobri que meu servidor estava agindo como um "Open Mail Relay", que - claro - é uma coisa ruim.
Pesquisando mais nas partes opcionais do tutorial, como este comentário e o outro turorial , eu decidi completar estes passos também para poder enviar e-mails via [email protected] através do Mozilla Thunderbird , não recebendo mais a mensagem de erro " 5.7.1: Acesso de retransmissão negado " (como e-mails comuns rejeitam e-mails abertos retransmitidos).
Mas agora me deparei com um erro ao tentar fazer o postfix funcionar com o SMTPS, em /var/log/mail.log , ele lê
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:
Esse erro é registrado logo após eu tentar enviar um e-mail do meu servidor de e-mail recém-instalado usando SSL SSL / TLS via porta 465 no Thunderbird. Thunderbird então me diz que um tempo limite ocorreu.
O Google tem alguns resultados com relação a esse problema, mas não consegui fazê-lo funcionar com nenhum deles. Eu ligaria alguns deles aqui, mas como um novo usuário, só posso usar dois hiperlinks.
Meu /etc/postfix/master.cf parece
smtp inet n - - - - smtpd
smtps inet n - - - - smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
e nmap me dizem
PORT STATE SERVICE
[...]
465/tcp open smtps
[...]
meu /etc/postfix/main.cf parece
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
Os arquivos * .pem foram criados como descrito no tutorial acima, usando
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
Eu acho que não tenho que incluir /etc/dovecot/dovecot.conf aqui, pois o login via imaps e pop3s funciona bem de acordo com os logs. O único problema é fazer com que o postfix use corretamente os certificados auto-gerados e autoassinados.
Qualquer ajuda apreciada!
EDITAR:
Eu apenas tentei este tutorial diferente ao gerar uma auto-assinatura certificado para postfix, ainda recebendo o mesmo erro. Eu realmente não sei mais o que testar.
Eu também verifiquei as bibliotecas SSL, mas tudo parece estar bem:
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)
Depois de seguir as instruções Ansgar Wiechers , ele finalmente está funcionando.
postconf -n
continha as linhas como deveria. A verificação do certificado / chave via openssl mostrou que ambos os arquivos são válidos.
Então, de fato, tem sido um problema de permissões! Não sabia que colocar os arquivos /etc/ssl/*/postfix.pem no postfix: o postfix não é suficiente para o postfix ler os arquivos.