Guida utente

Posta in casa senza dolore. Sistema il DNS prima, poi missus fa il resto — primo dominio, DKIM, TLS, caselle, report DMARC — in una sola sessione.

1. Prerequisiti DNS

La posta è il task sysadmin più ostico perché tanto del "funziona?" vive nel DNS. Sistema questo prima di installare missus e il resto fila liscio.

  • Un hostname per il mail server, es. mail.example.com, con record A (e AAAA, se IPv6) che punta alla macchina.
  • DNS inverso (PTR) sull'IP pubblico che punta indietro a mail.example.com. Lo imposti dal pannello del provider — quasi tutti gli MTA riceventi (Gmail, Outlook) rifiutano la posta da mittenti senza rDNS corretto, e missus non può fare nulla per te su questo.
  • Per ogni dominio mail che ospiterai: un record MX example.com → mail.example.com (priorità 10 come default). missus ti mostra i record esatti sulla pagina /dns-advice dopo che hai aggiunto il dominio.
  • Porta 25 in uscita aperta. Molti provider (DigitalOcean, OVH consumer, ISP residenziali) la bloccano di default — controlla prima di scegliere l'host.
Se la 25 in uscita è bloccata, puoi comunque usare missus per la posta in entrata + IMAP, ma quella in uscita deve passare per un relay (Mailgun, Postmark, Amazon SES). missus ha una pagina di configurazione smarthost per questo.

2. Installa missus

curl -fsSL https://apt.netforge.it/free/key.gpg \
    | sudo gpg --dearmor -o /usr/share/keyrings/netforge.gpg
echo "deb [signed-by=/usr/share/keyrings/netforge.gpg] https://apt.netforge.it/free stable main" \
    | sudo tee /etc/apt/sources.list.d/netforge.list
sudo apt update
sudo apt install missus

sudo missus admin create iltuonome
sudo systemctl start missus

L'install tira dentro Postfix, Dovecot (con sieve, IMAP, POP, LMTP), Rspamd, certbot e nftables. Il postinst crea /srv/missus/ (Maildir, chiavi DKIM, state.db, backup), genera un session secret a 256 bit, e si ferma lì — Postfix e Dovecot non sono ancora cablati alle config generate da missus. Quello succede al primo Apply.

3. Primo login

missus si lega a 0.0.0.0:8443 di default — il pattern di deploy è "missus su un host backend o su rete privata, pannello raggiungibile dal tuo portatile". Dal portatile:

ssh -L 8443:127.0.0.1:8443 root@tuo-mail-server
# poi apri http://127.0.0.1:8443/ nel browser

