bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


Barra lateral

ASIX Administració de Sistemes Informàtics i Xarxes
Tots els mòduls del cicle
MP01 Implantació de sistemes operatius
Totes les UFs del modul
MP02 Gestió de bases de dades
Totes les UFs del modul
MP03 Programació bàsica
Totes les UFs del modul
MP04 Llenguatges de marques i sistemes de gestió d'informació
Totes les UFs del modul
MP05 Fonaments de maquinari
Totes les UFs del modul
MP06 Administració de sistemes operatius
Totes les UFs del modul
MP07 Planificació i administració de xarxes
Totes les UFs del modul
MP08 Serveis de xarxa i Internet
Totes les UFs del modul
MP09 Implantació d'aplicacions web
Totes les UFs del modul
MP10 Administració de sistemes gestors de bases de dades
Totes les UFs del modul
MP11 Seguretat i alta disponibilitat
Totes les UFs del modul
MP12 Formació i orientació laboral
Totes les UFs del modul
MP13 Empresa i iniciativa emprenedora
Totes les UFs del modul
MP14 Projecte
Totes les UFs del modul
DAM Desenvolupament d’aplicacions multiplataforma
Tots els mòduls del cicle
MP01 Sistemes informàtics
Totes les UFs del modul
MP02 Bases de dades
Totes les UFs del modul
MP03 Programació bàsica
Totes les UFs del modul
MP04 Llenguatges de marques i sistemes de gestió d'informació
Totes les UFs del modul
MP05 Entorns de desenvolupament
Totes les UFs del modul
MP06 Accés a dades
Totes les UFs del modul
MP07 Desenvolupament d’interfícies
Totes les UFs del modul
MP08 Programació multimèdia i dispositius mòbils
Totes les UFs del modul
MP09 Programació de serveis i processos
Totes les UFs del modul
MP10 Sistemes de gestió empresarial
Totes les UFs del modul
MP11 Formació i orientació laboral
Totes les UFs del modul
MP12 Empresa i iniciativa emprenedora
Totes les UFs del modul
MP13 Projecte de síntesi
Totes les UFs del modul
MPDual Mòdul Dual / Projecte
DAW Desenvolupament d’aplicacions web
Tots els mòduls del cicle
MP01 Sistemes informàtics
Totes les UFs del modul
MP02 Bases de dades
Totes les UFs del modul
MP03 Programació
Totes les UFs del modul
MP04 Llenguatge de marques i sistemes de gestió d’informació
Totes les UFs del modul
MP05 Entorns de desenvolupament
Totes les UFs del modul
MP06 Desenvolupament web en entorn client
Totes les UFs del modul
MP07 Desenvolupament web en entorn servidor
Totes les UFs del modul
MP08 Desplegament d'aplicacions web
Totes les UFs del modul
MP09 Disseny d'interfícies web
Totes les UFs del modul
MP10 Formació i Orientació Laboral
Totes les UFs del modul
MP11 Empresa i iniciativa emprenedora
Totes les UFs del modul
MP12 Projecte de síntesi
Totes les UFs del modul
SMX Sistemes Microinformàtics i Xarxes
Tots els mòduls del cicle
MP01 Muntatge i manteniment d’equips
Totes les UFs del modul
MP02 Sistemes Operatius Monolloc
Totes les UFs del modul
MP03 Aplicacions ofimàtiques
Totes les UFs del modul
MP04 Sistemes operatius en xarxa
Totes les UFs del modul
MP05 Xarxes locals
Totes les UFs del modul
MP06 Seguretat informàtica
Totes les UFs del modul
MP07 Serveis de xarxa
Totes les UFs del modul
MP08 Aplicacions Web
Totes les UFs del modul
MP09 Formació i Orientació Laboral
Totes les UFs del modul
MP10 Empresa i iniciativa emprenedora
Totes les UFs del modul
MP11 Anglès
Totes les UFs del modul
MP12 Síntesi
Totes les UFs del modul
CETI Ciberseguretat en Entorns de les Tecnologies de la Informació
Tots els mòduls del cicle
CiberOT Ciberseguretat en Entorns d'Operació
Tots els mòduls del cicle
email_linux_docker

Email Linux amb Docker

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:

Web


Requisits

Per poder posar un servidor de email ens cal:

  • Un servidor (màquina virtual o real), al núvol o on-premises, però sempre ha d'estar online.
  • Una IP estàtica i que no estigui banejada. Es pot comprovar a https://spamhaus.org
    • És important que quan reservem una màquina virtual al nostre proveïdor, ens assegurem que la IP no està banejada. En cas de que ho estigui, caldrà sol·licitar-ne una altra o bé demanar que la treguin de la «llista negra» de spamhaus.org .


Instal·lació

Servidor:

  1. Posar en marxa un servei al cloud com AWS o com-crear-un-servidor-a-Microsoft-Azure.
  2. Crear una VM
  3. Si estem en AWS, afegir-li una Elastic IP (altrament la IP serà dinàmica i no ens valdrà).
  4. Comprovar que la IP no està banejada a spamhaus.org
    1. Si ho està, sol·licitar que ens la retirin de la llista de spamhaus.org o bé canviar la IP de la VM.
  5. Connectar-nos a la VM
  6. Obrir ports web.
  7. Instal·lar Apache i testejar.

Domini:

  1. Reservar un domini a http://freenom.com i apuntar-lo al nostre servidor.
  2. Testejar el domini amb Apache.
  3. Apuntar també els registres MX

Servei email:

  1. Instal·lar Docker.
  2. Descarregar el fantàstic docker-mailserver
    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
  3. Afegir usuaris (comptes), per exemple:
    $ ./setup.sh email add [email protected] ietipasswd
  4. Comprovar que es creen usuaris a l'arxiu:
    $ cat docker-data/dms/config/postfix-accounts.cf
  5. Obrir els ports del servei d'email (25,143,465,587,993)
  6. (Només en AWS) Sol·licitar obertura port 25 al proveïdor de Cloud
  7. Posa en marxa el servidor amb
    $ 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:

  1. Configura un client d'email per tal què utilitzi el nostre servidor. Es recomana:
    1. Thunderbird o Outlook des del PC.
    2. FairMail o Bluemail per a mòbil Android.
  2. Comprova que funciona enviant i rebent emails.
  3. É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 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:

  1. self-signed : cal deixar els propis certificats autofirmats en unes carpetes particulars.
  2. manual : podem indicar a l'arxiu .env on son els arxius amb els certificats.


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:

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
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


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:

  • 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.
  • DKIM: bàsicament consisteix en signar tots els emails amb una clau privada, i presentar la clau pública al servidor DNS.
  • 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/

  1. Proves spam
  2. Posar a punt SPF
  3. Proves spam
  4. Posar a punt DKIM
  5. Proves spam
email_linux_docker.txt · Darrera modificació: 2023/06/30 13:53 per enric_mieza_sanchez