Come configurare un server di posta elettronica con Docker
Un server di posta dedicato ti dà il pieno controllo sulle tue comunicazioni digitali. Questa guida si concentra sulla configurazione di un server di posta personale utilizzando Docker. Ti forniamo tutto quello che ti serve dai requisiti alle raccomandazioni di sicurezza fino a un tutorial completo. Con gli stack container già pronti di Docker, come Docker mail server, implementare una soluzione di posta sicura e scalabile non è mai stato così semplice.
Cos’è un server di posta elettronica con Docker?
Un server di posta con Docker è una soluzione e-mail auto-ospitata distribuita in container utilizzando Docker. Gestisce l’invio, la ricezione e l’archiviazione delle e-mail, permettendo un controllo totale sulla privacy dei dati, le politiche di sicurezza e la configurazione del sistema. Rispetto a fornitori terzi come Gmail o Outlook, con un server di posta con Docker hai il controllo della tua infrastruttura, il che risulta particolarmente adatto a sviluppatrici, sviluppatori, utenti attenti alla privacy e piccole imprese.
Perché usare Docker per un server di posta?
Usare Docker per ospitare il tuo server di posta elettronica offre diversi vantaggi:
- Isolamento e sicurezza: i container Docker isolano il server di posta, riducendo il rischio di compromissione a livello di sistema e migliorando la sicurezza.
- Portabilità: i container Docker possono essere facilmente spostati tra ambienti diversi, garantendo una configurazione coerente tra server locali e cloud.
- Distribuzione semplificata: Docker offre stack preconfigurati, semplificando il processo di installazione ed eliminando la necessità di configurazione manuale.
- Scalabilità: scala facilmente i container Docker per adattarli al traffico e-mail in aumento e ai cambiamenti nei requisiti delle risorse.
- Controllo delle versioni: specifica le versioni delle immagini Docker per prevenire problemi di compatibilità e facilitare il rollback, se necessario.
- Coerenza tra gli ambienti: Docker assicura configurazioni e installazioni coerenti tra ambienti di sviluppo, test e produzione.
- Elevati standard di sicurezza
- Crittografia automatica con SSL/TLS
- Data center certificati ISO 27001 e georidondanti
- IMAP e SMTP
Quali sono i requisiti per eseguire un server di posta con Docker?
Questa guida è pensata per utenti con competenze tecniche che hanno familiarità con Linux e Docker e desiderano un’infrastruttura e-mail privata e flessibile. È particolarmente rilevante per sviluppatrici, sviluppatori, amministratori, amministratrici IT e piccole imprese.
Per ospitare il tuo server di posta con Docker, avrai bisogno di risorse hardware sufficienti a seconda del traffico e-mail previsto. Un indirizzo IPv4 statico è essenziale per consentire interazioni scorrevoli con il server di posta. Inoltre, assicurati di implementare una corretta configurazione DNS, inclusi i record MX, SPF, DKIM e DMARC. Il supporto IPv6 è sempre più importante per una migliore compatibilità e reputazione della posta elettronica.
Tecnologie attualmente consigliate
- Docker image:
docker-mailserver/docker-mailserver:v13.2+
- Protocolli e-mail: SMTP (porte 25, 587, 465), IMAPS (993), POP3S (995)
- Standard di sicurezza: TLS 1.3, DKIM, SPF, DMARC, DNSSEC (se supportato)
- Sistema operativo host: Ubuntu 22.04 LTS, Debian 12 o distribuzioni Linux stabili equivalenti
Puoi semplificare l’intero processo utilizzando Docker mail server, un noto stack open-source gestito dalla community. Qui sono inclusi in un unico container Postfix, Dovecot, rspamd, ClamAV e un’integrazione opzionale con LDAP.
Cosa dovresti considerare quando configuri un server di posta elettronica con Docker?
Le configurazioni di sicurezza in sintesi
Per proteggere il tuo server di posta, assicurati di applicare costantemente le impostazioni di sicurezza, tra cui:
- Utilizzare certificati TLS aggiornati (almeno TLS 1.2, ancora meglio se TLS 1.3)
- Configurare e applicare politiche SPF, DKIM e DMARC
- Implementare il rate limiting e l’autenticazione tramite SASL
- Abilitare connessioni crittografate per IMAP/POP3 e SMTP
- Configurare i log con strumenti come rsyslog e rotazione log strutturata
Anche con configurazioni containerizzate che utilizzano Docker, un piano di sicurezza indipendente è essenziale. Docker semplifica l’installazione ma non sostituisce la protezione del sistema attraverso firewall, permessi utente rigorosi, log (ad esempio tramite rsyslog) e aggiornamenti regolari.
Raccomandazioni generali per la configurazione
Configurare un server di posta con Docker richiede competenze tecniche e una configurazione di sicurezza approfondita. Di seguito riportiamo alcuni aspetti principali su cui concentrarsi:
- Scegliere un’immagine Docker appropriata e uno stack server di posta (ad esempio, docker-mailserver/docker-mailserver)
- Configurare i record DNS (MX, SPF, DKIM, DMARC)
- Mettere in sicurezza l’host Docker (firewall, Fail2Ban, crittografia)
- Scegliere gli strumenti giusti per amministrazione e monitoraggio
- Aggiornamenti regolari e backup (inclusi aggiornamenti delle immagini Docker)
- Configurare le voci di DNS inverso e il supporto IPv6
- Rispettare i requisiti legali (ad esempio, il GDPR e l’archiviazione delle e-mail come prevista per legge)
Quale hardware è necessario?
Per gestire il tuo server di posta con Docker, è essenziale un hardware adeguato. Le prestazioni necessarie dipendono da vari fattori, inclusi il numero di e-mail inviate giornalmente e il numero di persone che utilizzano il server. I container Docker sono leggeri, ma è comunque necessario considerare RAM, CPU e spazio di archiviazione. Potrebbe essere necessaria maggiore potenza per servizi aggiuntivi come sistemi di backup o scanner di contenuti (ad esempio, protezione contro lo spam o il phishing). Avrai anche bisogno di un indirizzo IPv4 statico per un’interazione fluida con altri server di posta; infatti, gli IP dinamici possono causare problemi per la consegna delle e-mail.
Vorresti dare al tuo server di posta con Docker un tocco personale e professionale? Opta per un dominio personalizzato. Registra subito il tuo dominio personale con IONOS e ottieni anche un certificato SSL/TLS per il tuo server di posta elettronica.
Quando cerchi un ambiente adatto per il tuo server di posta con Docker, è importante considerare quali capacità devono essere coperte. Una configurazione semplice può gestire un piccolo numero di e-mail al giorno, mentre un server di posta aziendale molto utilizzato richiede una RAM, una CPU e uno spazio di archiviazione maggiori.
Indipendentemente che si tratti di Windows o Linux, non dimenticare di considerare le risorse necessarie per il sistema operativo in uso.
Scenario del server di posta | Hardware | Piano IONOS raccomandato |
---|---|---|
Server domestico semplice con poco traffico | 2 vCore, 8 GB di RAM, 240 GB di SSD | Server virtuale cloud L di IONOS |
Server di posta per una piccola impresa (fino a 1.000 e-mail/giorno) | 8 vCore, 16 GB di RAM, 480 GB di SSD | Server virtuale cloud XL di IONOS |
Server di posta aziendale (oltre 50.000 e-mail/giorno) | 6 vCore, 32 GB di RAM, 2 x 480 GB di SSD RAID | Server dedicato AMD di IONOS |
Con un server dedicato, ottieni l’accesso a un hardware aziendale riservato esclusivamente a te. Al contrario, i VPS e i server cloud utilizzano risorse virtualizzate condivise con altri clienti, senza che vi sia un calo delle prestazioni.
Come configurare un server di posta con Docker: guida
In questo tutorial, abbiamo scelto il popolare container Docker docker mail server.
Questo container leggero e open source (licenza MIT) offre uno stack modulare e pronto all’uso per configurare il tuo server di posta elettronica. Integra tutti i componenti essenziali, come un server SMTP, un server IMAP o POP3, protezione antispam e antivirus opzionale e, se necessario, un servizio di directory LDAP.
Primo passaggio: ottieni l’immagine Docker
Puoi ottenere l’immagine più recente di docker-mailserver dalla directory ufficiale di Docker Hub o dal repository ufficiale di GitHub.
L’approccio consigliato è quello di scaricare una release stabile, come v13.2
, piuttosto che utilizzare i tag :latest
o :edge
.
Esegui il seguente comando per scaricare l’immagine:
docker pull mailserver/docker-mailserver:v13.2
# or:
docker pull ghcr.io/docker-mailserver/docker-mailserver:v13.2
bashSecondo passaggio: configura docker-compose.yml
Successivamente, dovrai configurare docker-compose.yml
per definire i servizi e i volumi necessari per il tuo container Docker. Di seguito trovi un esempio di configurazione per il tuo server di posta:
version: '3.8'
services:
mailserver:
image: docker.io/mailserver/docker-mailserver:v13.2
container_name: mailserver
hostname: mail-server
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/
- ./docker-data/nginx-proxy/certs/:/etc/letsencrypt/
- /etc/localtime:/etc/localtime:ro
environment:
- ENABLE_FAIL2BAN=1
- 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
- SYS_PTRACE
yamlQuesta configurazione assicura che il tuo container Docker utilizzi le porte corrette per SMTP (25), IMAPS (993) e SMTP submission (587), e che i volumi siano correttamente mappati per l’archiviazione persistente dei dati. Inoltre, sono abilitate funzioni di sicurezza come Fail2Ban e Let’s Encrypt SSL.
Puoi trovare un elenco completo delle opzioni configurabili nella documentazione ufficiale del server di posta Docker.
Terzo passaggio: apri le porte necessarie
Nel tuo file docker-compose.yml
, noterai che le porte del server SMTP sono elencate (25, 465 e 587). Queste devono essere aperte anche nel firewall del tuo server per garantire un traffico e-mail affidabile.
Se stai utilizzando un servizio come IONOS per l’hosting, puoi aprire facilmente queste porte dal Cloud Panel:
- Accedi al Cloud Panel di IONOS.
- Vai alla sezione “Server & Cloud”.
- Seleziona il server che utilizzi per ospitare il server di posta con Docker.
- Nel menu a sinistra, clicca su “Rete”, poi su “Regole firewall”.
- Aggiungi le regole firewall per le porte TCP 25, 465 e 587.

