en Cloud, Desarrollo, Docker, Email, Ubuntu

Servidor de correos en 5 minutos

Sabemos que crear e instalar un servidor de correos es un dolor de cabeza. Si eres como yo, en algún momento haz pensado en crear uno y te topas con muchísimos problemas. El problema número 1 es saber qué se necesita para tener un servidor de correos. La respuesta a esa pregunta puede ser muy larga.

Pero no te preocupes

En Klooid tenemos una solución para tí y es Docker + Poste.io.

Poste.io es un servidor SMTP + IMAP + POP3 + Antispam + Antivirus. Es decir, todo incluido; con las cosas que necesitas para montar tu servidor de correos. Quizás puedes preguntarte cómo hacer para instalar un SMTP, IMAP, POP3, Antispam y Antivirus – Super fácil. ?

Paso 1

Lo primero que necesitas es adquirir un servidor que corra Ubuntu y en Klooid te podemos oferecer dicho servidor ☁️.

Ya que tienes acceso al servidor con Ubuntu, lo que debemos hacer es actualizar el sistema. Esto siempre es necesario y lo hacemos de la siguiente forma:

sudo apt update && sudo apt upgrade -y

Cuando ya tienes el servidor actualizado puedes pasar al siguiente paso.

Paso 3: Instalar Docker

En resumen, Docker es un proyecto de código abierto con el que podemos crear de forma simple contenedores. Dichos contenedores pueden ser definidos como «Maquinas virtuales ligeras» las cuales tiene un bajo consumo.

Para instalar docker debemos hacer lo siguiente:

1. Borrar cualquier versión anterior de Docker (en caso que haya alguna).

sudo apt-get remove docker docker-engine docker.io containerd runc

2. Actualizar los paquetes de apt.

sudo apt-get update

3. Instalar los paquetes necesarios para correr Docker.

sudo apt-get install docker-ce docker-ce-cli containerd.io

Cuanto ya tienes instalado Docker puedes seguir con el siguiente paso y el más divertido de todos ?.

Paso 4: Instalar lo prometido, nuestro servidor de correos.

Para ello debemos abrir la consola (claro, ya la teniamos abierta) y vamos a correr los siguientes comandos, pero primero te explico que significa cada linea.

docker run \
    --net=host \
    -e TZ=Europe/Prague \
    -v /your-data-dir/data:/data \
    --name "mailserver" \
    -h "mail.example.com" \
    -t analogic/poste.io

docker run: Es un comando que te va a permitir correr e inciar comandos para Docker.

–net=host: Es necesario mantener «host» , este parametro es para que la red del contenedor se comporte como si fuera la del host.

-e TZ=Europe/Prague : Este comando configura la zona horaria de tu servidor, lo cual es sumamente importante, puedes saber tu «codigo» en el siguiente link: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

-v /your-data-dir/data:/data: Este comando le dice a docker donde debe guardar los datos de poste.io, te recomiendo usar un folder con los permisos para que pueda ser escrito dentro por Docker.

–name «mailserver»: Simple, el nombre del contenedor para identificarlo fácilmente.

-h «mail.example.com» : Este comando es sumamente importante ya que debes configurar con anterioridad tu dominio para que mail.example.com apunte al IP que te brindamos en Klooid.

-t analogic/poste.io : Y por último, esta línea lo que le indica a Docker es el nombre de la imagen que debe usar para poder correr este servicio.

Ya que sabemos para que son cada uno de los comandos, vamos a correrlos y ver que pasa. (Click en el video). Detalles oficiales.

Cuando ya haya finalizado vas a ver un texto como el siguiente:

En la línea verde se indica que el servidor está disponible en el puerto 443 y en el puerto 80 de tu instancia.

Conclusión

Iniciar un servidor de correos con Docker y con poste.io es súper fácil. Debes tener en cuenta que para ello es importante configurar previamente tu dominio y apuntar el sub-dominio mail.tudominio.com al IP del servidor de Klooid y, de esta forma, let’s encrypt va a poder generar los certificados que necesita el servidor para funcionar.

Resultado

Login de tu servidor de correos
Panel de control donde vas poder controlar los aspectos más importantes de tu servidor.
Tips:

Recomendaciones. Puedes usar la herramienta https://mxtoolbox.com para analizar tu dominio y estar seguro de que no haya problemas con la configuracion de los DNS.

Recuerda que deben estar configurados los _dmarc , domain_key , mx , cname y los respectivos TXT. Digno de un post de hecho.

Escribe un comentario

Comentario

  1. Hola Diego,

    Si quieres usar otros puertos lo que puedes hacer es poner un nginx delante de postio, con esto configurar un reverse proxy directo al contenedor.

    Así puedes gestionar directamente la entrada a tu portal web directamente desde nginx desde el puerto que gustes.

    Quizá modificando el mismo nginx de postio puedas hacerlo también pero yo prefiero dejar eso limpio y cualquier cosa custom, hacerlo desde fuera.

    Un saludo.

  2. Una consulta, sabes como puedo cambiar el puerto 25 SMTP por defecto en Haraka no enceuntro la ruta /config/smtp.ini dentro del contenedor?