Login, attiva 2FA su /account. Poi vai su /system/server e imposta:

  • Hostname — esattamente quello che i tuoi record A/AAAA puntano (es. mail.example.com). missus rifiuta nomi nudi tipo localhost; serve un FQDN perché certbot, naming dei record DKIM e risoluzione SPF dipendono tutti da quello.
  • IPv4 pubblico, IPv6 pubblico (se ce l'hai).
  • Policy DMARC di default: parti da quarantine per i domini nuovi, poi sali a reject quando sei sicuro che SPF + DKIM siano allineati (vedi sezione DMARC sotto).

4. Primo dominio mail

Vai su /domains, click su + Nuovo dominio, scrivi example.com, imposta una quota di default per casella (es. 1024 MB) e un rate limit in uscita (es. 200/h è sano per uso personale; sali a 1000+ per un piccolo team).

Al salvataggio, missus genera una coppia DKIM RSA 2048-bit in /srv/missus/dkim/example.com.key con selettore missus. La chiave pubblica è quella che pubblicherai nel DNS al passo successivo.

Click su + Genera DKIM se non è già generata, poi vai su /dns-advice.

5. Pubblica i record DNS

/dns-advice mostra i record esatti che devi pubblicare per ogni dominio aggiunto. Sono sei per dominio:

TipoNomeA cosa serve
A / AAAAmail.example.comHostname server → IP (lo imposti prima dell'install)
MXexample.comDove arriva la posta per questo dominio
TXT (SPF)example.comAutorizza gli IP del server a inviare per il dominio
TXT (DKIM)missus._domainkey.example.comChiave pubblica per verificare le firme outbound
TXT (DMARC)_dmarc.example.comCosa devono fare i destinatari quando SPF e DKIM falliscono
SRV_smtps._tcp.example.comDice ai client di autoconfig dove inviare/ricevere (RFC 6186)

Incolla al registrar — oppure, se usi anche nomina, aggiungili come record di zona lì. Poi click Verifica su /dns-advice; missus interroga il DNS pubblico e riporta ogni riga verde / giallo / rosso. Aspetta che siano tutti verdi prima di emettere TLS o inviare posta vera.

I record SRV sono opzionali ma comodissimi — un utente Thunderbird o Apple Mail scrive jane@example.com + password e il client trova IMAP e SMTP da solo.

6. TLS per SMTP/IMAP

Vai su /system/certificates, richiedi un cert Let's Encrypt per mail.example.com. missus usa certbot --standalone sulla porta 80 se è libera, o DNS-01 se hai configurato un plugin DNS (Cloudflare, Route53, …).

Al successo, missus salva il cert in /etc/letsencrypt/live/mail.example.com/, punta il smtpd_tls_cert_file di Postfix + il ssl_cert di Dovecot lì sopra, e ricarica entrambi i demoni. Il timer systemd missus-renew rinnova due volte al giorno e rigira lo stesso deploy hook.

7. Caselle e alias

Le caselle sono virtuali — non corrispondono a utenti Unix. L'autenticazione avviene contro state.db (hash Argon2id) via Dovecot. La Maildir su disco è in /srv/missus/mail/<dominio>/<local>/ posseduta dall'utente di sistema vmail.

# Dal pannello: /mailboxes → + Nuova casella
#   indirizzo: jane@example.com
#   password: (password forte)
#
# Dalla CLI:
sudo missus mailbox add jane@example.com

Gli alias redirigono posta senza una Maildir. Usali per indirizzi di ruolo, fan-out di reparto, catch-all:

# Redirezione singola
info@example.com  → jane@example.com

# Fan-out (una sorgente, molti destinatari)
sales@example.com  → jane@example.com, mark@example.com

# Catch-all (qualsiasi @example.com che non sia una casella definita)
@example.com  → jane@example.com

Modifica su /aliases, oppure:

sudo missus alias add info@example.com jane@example.com
sudo missus alias add @example.com jane@example.com

8. Report aggregati DMARC

L'ingest dei report DMARC è una di quelle cose che altrimenti pagheresti $20–200/mese come SaaS. missus lo fa inline col resto del pannello.

Su /dmarc/<dominio>/enable, missus fa tre cose in un colpo:

  1. Crea una casella dmarc@<dominio> con una password generata (mostrata una volta sola, poi mai più — salvala).
  2. Aggiorna l'advice del record TXT DMARC per includere rua=mailto:dmarc@<dominio>. Ripubblica il record da /dns-advice.
  3. Abilita un timer systemd giornaliero (missus-dmarc-poll.timer) che cammina la Maildir di dmarc@, ingerisce i report XML / ZIP / GZ allegati, e salva le statistiche aggregate in state.db.

Entro 24 h Gmail, Microsoft, Yahoo e decine di altri destinatari iniziano a mandare report. La dashboard /dmarc/<dominio> mostra: messaggi totali osservati, percentuale di alignment, top sorgenti, top IP fallenti.

Import manuale per un report una tantum o per backfillare: missus dmarc import path/to/report.xml.gz.

9. Coda e monitoring live

La pagina /queue legge postqueue -p e lo presenta come tabella ordinabile. Per ogni messaggio puoi mettere in hold, rilasciare, requeue, eliminare. Il filtro per mittente o destinatario è a un click.

La dashboard /system/live si auto-aggiorna ogni pochi secondi e mostra: profondità coda postfix (active / deferred / hold), sessioni dovecot attive, breakdown delle azioni Rspamd negli ultimi 5 minuti, righe di log recenti. Utile quando stai inseguendo "questo messaggio è arrivato?" in tempo reale.

10. Backup e migrazione

Tutto quello che missus possiede vive in /srv/missus/ — Maildir, state.db, chiavi DKIM private, certbot live tree. Il backup è rsync.

sudo rsync -aHAX --delete /srv/missus/ backup-host:/srv/missus-snapshot/

# nuova macchina, dopo `apt install missus`
sudo rsync -aHAX backup-host:/srv/missus-snapshot/ /srv/missus/
sudo missus rehydrate

missus rehydrate rigenera il ruleset firewall, gli script sieve per casella, e le config postfix/dovecot/rspamd da /srv/missus/ sulla nuova macchina, poi ricarica ogni demone.

Per restore granulari (una singola casella, un intero dominio) la pagina /backup impacchetta tarball che puoi smontare al restore.

11. Troubleshooting

Prima fermata:

sudo missus check

Cammina su filesystem, demoni, porte in ascolto (25/465/587/993/995), wiring postfix (virtual_mailbox_domains, virtual_alias_maps), e riporta ogni passo ✓ / ! / ✗.

Log dei demoni:

sudo journalctl -u postfix -n 100 --no-pager
sudo journalctl -u dovecot -n 100 --no-pager
sudo journalctl -u rspamd -n 100 --no-pager
sudo journalctl -u missus -n 100 --no-pager

Per debug del flusso mail, segui /var/log/mail.log mentre invii un messaggio di test. Il queue ID di Postfix ti permette di greppare tutto il percorso attraverso smtpd, cleanup, qmgr, smtp.

Se devi rifare missus da zero: apt purge missus di proposito non cancella /srv/missus/. Maildir e chiavi DKIM sono dati utente — anche le purge a cascata da rimozione di pacchetti non collegati lasciano i tuoi dati intatti. Per cancellare davvero, rimuovi le directory a mano — sudo rm -rf /srv/missus /etc/missus — è un'azione esplicita e deliberata che devi prendere tu.