Installazione server di posta

Da La cantina di Gvf.
Jump to navigation Jump to search
Warning icon.svg ATTENZIONE
Pagine incompleta!


Istruzioni per installare un server di posta su Devuan 4

Uso questa distribuzione in quanto ritengo che systemd, soprattutto su un server non sia una cosa buona.

Software utilizzato

Questa guida è stata realizzata utilizzando:

  • Devuan 4 (Chimaera)
  • Dovecot 2.3.13
  • Postfix 3.5.6
  • MariaDB (MySQL) 10.5
  • Certbot 1.12.0
  • PostfixAdmin
  • Roundcube


Caratteristiche

  • Gestione IMAP e POP3 : Dovecot
  • Gestione SMTP e submission: Postfix
  • Configurazione dei domini e delle caselle di posta: Mysql e Postfixadmin
  • Connessioni esclusivamente criptate
  • Certificati: Let's encrypt (certbot)
  • Gestione quota per dominio e per utente
  • Memorizzazione nel database dell'ultimo login
  • TODO Calendario CalDAV e Rubrica CardDAV
  • Webmail: Roundcube
  • TODO Filtri Sieve personalizzabili dagli utenti

Convenzioni

Warning icon.svg ATTENZIONE
Salvo dove diversamente indicato i comandi devono essere eseguiti con l'utente root o anteponendo il comando sudo (facendo attenzione se vengono usati pipe)


  • MYSQLHOST = l'host su cui è installato MySQL, può essere localhost
  • MYSQLUSER1 = utente MySQL per postfixadmin (diritti di scrittura)
  • MYSQLPASS1 = password MySQL user1
  • MYSQLUSER2 = utente MySQL per registrazione ultimologin (diritti di scrittura limitati)
  • MYSQLPASS2 = password MySQL user2
  • MYSQLUSER3 = utente MySQL per postfix (diritti di lettura)
  • MYSQLPASS3 = password MySQL user3


  • MAILHOST = l'host su cui si installa il server di posta, deve essere un indirizzo raggiungibile da internet (vedere configurazione DNS)

Installazione dei pacchetti

Mysql

Viene usato per gestire la configurazione di domini e utenti tramite postfixadmin.

Postfix

Usato come agente per submission e SMTP. Come submission è configurato in maniera da permettere l'uso solo di mittenti corrispondenti all'autenticazione.

Root-prompt.png apt-get install postfix-mysql


Dovecot

Root-prompt.png apt-get install dovecot-core dovecot-imapd dovecot-pop3 dovecot-lmtpd dovecot-mysql

Se presente verrà disinstallato Courier, ma i file di configurazione verranno mantenuti.

Sono stati scelti i pacchetti per fornire IMAP, POP3 (si, lo so che è obsoleto, ma lo vogliono...), mailtransfer locale e configurazione su mysql gestita tramite PostfixAdmin.

Certbot

Viene usato per generare i certificati SSL

Root-prompt.png apt-get install certbot


Configurazione

Autenticazione SASL Postfix con Dovecot

Root-prompt.png nano /etc/dovecot/conf.d/10-master.conf
 service auth {
    unix_listener auth-userdb {
    }
    # Postfix smtp-auth
    unix_listener /var/spool/postfix/private/auth {
       mode = 0660
       user = postfix
       group = postfix
    }
 }
Root-prompt.png nano /etc/postfix/main.cf
 #########
 # SMTPD #
 #########
 # utilizzo dovecot auth
 smtpd_sasl_type = dovecot
 # path del socket di autenticazione fornito da dovecot
 smtpd_sasl_path = private/auth
 # abilito l'autenticazione SASL
 smtpd_sasl_auth_enable = yes
 # aggiunge l'username dell'utente nell'header delle mail
 smtpd_sasl_authenticated_header = yes

(nota: aggiungere tutte le altre restrizioni adottate)

Utilizzo dei certificati let's encrypt con Dovecot

Sostituire il certificato autofirmato che è stato generato all'installazione

Root-prompt.png nano /etc/dovecot/conf.d/10-ssl.conf
#ssl_cert = </etc/dovecot/private/dovecot.pem
#ssl_key = </etc/dovecot/private/dovecot.key
ssl_cert = </etc/letsencrypt/live/MAILHOST/fullchain.pem  
ssl_key = </etc/letsencrypt/live/MAILHOST/privkey.pem
Root-prompt.png /etc/init.d/dovecot restart


Per verificare il certificato utilizzato dal server per i vari protocolli eseguire il seguente codice (da un altro host):

User-prompt.png echo | openssl s_client -connect MAILHOST:imaps | openssl x509 -noout -text
User-prompt.png echo | openssl s_client -connect MAILHOST:pop3s | openssl x509 -noout -text
User-prompt.png echo | openssl s_client -starttls smtp -connect MAILHOST:submission | openssl x509 -noout -text

e se abilitato su postfix:

User-prompt.png echo | openssl s_client -starttls smtp -connect MAILHOST:smtp | openssl x509 -noout -text

Fonti utilizzate

in ordine rigorosamente casuale :-)