Installazione server di posta: differenze tra le versioni
Gvf (discussione | contributi) (uso letsencrypt) |
Gvf (discussione | contributi) (+ 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 | ||
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= | =Caratteristiche= | ||
Gestione IMAP e POP3 : Dovecot | * Gestione IMAP e POP3 : Dovecot | ||
Gestione SMTP : Postfix | * Gestione SMTP e submission: Postfix | ||
Configurazione delle caselle di posta | * 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 | * 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 | {{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 | 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= | ||
==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
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
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.
apt-get install postfix-mysql |
Dovecot
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
apt-get install certbot |
Configurazione
Autenticazione SASL Postfix con Dovecot
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 } }
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
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
/etc/init.d/dovecot restart |
Per verificare il certificato utilizzato dal server per i vari protocolli eseguire il seguente codice (da un altro host):
echo | openssl s_client -connect MAILHOST:imaps | openssl x509 -noout -text |
echo | openssl s_client -connect MAILHOST:pop3s | openssl x509 -noout -text |
echo | openssl s_client -starttls smtp -connect MAILHOST:submission | openssl x509 -noout -text |
e se abilitato su postfix:
echo | openssl s_client -starttls smtp -connect MAILHOST:smtp | openssl x509 -noout -text |
Fonti utilizzate
in ordine rigorosamente casuale :-)