Installazione server di posta: differenze tra le versioni

Da La cantina di Gvf.
Jump to navigation Jump to search
(Aggiunte caratteristiche)
(+ avviso)
 
(12 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
Istruzioni per installare Dovecot su Devuan 4 (in sostituzione di Courier, ma non dovrebbe essere importante)
{{Warningbox|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


{{Warningbox|Seguendo queste istruzioni Courier (o altro IMAP server) verrà disinstallato e i relativi servizi non saranno disponibili fino al completamento della configurazione di Dovecot è quindi opportuno preparare la configurazione su un server di prova.}}


Questa guida è stata realizzata utilizzando Devuan 4 (Chimaera) e Dovecot 2.3.13
=Caratteristiche=
=Caratteristiche=
Configurazione delle caselle di posta con: Mysql e  Postfixadmin  
* Gestione IMAP e POP3 : Dovecot
Certificati: Let's encrypt (certbot)
* Gestione SMTP e submission: Postfix
Gestione quota per dominio e per utente
* Configurazione dei domini e delle caselle di posta: Mysql e  Postfixadmin  
Memorizzazione ultimo login
* Connessioni esclusivamente criptate
Calendario CalDAV e Rubrica CardDAV usando ???
* Certificati: Let's encrypt (certbot)
Webmail: Roundcube
* Gestione quota per dominio e per utente
Filtri Sieve personalizzabili dagli utenti
* Memorizzazione nel database dell'ultimo login  
* TODO Calendario CalDAV e Rubrica CardDAV
* Webmail: Roundcube
* TODO Filtri Sieve personalizzabili dagli utenti
 
=Convenzioni=
{{Warningbox|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=
=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.
{{Codice|user=root|apt-get install postfix-mysql}}
==Dovecot==
{{Codice|user=root|apt-get install dovecot-core dovecot-imapd dovecot-pop3 dovecot-lmtpd dovecot-mysql}}
{{Codice|user=root|apt-get install dovecot-core dovecot-imapd dovecot-pop3 dovecot-lmtpd dovecot-mysql}}
A questo punto verrà disinstallato Courier, ma i file di configurazione verranno mantenuti.
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
{{Codice|user=root|apt-get install certbot}}
 
=Configurazione=
 
 
==Autenticazione SASL Postfix con Dovecot==
{{Codice|user=root|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
    }
  }
 
{{Codice|user=root|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)


Sono stati scelti i pacchetti per fornire IMAP, POP3 (si lo so che è obsoleto ma lo vogliono...), mailtransfer locale e l'integrazione con mysql (e quindi con PostfixAdmin).
==Utilizzo dei certificati let's encrypt con Dovecot==
Sostituire il certificato autofirmato che è stato generato all'installazione
{{Codice|user=root|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


{{Codice|user=root|/etc/init.d/dovecot restart}}


Per verificare il certificato utilizzato dal server per i vari protocolli eseguire il seguente codice (da un altro host):
{{Codice|<nowiki>echo | openssl s_client -connect MAILHOST:imaps | openssl x509 -noout -text</nowiki>}}
{{Codice|<nowiki>echo | openssl s_client -connect MAILHOST:pop3s | openssl x509 -noout -text</nowiki>}}
{{Codice|<nowiki>echo | openssl s_client -starttls smtp -connect MAILHOST:submission | openssl x509 -noout -text</nowiki>}}
e se abilitato su postfix:
{{Codice|<nowiki>echo | openssl s_client -starttls smtp -connect MAILHOST:smtp | openssl x509 -noout -text</nowiki>}}
=Fonti utilizzate=
=Fonti utilizzate=
*
in ordine rigorosamente casuale :-)
*https://www.sbarjatiya.com/notes_wiki/index.php/Postfix_SMTP_authentication_using_dovecot
*https://doc.dovecot.org/admin_manual/post_login_scripting/

Versione attuale delle 12:28, 15 feb 2023

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 :-)