Instalación y configuración de un servidor de correos de Internet
- Francisco Javier Huete
- Servicios
- February 18, 2025
Índice
Para configurar un servidor de correos en un servidor expuesto a Internet hay que instalar un servicio SMTP en este servidor. En este caso, se usa el servidor postfix
.
sudo apt update
sudo apt install postfix
La instalación de este servicio es interactiva. En primer lugar, se debe configurar el servicio como un Sitio de Internet
.
Package configuration
┌─────┤ Postfix Configuration ├─────┐
│ General mail configuration type: │
│ │
│ No configuration │
│ Internet Site │
│ Internet with smarthost │
│ Satellite system │
│ Local only │
│ │
│ │
│ <Ok> <Cancel> │
│ │
└───────────────────────────────────┘
Además, durante la instalación se configura también el nombre de dominio del servidor.
┌────────────────────────┤ Postfix Configuration ├─────────────────────────┐
│ The 'mail name' is the domain name used to 'qualify' _ALL_ mail │
│ addresses without a domain name. This includes mail to and from <root>: │
│ please do not make your machine send out mail from root@example.org │
│ unless root@example.org has told you to. │
│ │
│ This name will also be used by other programs. It should be the single, │
│ fully qualified domain name (FQDN). │
│ │
│ Thus, if a mail address on the local host is foo@example.org, the │
│ correct value for this option would be example.org. │
│ │
│ System mail name: │
│ │
│ javihuete.site________________________________________________________ │
│ │
│ <Aceptar> <Cancelar> │
│ │
└──────────────────────────────────────────────────────────────────────────┘
Para poder usar el servidor de correo en Internet, el DNS del dominio necesita contar con un registro de tipo MX.
MX @ pignite.javihuete.site 10 900
Además, para garantizar el envío de mails desde el servidor, es necesario configurar una serie de herramientas en el DNS.
La primera de ellas es el SPF, que se configura añadiendo un registro de tipo TXT al DNS con el siguiente contenido.
"v=spf1 ip4:149.202.55.234 ~all"
La siguiente técnica de verificación es DKIM. El uso de esta técnica requiere la instalación en el servidor de la herramienta opendkim
.
sudo apt install opendkim opendkim-tools
Esta herramienta permite generar el par de claves necesarios para la firma de los correos usando DKIM.
sudo -u opendkim opendkim-genkey -D /etc/dkimkeys -d javihuete.site -s miclave
La configuración de la herramienta de firma de correos se realiza en el fichero /etc/opendkim.conf
Socket inet:8891@localhost
Mode sv
Domain javihuete.site
KeyFile /etc/dkimkeys/miclave.private
Selector miclave
En la configuración del servicio SMTP, en el fichero /etc/postfix/main.cf, tamibén se debe configurar la conexión con la herramienta opendkim
para que se puedan firmar los correos.
milter_protocol = 2
milter_default_action = accept
smtpd_milters = inet:localhost:8891
non_smtpd_milters = $smtpd_milters
Para aplicar las modificaciones, se reinician ambos servicios.
sudo systemctl restart opendkim postfix
Finalmente, en el DNS del dominio se debe añadir un nuevo registro de tipo TXT con el contenido generado por opendkim en el fichero /etc/dkimkeys/miclave.txt.
v=DKIM1; h=sha256; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsi5DJWOFbCjCgYGiTEcsF7Z/dLmNGcr1gtwGMnpZceFF/Fyy+RfUL9gf+OyryGIxt3EFwtnrvBOjArD/D/gk+HWrjSuPcDPMzsulLVm5DBGSYxanVCmSSjBAwNfakXdDK7022SupOImWshBSesKjZUntsJ2Avjjd92zZKe0wpwpKbNEb/whn6qNXf1UrLXgmkEKryIcaIF+EE6 K18m5Pw8PcG4ZXH75W3lsIEgRq4DwmON49BNOpuEWouY7k9zrvPr0h/Q8SnEc2hK6RCoujvSY+5MpwmIJmS+CDPRCej9QJQHJK8CcKZmKbYyqlsMo9yvnYoYXTmBs9kBpvQ9PxhQIDAQAB
La tercera técnica para garantizar el envío de correos desde un servidor de correos en Internet es DMARC. Esta técnica también se configura con un registro TXT en el DNS del dominio con el siguiente contenido:
v=DMARC1; p=quarantine;adkim=r;aspf=r; rua=mailto:correo@javihuete.site
Para poder enviar correos desde el servidor, es necesrio que este cuente con una herramienta que permita realizar esta tarea.
sudo apt install bsd-mailx
Configuración de SpamAssassin
Para filtrar la llegada de mensajes de spam al servidor de correos se puede usar una herramienta como spamassassin
. Esta herramienta se comunica con postfix
para filtrar los mensajes recibidos por el servidor y marcar como spam aquellos que no cumplen con los filtros.
sudo apt update
sudo apt install spamassassin
En el fichero de configuración etc/default/spamass-milter se habilita la posibilidad de que postfix
pueda comunicarse con spamass-milter
a través del socket.
SOCKET="/var/spool/postfix/spamass/spamass.sock"
SOCKETOWNER="postfix:postfix"
SOCKETMODE="0660"
SOCKET_OPTIONS="-g postfix"
Por otra parte, en la comunicación de postfix
en /etc/postfix/main.cf se configura esta comunicación. Al parámetro smtpd_milters
creado antes durante la configuración de DKIM, se debe añadir la ruta al socket de spamass-milter.
smtpd_milters = inet:localhost:8891,unix:/run/spamass-milter/spamass-milter.sock
Finalmente, para hacer efectiva estas modificaciones, se reinicial los servicios de spamassassin
, spamass-milter
y postfix
.
sudo systemctl restart spamassassin spamass-milter postfix