SSL
Correu segur a Internet #
- Passos registrar nom DNS / crear DNS
- Generar certificat gratuit amb Let's encrypt O un autofirmat
- Instal·lar i configurar postfix, dovecot
- Configurar postfix / dovecot per apuntar al certificat
Generar Certificat #
Opció 1: Let's Encrypt #
- Aquesta opció requereix d'un DNS registrat a Internet. Si vols utilitzar un gratuït pots utilitzar els dominis tk
apt install certbot
certbot certonly --standalone -d mail.elmeudomini.tk
Opció 2 : autofirmat amb openssl #
- Aquesta via ens genera un certificat que demanarà que el client es fii de nosaltres perquè el firmem nosaltres i no està penajt a la cadena de confiança del software client
- Qualsevol d'aquestes opcions és vàlida. Recorda deixar els fitxer a etc. Normalment es deixa /etc/ssl/certs pel certificat i a /etc/ssl/private per les claus
openssl genrsa -out domain.key 1024
openssl req -new -key domain.key -out domain.csr
openssl x509 -req -days 3650 -in domain.csr -signkey domain.key -out domain.crt
ALTERNATIVA
sudo openssl req -new -x509 -nodes -out certificatpostfix.crt -keyout keypostfix.key
Configurar postfix per a utilitzar el certificat #
Apuntar postfix al path dels certificat #
- Li diem a postfix on es troba el certificat
sudo postconf -e 'smtpd_tls_cert_file = /etc/letsencrypt/live/elmeudomini.tk/fullchain.pem'
sudo postconf -e 'smtpd_tls_key_file = /etc/letsencrypt/live/elmeudomini.tk/privkey.pem'
Els paths anteriors són els de let's encrypt si has fet un autofirmat posa el path que t'hagi sortit
Configurar postfix per utilitzar el tunel TLS #
- Tant a smtp_tls_security_level com a smtpd_tls_security_level el valor pot ser may, per deixar escollir al client si utilitza la SSL o no, o encrypt per obligar a utilitzar-la
sudo postconf -e 'smtp_tls_security_level = may'
sudo postconf -e 'smtpd_tls_security_level = may'
sudo postconf -e 'smtp_tls_note_starttls_offer = yes'
sudo postconf -e 'smtpd_tls_loglevel = 1'
sudo postconf -e 'smtpd_tls_received_header = yes'
Configurar per arrancar smpts #
A /etc/postfix/master.cf descomentar linea: #
- Si volem utilitzar un canal separat per a smtp i smtps descomentem la següent linea per obrir el port 465 (smtps)
- Amb starttls no és necessari
smtps inet n - y - - smtpd
Verificació postfix ambd ssl/tls #
- Verifiquem el servei utilitzant terminal abans de provar el software de client (thunderbird)
- Per enviar el correu ens connectem via ssl i recuperem amb les instruccions del protocol
openssl s_client -connect elmeudomini.local:25 -starttls smtp
openssl s_client -connect elmeudomini.local:465 -starttls smtp
Configurar autenticació a postfix (opcional) #
- Aquesta configuració s'afegeix tal qual a postfix (main.cf) per a poder utilitar autenticació en l'enviament.
sudo postconf -e 'smtpd_sasl_type = dovecot'
sudo postconf -e 'smtpd_sasl_path = private/auth'
sudo postconf -e 'smtpd_sasl_local_domain ='
sudo postconf -e 'smtpd_sasl_security_options = noanonymous'
sudo postconf -e 'broken_sasl_auth_clients = yes'
sudo postconf -e 'smtpd_sasl_auth_enable = yes'
sudo postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
Configurar dovecot #
/etc/dovecot/conf.d/10-auth.conf #
- El primer paràmetre deshabilita la recuperació remota de correus si no s'utilitza xifrat
- La segona em permet utilizar el mètode login (usuari i password xifrat)
disable_plaintext_auth = yes
...
auth_mechanisms = plain login
/etc/dovecot/conf.d/10-ssl.conf #
- Li diem a dovecot que es requereix SSL i el path dels certificats i claus
ssl = required
ssl_cert = </etc/letsencrypt/live/elmeudomini.tk/fullchain.pem
ssl_key = </etc/letsencrypt/live/elmeudomini.tk/privkey.pem
#La següent no fa falta
ssl_protocols = !SSLv2 !SSLv3
Verificació dovecot amb ssl/tls #
- Verifiquem el servei utilitzant terminal abans de provar el software de client (thunderbird)
- Per recuperar el correu ens connectem via ssl i recuperem amb les instruccions del protocol
openssl s_client -connect elmeudomini.local:995