El servei de correu electrònic és força complexe ja que es composa de diversos processos o daemons. A part del típic servei de MTA (postfix, sendmail, etc.) ens cal també un servei de Fetchmail (Courier, Dovecot), antivirus, anti-spam, etc., a part de configurar els certificats i modes d'autenticació encriptada.
El sistema de contenidors Docker ens facilita tota aquesta posada en marxa del servei. Utilitzarem docker-mailserver: un contenidor que integra tots els serveis necessaris per al funcionament del correu electrònic i n'ha fet una versió «dockeritzada». Per poder fer aquesta pràctica cal que estiguis fortament familiaritzat amb Docker.
Articles de referència:
Per poder posar un servidor de email ens cal:
Servidor:
Domini:
Servei email:
DMS_GITHUB_URL='https://raw.githubusercontent.com/docker-mailserver/docker-mailserver/master' wget "${DMS_GITHUB_URL}/docker-compose.yml" wget "${DMS_GITHUB_URL}/mailserver.env" wget "${DMS_GITHUB_URL}/setup.sh" chmod a+x ./setup.sh
$ ./setup.sh email add [email protected] ietipasswd
$ cat docker-data/dms/config/postfix-accounts.cf
$ docker-compose up -d
De moment el servidor només funciona amb IMAP sense seguretat, pel que ens connectarem pel port 143. Quan configurem els certificats podrem utilitzar el port 993.
Test:
Segueix la documentació per activar el protocol IMAPS (IMAP + SSL).
A l'activar el SSL, el port per accedir al correu serà el port 993 (IMAPS) enlloc del 143 (IMAP).
La variable clau és SSL_TYPE
(a mailserver.env
) que es pot configurar:
self-signed
: cal deixar els propis certificats autofirmats en unes carpetes particulars.manual
: podem indicar a l'arxiu .env
on son els arxius amb els certificats.
Afegirem una interfície de webmail amb el software de Roundcube. Afegiu el següent servei al vostre docker-compose.yml
. Es publicarà la web al port 9002, que seria convenient mapejar a un subdomini com webmail.elmeudomini.com
:
Aquest arxiu està configurat per utilitzar SSL (IMAPS). Si no has configurat SSL (port 993), canvia les variables perquè utilitzin el port IMAP clàssic:
- ROUNDCUBE_DEFAULT_HOST=mail - ROUNDCUBE_DEFAULT_PORT=143
roundcube: image: robbertkl/roundcube:latest hostname: webmail domainname: webmail.elmeudomini.com container_name: roundcube restart: always ports: - "9002:80" depends_on: - mail environment: - ROUNDCUBE_DEFAULT_HOST=ssl://mail - ROUNDCUBE_DEFAULT_PORT=993 - ROUNDCUBE_SMTP_SERVER=tls://mail - ROUNDCUBE_SMTP_PORT=587 - ROUNDCUBE_MANAGESIEVE_HOST=mail - ROUNDCUBE_MANAGESIEVE_USETLS=true volumes: - ./roundcube_db:/var/www/db
La seguretat del nostre servei gira entorn de 3 eixos principals:
spam
a la nostra inbox
(inclòs al docker-mailserver). Sol aprendre sol en base a algorismes heurístics, però té algunes comandes per «ensenyar-lo» i apuntar-li quins son els autèntics SPAM. Tenir [https://es.wikipedia.org/wiki/Honeypot un
'honeypot
' sol ser interessant] pel bon funcionament del server.
El SPAM (correu no sol·licitat o correu brossa
) és una de les grans dificultats per desplegar un servidor d'email. Al ser un sistema obert, on tothom pot enviar a qualsevol adreça, el perill de tenir la inbox inundada i fer el servei inutilitzable obliga a algun tipus de protecció per tal que el sistema sigui usable pels usuaris finals.
Els grans proveidors de comptes de correu (Google, Hotmail, Yahoo) van idear certes mesures per assegurar l'origen dels emails, i impedir que qualsevol pugues enviar un email amb qualsevol remitent (cosa que d'entrada era i segueix sent possible). D'aquests sistemes, en destaquem aquests 3:
Aquests mecanismes permeten als sistemes destinataris identificar si el correu que li arriba és bo. Si no quadra, la probabilitat de que sigui SPAM és molt alta i el filtra cap a la spam box.
Utilitza aquesta eina per saber si has configurat correctament els diferents sistemes de signatura i validació d'autenticitat dels nostres emails.