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.

Postfix-logo-01

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

  1. /etc/postfix/main.cf:

Y añadimos la siguiente línea:

  1. 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:

  1. 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:

  1. 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:

  1. 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

  1. postconf -e smtpd_tls_cert_file=/etc/ssl/certs/postfix.pem
  2. postconf -e smtpd_tls_key_file=/etc/ssl/private/postfix.pem

Y volvemos a reiniciar el servicio:

  1. service postfix restart

Espero que el artículo os haya servido.

Para escribirlo me he ayudado de la siguiente documentación:

POSTFIX TLS | Workaround.org