Instalar tu propio servidor de correo con Modoboa en Debian
El instalador de Modoboa configura Postfix, Dovecot, el webmail y el SSL de una sola vez. Así instalas tu propio servidor de correo en Debian y creas los registros DNS necesarios.
¿Prefieres no dejar tu correo en manos de un proveedor gratuito y tenerlo en un servidor propio, bajo tu propio dominio? Modoboa es una de las soluciones más cómodas para eso. El instalador que trae configura Postfix, Dovecot, la base de datos, el filtro antispam, el webmail y una interfaz de administración de una sola vez.
Esta guía describe la instalación en Debian 12 y Debian 11. Debian 10 ya no recibe soporte y no debería usarse para un servidor de correo nuevo.
Requisitos
- Un VPS propio o un servidor root con una instalación de Debian recién hecha. Recomendamos (no es obligatorio, pero sí sensato) dedicar un servidor pequeño exclusivamente al correo, porque el nombre de host y el DNS inverso se adaptan al dominio de correo.
- Acceso root por SSH.
- Un dominio propio en el que puedas configurar tú mismo los registros DNS.
- Una dirección IPv4 fija para la que puedas crear un registro de DNS inverso.
- Los puertos de correo tienen que estar accesibles: 25 (SMTP), 587 y 465 (envío por parte de tus usuarios), 143 y 993 (IMAP), además de 80 y 443 para el webmail y para la emisión del certificado.
Importante: ejecuta la instalación en un sistema recién instalado. Un servidor web ya en marcha o una base de datos existente hacen que el instalador se interrumpa con frecuencia.
Preparar el sistema
Actualiza primero la lista de paquetes y todos los paquetes instalados:
apt update && apt upgrade -y
Después instala los paquetes que el instalador espera encontrar:
apt-get install sudo git python3 mariadb-server -y
Termina la configuración de la base de datos respondiendo a las preguntas del asistente. Elige en ese momento una contraseña segura para el administrador de la base de datos:
sudo mysql_secure_installation
Definir el nombre de host
El servidor necesita un nombre de host completo que encaje con el futuro dominio de correo. Sin este paso, la instalación falla:
hostnamectl set-hostname mail.<DOMINIO>.<EXTENSION>
Lo mejor es crear ya ahora en el DNS el registro A para exactamente ese nombre. El instalador solicita más adelante un certificado de Let's Encrypt, y eso solo funciona si el nombre ya apunta a la IP de tu servidor.
Descargar el instalador de Modoboa
cd /tmp
git clone https://github.com/modoboa/modoboa-installer
cd modoboa-installer
Generar y adaptar el archivo de configuración
Deja que el instalador cree primero solo el archivo de configuración y se detenga a continuación:
python3 ./run.py --stop-after-configfile-check <DOMINIO>.<EXTENSION>
Abre el archivo generado:
nano installer.cfg
Adapta las siguientes secciones. Así el servidor obtiene un certificado SSL gratuito de Let's Encrypt y se conecta a la base de datos local:
[certificate]
generate = true
type = letsencrypt
[letsencrypt]
email = admin@<DOMINIO>.<EXTENSION>
[database]
engine = mysql
host = 127.0.0.1
install = true
Indica una dirección de correo que leas de verdad. Let's Encrypt envía ahí los avisos si una renovación no llega a producirse.
Iniciar la instalación
python3 ./run.py mail.<DOMINIO>.<EXTENSION>
El proceso tarda unos minutos. Aprovecha ese tiempo para crear los registros DNS.
Crear los registros DNS
Registro A y registro MX
El registro A apunta a la IP de tu servidor y el registro MX le indica al resto del mundo qué host acepta el correo de tu dominio. La prioridad "10" es el valor habitual cuando solo hay un servidor de correo:
Primer registro:
Subdominio: mail
Tipo: A (IPv4)
Destino: <IP-Servidor>
El resultado debería quedar así: mail.<DOMINIO>.<EXTENSION> IN A <IP-Servidor>
Segundo registro:
(Subdominio: @)
Tipo: MX
Destino: mail.<DOMINIO>.<EXTENSION>
El resultado debería quedar así: @ IN MX 10 mail.<DOMINIO>.<EXTENSION>
SPF, DKIM y DMARC
Sin estos tres registros, tus mensajes acabarán con mucha probabilidad en la carpeta de spam de los destinatarios. Los grandes proveedores ya los exigen de forma explícita.
SPF define qué servidores pueden enviar en nombre de tu dominio. Se declara como registro TXT en el dominio principal:
Tipo: TXT
Nombre: @
Valor: v=spf1 mx -all
DKIM firma criptográficamente tu correo saliente. Modoboa puede generar por sí mismo las claves de cada dominio. Después de la instalación encuentras la clave pública en la interfaz de administración, en los ajustes del dominio correspondiente. Ese valor es el que introduces como registro TXT en el DNS.
DMARC les dice a los destinatarios qué hacer con los mensajes que no superan SPF o DKIM. Empieza con una configuración de solo observación y endurécela más adelante:
Tipo: TXT
Nombre: _dmarc
Valor: v=DMARC1; p=none; rua=mailto:postmaster@<DOMINIO>.<EXTENSION>
DNS inverso (PTR)
El registro PTR resuelve tu dirección IP de vuelta al nombre de host. Muchos servidores de correo rechazan sin más las conexiones que no tienen un registro PTR coherente. Con nosotros lo defines tú mismo en el área de cliente:
"Mis Servicios" -> "Seleccionar el servidor" -> "Hacer clic en el botón Reverse DNS" -> mail.<DOMINIO>.<EXTENSION>
Lo importante es que el registro PTR y el nombre de host coincidan exactamente.
Primeros pasos después de la instalación
Si la instalación ha terminado bien, reinicia el servidor una vez:
reboot
Después llegas a la interfaz de administración en https://mail.<DOMINIO>.<EXTENSION>. Inicia sesión con la cuenta de administrador que ha creado el instalador y cambia la contraseña antes que nada. A continuación crea tu dominio y los buzones que necesites.
Después prueba en ambos sentidos: envía un mensaje desde tu nuevo servidor a un buzón externo y otro desde fuera a tu nueva dirección. La forma más rápida de comprobar que SPF, DKIM, DMARC y PTR funcionan de verdad es usar uno de los verificadores de correo gratuitos que hay en la red.
Errores frecuentes
- La instalación se interrumpe de inmediato: el nombre de host no es un nombre de dominio completo. Compruébalo con
hostname -f. - El certificado no se emite: el registro A de mail.tudominio no apunta al servidor, o el puerto 80 está bloqueado. Let's Encrypt valida el dominio a través del puerto 80.
- El correo acaba en spam: por lo general falta el registro PTR, o SPF y DKIM no están configurados. Comprueba los cuatro registros antes de poner el servidor en producción.
- El correo saliente es rechazado: puede que la dirección IP figure en una lista de bloqueo. La mayoría de los operadores ofrecen una forma de consultarlo y de solicitar la retirada.
- El instalador informa de un error de base de datos: MariaDB todavía no se ha terminado con
mysql_secure_installation, o la sección de la base de datos del archivo installer.cfg no encaja. - Después de un reinicio ya no funciona nada: comprueba los servicios implicados con
systemctl status postfix dovecot nginx.
Un servidor de correo propio necesita más mantenimiento que otros servicios: actualizaciones, backups de los buzones y un ojo puesto en la entregabilidad. Si asumes esa tarea, a cambio obtienes el control total sobre tu comunicación.
Autor: XEfnexX (seudónimo)
Preguntas frecuentes
¿Qué versión de Debian necesito para Modoboa?
¿Por qué acaban mis mensajes en la carpeta de spam?
¿Puedo instalar Modoboa en un servidor que ya aloja una web?
¿Qué puertos tengo que abrir?
¿Cómo configuro el registro de DNS inverso?
2023-2026 KernelHost GmbH. Todos los derechos reservados. Esta guía está protegida por derechos de autor. Su publicación en otros sitios web, aunque sea de forma parcial o modificada, no está permitida sin nuestro consentimiento por escrito. Las citas con indicación de la fuente y un enlace son muy bienvenidas.