Quarto passaggio: configura le impostazioni DNS
Nel passaggio successivo, devi assicurarti che il servizio DNS per il tuo dominio sia configurato correttamente:
- Record MX: punta al server di posta (ad esempio,
mail.esempio.com
) che hai definito sottohostname
edomainname
nel tuodocker-compose.yml
. - Record SPF: un record TXT per il dominio (non per il nome host!), ad esempio,
v=spf1 mx ~all
.
~all
sta per “Softfail”; in alternativa, puoi utilizzare -all
se preferisci una politica più rigorosa.
Come configurare il DNS nel Cloud Panel di IONOS
- Accedi al Cloud Panel di IONOS.
- Vai su “Domini & SSL”.
- Trova il tuo dominio e clicca sull’icona delle impostazioni.
- Seleziona “DNS”.
- Aggiungi i seguenti record:
- Record MX: destinazione =
mail.esempio.com
, priorità = 10 - Record TXT: tipo = TXT, valore =
v=spf1 mx ~all

Infine, fai clic su “Reimposta dominio” nel menu in alto per ricaricare la configurazione DNS e applicare le modifiche. Conferma le tue voci facendo clic su “Reimposta ora” per aggiornare i record DNS.
Vorresti archiviare in modo sicuro le e-mail aziendali in conformità con il GDPR? Con l’archiviazione e-mail di IONOS puoi archiviare automaticamente le caselle di posta selezionate in un formato a prova di manomissione e conforme alla legge.
Quinto passaggio: genera le chiavi DKIM
Per aumentare la sicurezza del tuo server di posta, è necessario generare un record DKIM (DomainKeys Identified Mail) per il tuo dominio. Questa tecnica permette di firmare in digitale le e-mail, così i server di posta in arrivo possono verificarne l’autenticità.
Usa lo script setup.sh
fornito nella directory docker-mailserver
:
./setup.sh config dkim
bashLa chiave pubblica generata verrà salvata nel seguente file (supponendo che il volume sia stato montato correttamente):
docker-data/dms/config/opendkim/keys/example.com/mail.txt
swiftApri il file e copia il suo contenuto per creare un record TXT nelle impostazioni DNS del tuo dominio. Il record DNS si presenta in maniera analoga:
mail._domainkey.example.com. IN TXT (
"v=DKIM1; h=sha256; k=rsa; "
"p=MIIBIjANBgkqhkiG9w0BAQEFAAOC...continuedPublicKey...IDAQAB"
)
java- mail è il selettore e può essere nominato come preferisci (ad esempio,
default
,key2025
, ecc.). - Se il tuo fornitore DNS limita la lunghezza a 255 caratteri per stringa, dovrai suddividere la chiave (come mostrato nell’esempio).
- Assicurati che il tipo di record sia TXT e che si applichi al dominio completo
mail._domainkey.example.com.
Oltre al DKIM, dovresti anche configurare un record SPF e uno DMARC per garantire una protezione completa contro lo spoofing delle e-mail.
Sesto passaggio: avvia il server e crea il tuo primo indirizzo
Avvia il server di posta configurato direttamente dalla directory del progetto con il seguente comando:
docker-compose up -d
bashQueste istruzioni ti aiuteranno a configurare in modo sicuro ed efficiente sia ambienti server di posta moderni basati su container che quelli tradizionali.
- Elevati standard di sicurezza
- Crittografia automatica con SSL/TLS
- Data center certificati ISO 27001 e georidondanti
- IMAP e SMTP