Installazione server di posta: differenze tra le versioni

Da La cantina di Gvf.
Jump to navigation Jump to search
(uso letsencrypt)
(+ avviso)
 
(9 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
{{Warningbox|Pagine incompleta!}}
Istruzioni per installare un server di posta su Devuan 4  
Istruzioni per installare un server di posta su Devuan 4  


{{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.}}
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


Questa guida è stata realizzata utilizzando Devuan 4 (Chimaera) e Dovecot 2.3.13


Salvo se diversamente indicato i comandi devono essere eseguiti con l'utente root o anteponendo il comando sudo (attenzione se vengono usate pipe)
=Caratteristiche=
=Caratteristiche=
Gestione IMAP e POP3 : Dovecot
* Gestione IMAP e POP3 : Dovecot
Gestione SMTP : Postfix
* Gestione SMTP e submission: Postfix
Configurazione delle caselle di posta con: Mysql e  Postfixadmin  
* Configurazione dei domini e delle caselle di posta: Mysql e  Postfixadmin  
Certificati: Let's encrypt (certbot)
* Connessioni esclusivamente criptate
Gestione quota per dominio e per utente
* Certificati: Let's encrypt (certbot)
Memorizzazione ultimo login
* Gestione quota per dominio e per utente
Calendario CalDAV e Rubrica CardDAV usando ???
* Memorizzazione nel database dell'ultimo login  
Webmail: Roundcube
* TODO Calendario CalDAV e Rubrica CardDAV
Filtri Sieve personalizzabili dagli utenti
* Webmail: Roundcube
* TODO Filtri Sieve personalizzabili dagli utenti


=Convenzioni=
=Convenzioni=
*MYSQLHOST = l'host su cui è installato mysql, può essere localhost
{{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)
*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==
==Postfix==
da verificare!
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}}
{{Codice|user=root|apt-get install postfix-mysql}}
==Dovecot==
==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}}
Riga 32: Riga 58:
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.
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=
=Configurazione=


==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 eseguire il seguente codice da un altro host:
{{Codice|<nowiki>echo | openssl s_client -connect MAILHOST:imaps | openssl x509 -noout -text</nowiki>}}
==Autenticazione SASL Postfix con Dovecot==
==Autenticazione SASL Postfix con Dovecot==
{{Codice|user=root|nano /etc/dovecot/conf.d/10-master.conf}}
{{Codice|user=root|nano /etc/dovecot/conf.d/10-master.conf}}
Riga 74: Riga 92:


(nota: aggiungere tutte le altre restrizioni adottate)
(nota: aggiungere tutte le altre restrizioni adottate)
==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://www.sbarjatiya.com/notes_wiki/index.php/Postfix_SMTP_authentication_using_dovecot
*https://doc.dovecot.org/admin_manual/post_login_scripting/

Versione attuale delle 11: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 :-)