Diferència entre revisions de la pàgina «E-mail Linux amb Docker»

De Cacauet Wiki
Salta a la navegació Salta a la cerca
Línia 23: Línia 23:
  
 
=== Creant comptes ===
 
=== Creant comptes ===
...
+
Abans que el nostre servidor sigui operatiu caldrà crear diversos comptes d'usuari. Per fer-los consulta el README del docker.
 +
 
 +
Recorda que pots crear comptes de diferents dominis, fes-ne al menys de 2 dominis diferents.
  
 
<br>
 
<br>

Revisió del 17:26, 1 gen 2017


Introducció

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. Bé, en concret Docker solament no, sinó algú que s'ha currat el sistema de correu complert i n'ha fet una versió dockeritzada. Per poder fer aquesta pràctica cal que estiguis fortament familiaritzat amb Docker.


Posta en marxa del docker

Explorant imatges de Docker

Per veure quines opcions tenim podem executar:

$ docker search mail

A mi m'ha funcionat prou bé la versió de Thomas Vial, que és la 1a que surt a la llista amb força "stars" (aka "likes"). Podeu trobar el codi aquí per tafanejar-lo:

https://github.com/tomav/docker-mailserver

Posta en marxa del mailserver

Caldrà que coneguis docker-composer per posar en marxa el docker-mailserver.

Segueix les instruccions que explica el desenvolupador en el README.

Creant comptes

Abans que el nostre servidor sigui operatiu caldrà crear diversos comptes d'usuari. Per fer-los consulta el README del docker.

Recorda que pots crear comptes de diferents dominis, fes-ne al menys de 2 dominis diferents.


Accedint des de clients

Test amb TELNET

Podem enviar un missatge al nostre servidor, sempre i quan el destinatari sigui alguna bústia interna. Proveu d'accedir al port 25 del vostre servidor de forma externa, i feu un email tal i com explica l'apartat "SMTP transport example" de l'aritcle sobre SMTP de la Vikipèdia.

D'aquesta manera podreu veure una mica més en detall com funcionen els internals del SMTP.

Proveu també d'enviar un email a una adreça externa, i mostra a l'informe quin error et dona.

Proveu també de fer el mateix des del propi servidor. Veureu que feu el telnet des de localhost podreu enviar emails on vulgueu, i no només a les adreces internes.

Accedint via IMAPS

Configura una aplicació client d'email (com Outlook, Thunderbird, etc.) per a accedir al teu servidor i llegir els correus via IMAPS.

És important accedir a través de la versió segura (IMAPS al port 993 i no al IMAP - port 143) per permetre la confidencialitat de la transferència de dades.

Tingues en compte que al no tenir els certificats no la validació del SSL no serà correcta. Cal configurar la utilització del SSL sense verificació dels certificats.


Webmail

Busca una imatge Docker d'un software de webmail, instal·la-la en el teu servidor i configura-la perquè es connecti al servidor de correu que hem realitzat fins ara.

Per alguns d'aquests softwares més sofisticats (com Roundcube) caldrà que instal·lis també una base de dades MySQL (guarda configuracions de la interfície, preferències d'usuari, etc.). Altres més senzills potser no la necessiten.


Tunejant el servidor

Per acabar de fer un sistema competent, necessitarem diversos ajustos:

  • Familiaritza't amb AMAVIS, el software que gestiona el antivirus i el anti-spam (spamassassin):
    https://help.ubuntu.com/community/PostfixAmavisNew
  • Millora la detecció del anti-spam amb aquests consells:
    http://linux.kieser.net/salearn.html


Ampliacions possibles

Si amb això no has tingut prou:

  1. Activa el protocol POP3 i comprova-ho amb un client.
  2. Activa FAIL2BAN tal i com s'explica a la web del contenidor, i comprova que funciona.
    • Per defecte FAIL2BAN et baneja la teva IP durant 8 hores si falles 3 cops consecutius en un login.
    • Modifica FAIL2BAN per canviar el paràmetre dels 3 errors i fer que siguin 10.
  3. Utilitzant TELNET:
    • Envia un email amb autenticació via SMTP + STARTSSL.
    • Accedeix a llegir els missatges via IMAP sense encriptació.
    • Accedeix a llegir els missatges via POP3 sense encriptació.
  4. Troba la manera de canviar dinàmicament la contrasenya dels usuaris que tens al teu sistema dockeritzat.
    • Investiga com fer-ho des de la pròpia línia de comandes del contenidor.
    • Fes un script per canviar la contrasenya d'un usuari de forma interactiva.
    • Fes una pàgina web que permeti modificar la contrasenya d'un compte.
  5. Prova el mateix que hem fet fins ara per la creació o eliminació de comptes de forma dinàmica.
  6. Modifica el Dockerfile del contenidor per permetre que tinguem un servidor d'email catch-all (captura tots els correus que arriben, no rebutja cap).
  7. ...