bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


email_linux_docker

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
email_linux_docker [2022/01/20 09:02]
enrique_mieza_sanchez [Requisits]
email_linux_docker [2023/06/30 13:53] (actual)
enric_mieza_sanchez [Email Linux amb Docker]
Línia 2: Línia 2:
 El servei de [[https://www.cacauet.org/wiki/index.php/Correu_electr%C3%B2nic|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 servei de [[https://www.cacauet.org/wiki/index.php/Correu_electr%C3%B2nic|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]].+El sistema de contenidors [[Docker]] ens facilita tota aquesta posada en marxa del servei. **Utilitzarem [[https://docker-mailserver.github.io/docker-mailserver/edge/|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: Articles de referència:
Línia 8: Línia 8:
   * [[https://www.cacauet.org/wiki/index.php/E-mail_Linux_amb_Docker|Article font a cacauet.org]]   * [[https://www.cacauet.org/wiki/index.php/E-mail_Linux_amb_Docker|Article font a cacauet.org]]
   * [[Docker]]   * [[Docker]]
-  * Docker mailserver: https://github.com/docker-mailserver/docker-mailserver+  * Docker mailserver: 
 +    * [[https://github.com/docker-mailserver/docker-mailserver|Repositori Github de docker-mailserver]] 
 +    * [[https://docker-mailserver.github.io/docker-mailserver/edge/|Documentació oficial docker-mailserver]]
  
 {{ email.jpg?300 }} {{ email.jpg?300 }}
Línia 45: Línia 47:
   - [[https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-14-04|Afegir memòria virtual (swap)]].   - [[https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-14-04|Afegir memòria virtual (swap)]].
   - Instal·lar Docker.   - Instal·lar Docker.
-  - Descarregar docker-mailserver<code>DMS_GITHUB_URL='https://raw.githubusercontent.com/docker-mailserver/docker-mailserver/master'+  - Descarregar el fantàstic [[https://cacauet.org/wiki/index.php/Correu_electr%C3%B2nic|docker-mailserver]]<code>DMS_GITHUB_URL='https://raw.githubusercontent.com/docker-mailserver/docker-mailserver/master'
 wget "${DMS_GITHUB_URL}/docker-compose.yml" wget "${DMS_GITHUB_URL}/docker-compose.yml"
 wget "${DMS_GITHUB_URL}/mailserver.env" wget "${DMS_GITHUB_URL}/mailserver.env"
Línia 54: Línia 56:
   - Obrir els ports del servei d'email (25,143,465,587,993)   - Obrir els ports del servei d'email (25,143,465,587,993)
   - (Només en AWS) Sol·licitar obertura port 25 al proveïdor de Cloud   - (Només en AWS) Sol·licitar obertura port 25 al proveïdor de Cloud
 +  - Posa en marxa el servidor amb<code>$ docker-compose up -d</code>
 +
 +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:
 +  - Configura un client d'email per tal què utilitzi el nostre servidor. Es recomana:
 +    - Thunderbird o Outlook des del PC.
 +    - FairMail o Bluemail per a mòbil Android.
 +  - Comprova que funciona enviant i rebent emails.
 +  - És molt fàcil que els nostres emails vagin a la carpeta de SPAM. Veuràs que en Gmail a la icona del remitent sol sortir un interrogant que ens indica que l'origen no és fiable.
 +
 +\\
 +
 +===== Activar SSL =====
 +Segueix la [[https://docker-mailserver.github.io/docker-mailserver/edge/config/security/ssl/|documentació per activar el protocol IMAPS (IMAP + SSL)]].
 +
 +<WRAP important>
 +A l'activar el SSL, el port per accedir al correu serà el **port 993 (IMAPS)** enlloc del 143 (IMAP).
 +</WRAP>
 +
 +<WRAP tip>
 +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. 
 +</WRAP>
 +
 +\\
 +
 +===== Afegint webmail =====
 +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'':
 +
 +<WRAP tip>
 +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:
 +
 +<code>
 +    - ROUNDCUBE_DEFAULT_HOST=mail
 +    - ROUNDCUBE_DEFAULT_PORT=143
 +</code>
 +
 +</WRAP>
 +
 +<file yaml docker-compose.yml>
 +  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
 +</file>
 +
 +\\
  
 ===== Seguretat i SPAM ===== ===== Seguretat i SPAM =====
  
 +La seguretat del nostre servei gira entorn de 3 eixos principals:
 +  * **Exploits**: si el nostre servei és "petable" (per un bug o alguna operació maliciosa que explota una debilitat) el nostre sistema es pot fer vulnerable a intrusions. Per combatre això convé:
 +    * Estar a la darrera versió del sistema operatiu (al menys en el parxes de seguretat) i del servei que fem servir.
 +    * Utilitzar docker per aïllar parts del sistema. Si el procés de correu és vulnerable, una possible intrusió només podrà accedir als arxius de correu, i no a altres serveis.
 +  * **Virus**: l'email és una gran porta d'entrada al sistema. Poden entrar virus i usuaris incautes poden introduir-los involuntàriament en el sistema. Calen diverses eines:
 +    * Antivirus servidor: Clam / Amavis (incloses al docker-mailserver)
 +    * Antivirus PC client: Avast, Panda, .
 +  * **SPAM**: el maldecap més gran per a la implantació d'un servidor de correu. Ens calen 2 tipus d'eines:
 +    * SpamAssassin : ens permet filtrar els ''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.
 +  * Sistemes de signatura per validació i reputació del nostre servidor de correu (SPF, DKIM, DMARC)
 +
 +==== Signatura, autenticitat i reputació dels nostres emails ====
 +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:
 +  * [[https://es.wikipedia.org/wiki/Sender_Policy_Framework|SPF]]: és el sistema més fàcil d'implantar. Inclourem certa informació als registres TXT del DNS per tal d'associar unes IPs concretes des de les que serà vàlid enviar els correus del nostre domini.
 +  * [[https://es.wikipedia.org/wiki/DomainKeys_Identified_Mail|DKIM]]: bàsicament consisteix en signar tots els emails amb una clau privada, i presentar la clau pública al servidor DNS.
 +  * [[https://dmarc.org/|DMARC]]: no és pròpiament un sistema de seguretat activa. Es tracta de publicar al DNS les polítques per decidir què fer si un email amb remitent del nostre domini no compleix amb les mesures SPF i DKIM.
 +
 +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.
 +
 +==== Comprovant la nostra reputació ====
 +Utilitza aquesta eina per saber si has configurat correctament els diferents sistemes de signatura i validació d'autenticitat dels nostres emails.
 +
 + https://www.mail-tester.com/
 +
 +<WRAP todo>
   - Proves spam   - Proves spam
   - Posar a punt SPF   - Posar a punt SPF
Línia 62: Línia 155:
   - Posar a punt DKIM   - Posar a punt DKIM
   - Proves spam   - Proves spam
- +</WRAP>
- +
  
email_linux_docker.1642669356.txt.gz · Darrera modificació: 2022/01/20 09:02 per enrique_mieza_sanchez