Configuración del servidor de correo

Introducción

De los posibles servidores de correo disponibles para Debian/Linux, he escogido Postfix.

Instalación de Postfix

Elegimos el servidor de correo Postfix para esta máquina. Lo instalo mediante aptitudde.:

aptitude install postfix

Debian me muestra un sencillo asistente en el que pide los parámetros esenciales para la configuración de un servidor de correo.

Nota

Algunas de estas opciones no salen durante la instalación con una configuración por defecto de Debian.

Para que se muestren, se puede ejecutar dpkg-reconfigure postfix una vez instalado.

Si quieres que Debian muestre todas las opciones posibles durante la instalación de futuros paquetes, ejecuta dpkg-reconfigure debconf y pon la prioridad en baja.

  • Tipo de servidor: Escojo Sitio de Internet puesto que necesito enviar e-mail al exterior, y no estaría de más poder recibirlo.
  • Nombre del sistema de correo: cactus.rufian.eu.
  • Dominios para los que aceptar correo: cactus.rufian.eu, localhost.rufian.eu, localhost.
  • Correo de postmaster: Añado las cuentas de los administradores: ntrrgc@cactus.rufian.eu, carlos@cactus.rufian.eu.
  • Relevar correo con para: Dejamos el valor predeterminado, que sólo permite correo saliente de usuarios que estén conectados a la máquina. De lo contrario, nuestro sistema sería un open relay [1]. 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
  • Límite de tamaño de buzón de correo: 2097152 (2 MiB).

Configuración de Postfix

Los archivos de configuración de Postfix se encuentran dentro de /etc/postfix.

main.cf alberga la configuración predeterminada de Postfix. En él se establece bajo qué condiciones se aceptan o no mensajes, el tamaño máximo de los buzones, etc.

master.cf define la configuración de servicios que ejecutará Postfix. Es en este fichero donde dice que Postfix tiene que poner un servidor SMTP en el puerto 25. Cada servicio iniciado puede tener opciones de configuración adicional que difieran de las configuración predeterminada de main.cf.

Establecer un tamaño máximo de mensaje

El asistente de Debian preguntó en el momento de la configuración por un tamaño máximo de buzón, pero no preguntó por un tamaño máximo de mensaje.

Postfix por defecto fija un tamaño máximo de mensaje de 10 MiB. Debido a que hemos puesto un tamaño de buzón tan pequeño, Postfix dará este error (/var/log/mail.err) impidiendo la entrega de correo a los usuarios:

May  2 23:57:03 cactus postfix/local[14194]: fatal: main.cf configuration error: mailbox_size_limit is smaller than message_size_limit

Para solucionarlo hay que poner en main.cf un tamaño de máximo de mensaje acorde al tamaño máximo de buzón. En este caso, pondremos un tamaño máximo de 1 MiB por mensaje.

message_size_limit = 1048576

Cambio de banner

No quiero que mi Postfix informe de la versión instalada a los clientes que conecten a él, así que edito el banner, poniendo cualquier mensaje en lugar de la versión.:

smtpd_banner = $myhostname ESMTP $mail_name Si Me Temes, Para.

Configuración del alias de root

Los alias de correo están definidos en /etc/aliases. Es interesante definir al menos un alias para root, de manera que los administradores puedan consultar los avisos relativos a problemas o circunstancias especiales del servidor desde su cuenta de usuario normal.

Para ello se añade una entrada a /etc/aliases con el nuevo alias. Un alias puede resolverse como varias direcciones de correo electrónico.

root: ntrrgc@cactus.rufian.eu, carlos@cactus.rufian.eu

Una vez hechos cambios en este fichero es necesario actualizar la base de datos de alias interna de Postfix. Para hacerlo basta con ejecutar la siguiente orden:

newaliases

Cifrado TLS

Quiero que mi servidor utilice el certificado TLS creado en etapas anteriores para comunicarse con otros servidores de Internet sin que los mensajes circulen en claro, salvo que el servidor de destino no lo soporte (cosa rara hoy en día, por suerte).

En Postfix es muy fácil. La configuración se reduce a especificarle la ruta al certificado y la clave privada.

# TLS parameters

# For incoming connections
smtpd_use_tls=yes
smtpd_tls_cert_file=/etc/ssl/certs/cactus.pem
smtpd_tls_key_file=/etc/ssl/private/cactus.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache

# For outgoing connections
smtp_use_tls=yes
smtp_tls_cert_file=/etc/ssl/certs/cactus.pem
smtp_tls_key_file=/etc/ssl/private/cactus.key
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

Postfix es lo suficientemente listo para leer las claves privadas mientras todavía se está ejecutando como root (antes de convertirse en usuario limitado), por lo que no es necesario hacer ningún cambio en los permisos del fichero con la clave privada. Si root puede leerlo, Postfix podrá.

Puerto submission

Los estándares de Internet aconsejan configurar SMTP en dos puertos distintos: 25 para transporte de correo y 587 (submission) para entrega de correo desde los usuarios al servidor.

Esto permite separar fácilmente las políticas de correo que se aplican a los usuarios del servidor respecto a las que se aplican a los otros servidores de Internet.

En cualquier caso, en algunas redes se restringen las conexiones salientes al puerto 25 para evitar la difusión de SPAM, por lo que es muy recomendable configurar un puerto submission para poder descargar tu correo desde cualquier red.

Más sobre el puerto submission en [2] y [3].

Para configurar un puerto submission en Postfix hay que editar /etc/postfix/master.cf y descomentar (o escribir) las siguientes líneas:

submission inet n       -       -       -       -       smtpd
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
[1]

Un open relay es un servidor que acepta e-mail de cualquier máquina con destino a cualquier otro servidor.

Un servidor de correo bien configurado sólo debería aceptar del exterior correo que venga dirigido a él, salvo casos puntuales programados por el administrador.

Sin embargo, tradicionalmente muchos servidores venían configurados de serie como open relay, lo que ha convertido a estos sistemas en nichos para spammers.

En consecuencia, si tu sistema es un open relay, acabarás rápidamente en todas las listas negras de spam.

[2]http://www.maawg.org/sites/maawg/files/news/MAAWG_Port25rec0511.pdf
[3]https://tools.ietf.org/html/rfc5068