Configurar un servidor de correo Docker: consigue paso a paso tu propio servidor de correo electrónico
Configura en unos pocos pasos tu propio servidor de correo Docker para tener el tráfico de correos electrónicos bien controlado. Configurar el servidor de correo a través de Docker es especialmente popular como, por ejemplo, con el stack denominado “Docker Mailserver” que viene listo para su uso. ¿Cuáles son los requisitos? ¿Y cómo exactamente se puede configurar un servidor de correo Docker?
Configura tu servidor de correo electrónico profesional en un abrir y cerrar de ojos con IONOS. Disfruta de numerosas ventajas, como un espacio de almacenamiento extenso y ampliable, un dominio de correo propio, encriptación automática, solución de calendario y escritorio o archivado de correo electrónico. Además, el servicio que proporciona IONOS ofrece los más altos estándares de seguridad con certificado ISO.
Servidor de correo electrónico propio: ¿qué hardware se necesita?
Para poder tener un servidor de correo propio, primero se necesita tener el hardware adecuado. La magnitud de las prestaciones requeridas depende de varios factores: Entre otras cosas, entran a cuenta el número de mensajes a enviar y recibir por día y el número de personas y frecuencia con las que estas hacen uso del servidor. El tamaño medio de los mensajes intercambiados también es relevante. Hay que prever más potencia para posibles servicios adicionales como, por ejemplo, un sistema de copias de seguridad o un analizador de contenidos (protección contra spam, phishing, etc.). En cualquier caso, también se necesita una dirección IP estática para garantizar una interacción fluida con otros servidores de correo electrónico.
Por lo tanto, las capacidades que necesitas cubrir juegan un papel decisivo a la hora de buscar el entorno adecuado para configurar tu servidor de correo Docker. En el caso de recibir solo un puñado de correos al día, basta con una sencilla configuración inicial, mientras que un servidor de correo electrónico con mucho tráfico, como es el caso de las empresas en el sector empresarial, debe estar respaldado por una amplia memoria RAM, un avanzado CPU y suficiente espacio de almacenamiento.
No olvides contar con los recursos que vaya a necesitar el sistema operativo, ya sea Linux o Windows.
Hemos elaborado tres escenarios de posibles servidores de correo electrónico y les hemos asignado a cada uno de ellos la tarifa de servidores de IONOS más adecuada.
Escenario del servidor de correo | Hardware | Tarifa IONOS más adecuada |
Servidor de casa sencillo con poco tráfico | 2 vCores, 4 GB de RAM, 60 GB de almacenamiento en disco duro | VPS L |
Servidor de correo electrónico para una pequeña empresa con hasta 1000 correos diarios | 4 vCores, 8 GB de RAM, 100 GB de almacenamiento en disco duro | VPS XL |
Servidor de correo electrónico empresarial con más de 50 000 correos diarios | 8 vCores, 16 GB de RAM, 500 GB de almacenamiento en disco duro | AR6-32 SSD |
Con un servidor dedicado de IONOS tendrás acceso a hardware empresarial reservado exclusivamente para ti. Por el contrario, también existen los modelos “VPS” y “Cloud Server”, que proporcionan recursos virtualizados que se comparten con otros clientes, sin que esto suponga para ti una pérdida de rendimiento.
Tutorial paso a paso: cómo configurar un servidor de correo con Docker
Tienes varias opciones para configurar un servidor de correo Docker. En el tutorial que verás a continuación hemos optado por un servidor en “Docker-mailserver”, un Docker Container. El contenedor de código abierto ligero (licencia de MIT) proporciona un stack listo para ser usado en el momento y para configurar tu propio servidor de correo electrónico: todos los componentes más importantes vienen incluidos, como un servidor SMTP, un servidor IMAP o POP3, software antispam y antivirus o un servicio de directorio LDAP.
Si quieres trabajar con una imagen Docker como “docker-mailserver”, primero debes instalar la plataforma de contenedores. Puedes encontrar más información al respecto en nuestro tutorial de Docker.
Puedes leer cómo funciona exactamente la configuración del servidor de correo Docker a través de “docker-mailserver” en las siguientes secciones.
Paso 1. Conseguir la imagen Docker
Puedes conseguir la imagen más reciente de “docker-mailserver” acudiendo al directorio oficial del stack en dockerHub o desde la colección de herramientas del repositorio oficial de GitHub.
Si decides optar por el directorio dockerHub, puedes adquirir la imagen introduciendo el siguiente código en la línea de comandos:
docker pull mailserver/docker-mailserver
Si optas por el repositorio oficial de GitHub, introduce el siguiente comando:
docker pull ghcr.io/docker-mailserver/docker-mailserver:edge
Paso 2. Configurar docker-compose.yml
El siguiente paso consiste en preparar el contenedor “docker-mailserver” para su puesta en marcha. Para ello, creamos un directorio para el servidor de correo de docker que vamos a configurar, lo podemos llamar “mail-server-docker”, por ejemplo. A continuación, creamos un nuevo archivo YAML en dicho directorio con el nombre docker-compose.yml y añadimos el contenido visto a continuación para una configuración básica del servidor de correo electrónico:
version: '3.8'
services:
mailserver:
image: docker.io/mailserver/docker-mailserver:latest
container_name: mailserver
hostname: mail-server
# example.com debe ser sustituido por el dominio de tu propio servidor de correo electrónico:
domainname: example.com
ports:
- "25:25"
- "587:587"
- "465:465"
volumes:
- ./docker-data/dms/mail-data/:/var/mail/
- ./docker-data/dms/mail-state/:/var/mail-state/
- ./docker-data/dms/mail-logs/:/var/log/mail/
- ./docker-data/dms/config/:/tmp/docker-mailserver/
# La ruta debe ajustarse como corresponda:
- ./docker-data/nginx-proxy/certs/:/etc/letsencrypt/
- /etc/localtime:/etc/localtime:ro
environment:
- ENABLE_FAIL2BAN=1
# Si se utiliza letsencrypt para los certificados SSL/TLS (en caso contrario adaptar acorde)
- SSL_TYPE=letsencrypt
- PERMIT_DOCKER=network
- ONE_DIR=1
- ENABLE_POSTGREY=0
- ENABLE_CLAMAV=0
- ENABLE_SPAMASSASSIN=0
- SPOOF_PROTECTION=0
cap_add:
- NET_ADMIN # For Fail2Ban to work
- SYS_PTRACE
Consulta los manuales online oficiales de Docker-mailserver en GitHub para ver una lista detallada de las posibles configuraciones del servidor de correo Docker.
Paso 3. Abrir los puertos
Se introducen los siguientes tres puertos dentro del archivo YAML: 25, 465 y 587. Se trata de los puertos clásicos del SMTP Server, que también se deben abrir en la configuración del cortafuegos de tu servidor para que funcione sin problemas. El procedimiento exacto depende del sistema y del proveedor – los clientes de IONOS (VPS, Cloud Server, servidor dedicado), por ejemplo, pueden abrir los puertos fácilmente a través del Cloud Panel. Los pasos que seguir son los siguientes:
- Inicia sesión con tus datos personales como cliente en la página de inicio de sesión del Cloud Panel.
- Ve al apartado “Server & Cloud”.
- Selecciona el hardware del servidor alquilado en el que quieres configurar tu servidor de correo Docker.
- Haz clic en “Red” del menú de la izquierda y luego en “Políticas de Cortafuegos”.
- Añade uno a uno los tres puertos TCP “25”, “465” y “587” a través de la opción “Añadir regla”.
Paso 4. Adoptar el nombre de host en la configuración DNS
En este paso debes asegurarte de que el servicio DNS de tu servidor utiliza un registro MX para el nombre del host configurado en el paso 2 (aquí: “mail-server”). Además, añade un registro SPF-TXT con el nombre del host y el valor “v=spf1 mx ~all”.
Como cliente de IONOS, también puedes realizar estos ajustes de DNS para tu servidor a través del Cloud Panel, siguiendo estos pasos:
- Si todavía no lo has hecho, inicia de nuevo tu sesión en la página de inicio de sesión del Cloud Panel.
- Haz clic en “Dominios y SSL”.
- Haz clic en el icono de la rueda dentada junto a la casilla del dominio en el que estás configurando tu servidor de correo docker y selecciona la opción “DNS”.
- Ahora puedes añadir las dos entradas para MX y SPF-TXT mediante el botón “Añadir registro”.
Por último, aplica los cambios haciendo clic en “Restablecer dominio” en el menú superior. Confirma los cambios que has hecho y haz clic en “Reiniciar ahora”.
¿Quieres almacenar tus correos electrónicos de forma legal y segura, conforme a la normativa vigente? Utiliza el backup de correo de IONOS para archivar los correos seleccionados a prueba de manipulaciones y conforme a la ley.
Paso 5. Generar claves DKIM
Crea un registro DKIM para tu dominio, este te permitirá aumentar el nivel de seguridad de tu servidor de correo electrónico. Con la ayuda de esta técnica de cifrado, los mensajes pueden ser firmados digitalmente más adelante. Utiliza el archivo script con el nombre setup.sh, que se encuentra en el directorio docker-mailserver, para generar las dos claves. Ejecuta ahí el siguiente comando:
./setup.sh config dkim
Añade la entrada generada –que se encuentra en el archivo docker-data/dms/config/opendkim/keys/example.com/mail.txt– a los registros DNS como otra entrada TXT para que los email servers destinatarios puedan recuperar su clave pública. El resultado es algo parecido al siguiente:
mail._domainkey IN TXT ( "v=DKIM1; h=sha256; k=rsa; "
"p=MIIBIjANBgkqhkiG9w0BAQEFACAQ8AMIIBCgKCAQEAaH5KuPYPSF3Ppkt466BDMAFGOA4mgqn4oPjZ5BbFlYA9l5jU3bgzRj3l6/Q1n5a9lQs5fNZ7A/HtY0aMvs3nGE4oi+LTejt1jblMhV/OfJyRCunQBIGp0s8G9kIUBzyKJpDayk2+KJSJt/lxL9Iiy0DE5hIv62ZPP6AaTdHBAsJosLFeAzuLFHQ6USyQRojefqFQtgYqWQ2JiZQ3"
"iqq3bD/BVlwKRp5gH6TEYEmx8EBJUuDxrJhkWRUk2VDl1fqhVBy8A9O7Ah+85nMrlOHIFsTaYo9o6+cDJ6t1i6G1gu+bZD0d3/3bqGLPBQV9LyEL1Rona5V7TJBGg099NQkTz1IwIDAQAB" ) ; ----- DKIM key mail for example.com
El cifrado de la comunicación por correo mediante SSL/TLS es tan importante como las entradas DKIM. Los desarrolladores de docker-mailserver recomiendan el uso de letsencrypt para su activación, pero, por supuesto, también puedes utilizar los certificados que ya hayas adquirido previamente. Puedes encontrar instrucciones detalladas para llevar a cabo la configuración en la documentación oficial de GitHub del servidor de correo electrónico.
Paso 6. Iniciar el servidor y crear la primera dirección
Inicia el servidor de correo Docker que hemos configurado previamente directamente desde el directorio con el siguiente comando:
docker-compose up
En cuestión de dos minutos ya te permite configurar tu primera dirección de correo electrónico. Para ello, utiliza el siguiente comando, en el que el dominio, así como el nombre de usuario y la contraseña, deben ser adaptados a tu caso concreto:
./setup.sh email add user@domain password
Con la ayuda del comando puedes crear todos los perfiles que quieras cuando quieras para poder configurar tu servidor de correo Docker según tus necesidades.
- Dirección personalizada
- Protección contra virus y spam
- Acceso a tus correos desde cualquier lugar