Problema:
Tras varios intentos, siguiendo tutoriales encontrados a través del buscador de google, no consigo que el SMTP de Gmail acepte mis correos. Cada vez que intentaba mandar un mail, postfix generaba este mensaje en /var/log/mail.log:
1 |
[...] status=bounced [...] Must issue a STARTTLS command first |
Solución:
Por lo visto, los tutoriales que estuve consultando estaban un poco anticuados. A base de insistir logré dar con uno que me dio las bases para solucionar el problema. Nótese que el tutorial en cuestión (citado más abajo) tenía una errata, corregida ahora, que me hizo perder otra media hora. Paso 1: Instalar los siguientes paquetesapt-get install libsasl2-2 apt-get install libsasl2-modulesPaso 2: Crear un Certificate Authority Con tu usuario standard, no el root, y desde tu home:
$ cd $ /usr/lib/ssl/misc/CA.pl -newcaIntroduce los datos a medida que te los vayan pidiendo. Eso sí, recuérdalos, por que más tarde los vas a necesitar. Al final de este proceso debería aficharse en consola:
Signature okPaso 3: crear un Server Certificate Introduce el comando siguiente, en una sola línea. Asegúrate que los datos coinciden con los que introdujiste en el paso anterior (sustituye las letras en negrita por los valores correspondientes):
$ openssl req -new -nodes -subj ‘/CN=<Common Name>/O=<Organization Name>/C=<Country Name>/ST=<State or Province Name>/L=<Locality Name>/emailAddress=<Email Address>‘ -keyout TUSERVIDOR-key.pem -out TUSERVIDOR-req.pem -days 3650Paso 4: Firma el Certificado
$ openssl ca -out TUSERVIDOR-cert.pem -infiles TUSERVIDOR-req.pemDe nuevo, el proceso debería acabar con un:
Signature okDespués presiona «y» si te pregunta algo más. Paso 5: Copia los certificados al directorio de Postfix Vas a necesitar los privilegios de root
$ su –Siempre desde la home de tu usuario.
# cd /home/tuusuario/ # cp demoCA/cacert.pem TUSERVIDOR-key.pem TUSERVIDOR-cert.pem /etc/postfix # chmod 644 /etc/postfix/TUSERVIDOR-cert.pem /etc/postfix/cacert.pem # chmod 400 /etc/postfix/TUSERVIDOR-key.pemOtro punto a tomar en consideración, no citado en las otros tutoriales que consulté. Desde hace un par de años, Google utiliza el certificado Equifax Secure CA.
# cat /etc/ssl/certs/Equifax_Secure_CA.pem >> /etc/postfix/cacert.pemEn caso de que no tengas instalado el certificado de Equifax, lo puedes descargar en la página oficial de digicert. Para descargar el certificado, usa el botón derecho para guardarlo en tu ordenador, de lo contrario es posible que solo se instale en el navegador. Paso 6: Añade estas líneas al final de /etc/postfix/main.cf
## Configuración TLS # smtp_use_tls = yes smtpd_tls_CAfile = /etc/postfix/cacert.pem smtpd_tls_cert_file = /etc/postfix/TUSERVIDOR-cert.pem smtpd_tls_key_file = /etc/postfix/TUSERVIDOR-key.pem smtpd_tls_received_header = yes smtpd_tls_session_cache_database = btree:/var/run/smtpd_tls_session_cache smtp_tls_loglevel = 2 smtpd_use_tls = yes tls_random_source = dev:/dev/urandom # ## Configuración SASL # smtpd_sasl_auth_enable = no # Necesitamos esto smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl/sasl_passwd smtpd_sasl_local_domain = $myhostname smtp_sasl_security_options = noanonymous smtp_sasl_tls_security_options = noanonymous smtpd_sasl_application_name = smtpd #Asegúrate que estas líneas también están en in main.cf relayhost = [smtp.gmail.com]:587 transport_maps = hash:/etc/postfix/transportPaso 7: Crea el fichero transport con tu editor de texto preferido
# nano /etc/postfix/transportContenido de /etc/postfix/transport:
gmail.com smtp:[smtp.gmail.com]:587Paso 8: Crea el password SASL Obviamente sustituye la direeción de gmail con la tuya y pon tu pasword en el fichero.
# cd /etc/postfix/sasl # nano /etc/postfix/sasl/sasl_passwdContenido de sasl_passwd
gmail-smtp.l.google.com tuusuario@gmail.com:password smtp.gmail.com tuusuario@gmail.com:passwordPaso 9: Genera un hash de los ficheros sasl_passwd y transport
# postmap /etc/postfix/sasl/sasl_passwd && postmap /etc/postfix/transportPaso 10: Reinicia el servidor Posfix y comprueba que todo marcha correctamente Introduce el comando siguiente para reiniciar postfix:
# /etc/init.d/postfix restartPara probar que todo funciona correctamente, puedes utilizar mailutils.
# apt-get install mailutils # echo «probando» | mailx -s «probando» tuusuario@gmail.comPuedes consultar el fichero log para comprobar posibles errores
# tail -f /var/log/mail.log
/etc/ssl/certs/Equifax_Secure_CA.pem: ya no se instala con ca-certificates. sabrias como instalarlo?
Gracias por tu pregunta, Mario. He actualizado el tutorial explicando cómo instalar el certificado.