Habilitar soporte TLS en servidor SMTP Postfix
Hoy un pequeño tip sobre la configuración de un relay de correo SMTP con postfix. Añadido que me servirá para mi día a día, ya que como sabéis también utilizo la web a modo de wiki personal. Ya hemos hablado infinidad de veces sobre éste sistema de correo. Hoy veremos como habilitar el soporte para el cifrado TLS.
TLS es una acrónimo en inglés de Transport Layer Security, se trata de un protocolo criptográfico, que viene a sustituir al antiguo SSL, y que proporciona comunicaciones seguras por la red.
Hay que partir de la base que estamos trabajando con un servidor ya montado, ya hemos visto como montar un servidor postfix para cuentas de gmail, para cuentas de Office365, y junto con otros servicios para montar un servidor completo de correo.
Habilitar TLS en Postfix
Por defecto el protocolo TLS está deshabilitado en la configuración por defecto. Para habilitar debemos editar el fichero /etc/postfix/main.cf
/etc/postfix/main.cf:
Y añadimos la siguiente línea:
smtpd_tls_security_level = may
Con ésta modificación el servidor anuncia que da soporte para STARTTLS a los clientes SMTP remotos. En cualquier caso no es un requirimiento obligatorio para los clientes utilizar dicho protocolo. Si queremos podemos obligar a que los clientes utilicen TLS, modificando el fichero /etc/postfix/main.cf y escribimos la línea:
smtpd_tls_security_level = encrypt
TLS se utiliza a veces en un modo no estándard llamado «wrapper» que viene a significar en castellano «envoltorio«. Algunos clientes como Outlook utilizan éste servicio. Para habilitarlo se debe modificar el fichero master.cf ubicado en el directorio /etc/postfix/, y descomentar:
smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
Recordad que cada vez que hacemos una modificación de la configuración se ha de reiniciar el servicio:
service postfix restart
Crear certificado y llave privada
Nos saltaremos la teoría que podéis consultar aquí, y veremos los comando a utilizar para crear un certificado privado auto firmado. Para crear ambos ficheros:
openssl req -new -x509 -days 3650 -nodes -out /etc/ssl/certs/postfix.pem -keyout /etc/ssl/private/postfix.pem
Por motivos de seguridad debemos modificar los permisos de la llave privada, para que sólo lo pueda leer root:
chmod o= /etc/ssl/private/postfix.pem
Ahora utilizando el comando postconf indicaremos a Postfix donde están los ficheros, también se puede realizar de manera manual modificado el fichero /etc/postfix/main.cf
postconf -e smtpd_tls_cert_file=/etc/ssl/certs/postfix.pem
postconf -e smtpd_tls_key_file=/etc/ssl/private/postfix.pem
Y volvemos a reiniciar el servicio:
service postfix restart
Espero que el artículo os haya servido.
Para escribirlo me he ayudado de la siguiente documentación: