====== Docker Mailserver ====== **Docker Mailserver** es una solución completa y configurable para implementar un servidor de correo electrónico usando Docker. Combina componentes populares como Postfix (para SMTP), Dovecot (para IMAP/POP3), SpamAssassin/ClamAV (filtrado de spam/virus), OpenDKIM/OpenDMARC (autenticación de correo) y otras herramientas en un contenedor fácil de gestionar. Está diseñado para simplificar la configuración y el mantenimiento de un servidor de correo autoalojado. * [[https://docker-mailserver.github.io/docker-mailserver/latest/|Sitio web]] * [[https://github.com/docker-mailserver/docker-mailserver|Respositorio de código]] ===== Características ===== * **Todo en uno**: Incluye todos los servicios necesarios para un servidor de correo funcional. * **Configuración mediante variables de entorno**: Permite personalizar el comportamiento sin modificar archivos internos. * **Seguridad integrada**: Soporta SSL/TLS, SPF, DKIM, DMARC y filtrado antispam/antivirus. * **Persistencia**: Los datos (correos, configuraciones, etc.) se almacenan en volúmenes Docker para no perderlos al reiniciar. * **Herramientas de gestión**: Incluye scripts para crear usuarios, gestionar alias, configurar DKIM, etc. ===== Requisitos previos ===== Si tenemos contratado un dominio, debemos configurar los siguientes registros en el servidor DNS: ; Registro A: mail IN A 10.11.12.13 ; Registro MX: @ IN MX 10 mail.example.com. ; Registro SPF: @ IN TXT "v=spf1 mx -all" El registro ''MX'' le dice a todo el mundo qué nombre es responsable de los correos en tu dominio. El registro ''A'' le dice a todo el mundo qué dirección IP resuelve el nombre DNS ''mail.example.com'' Podemos verificar que la configuración es correcta utilizando el comando ''[[informatica:software:cli:dig|dig]]'': dig @1.1.1.1 +short MX example.org Nos debería devolver ''mail.example.org''. Para verificar el registro ''A'': dig @1.1.1.1 +short A mail.example.com Nos tendría que devolver la IP ''11.22.33.44''. ===== Instalación ===== services: mailserver: image: ghcr.io/docker-mailserver/docker-mailserver:latest container_name: mailserver # Provide the FQDN of your mail server here (Your DNS MX record should point to this value) hostname: mail.midominio.com ports: - "25:25" # SMTP (explicit TLS => STARTTLS, Authentication is DISABLED => use port 465/587 instead) - "465:465" # ESMTP (implicit TLS) - "587:587" # ESMTP (explicit TLS => STARTTLS) - "993:993" # IMAP4 (implicit TLS) 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/ - /etc/localtime:/etc/localtime:ro environment: - ENABLE_RSPAMD=1 - ENABLE_CLAMAV=1 - ENABLE_FAIL2BAN=1 cap_add: - NET_ADMIN # For Fail2Ban to work healthcheck: test: "ss --listening --tcp | grep -P 'LISTEN.+:smtp' || exit 1" timeout: 3s retries: 0 restart: unless-stopped ===== Crear usuarios / cuentas de correo ===== docker exec -it setup email add usuario@midominio.com Nos pedirá una contraseña para la nueva cuenta. ===== Generar claves DKIM ===== //DomainKeys Identified Mail// (DKIM) es un método de autenticación de correo diseñado para evitar el phising y spam. Al utilizar DKIM, el correo entrante verificará e incluirá las firmas DKIM y el correo saliente irá firmado. Para generar las claves es necesario tener una cuenta de correo ya creada. Generación de claves con valores por defecto: docker exec -it setup config dkim Se habrá generado un fichero en .... El contenido del fichero deberemos incluirlo en un registro DNS de tipo ''TXT'' * [[https://docker-mailserver.github.io/docker-mailserver/latest/config/best-practices/dkim_dmarc_spf/#dkim|Configuración DKIM en Docker Mailserver]]