6/11/22, 23:22 Tu propio servidor de correo en 20 minutos - Tecnolitas
Tu propio servidor de correo en 20
minutos
Instala un servidor de correo multi-dominio
1.Elegir un alojamiento y un nombre de dominio
2.Creating DNS MX Record
3. Configuring Hostname
Paso 4: Configuración del servidor de correo en Ubuntu 20.04 con
iRedMail
Paso 5: Instalación del certificado Let’s Encrypt TLS
Obtención del certificado
Fallo en la obtención del certificado TLS
Instalación del certificado en Nginx
Instalación del certificado TLS en Postfix y Dovecot
Paso 6: Envío del correo electrónico de prueba
Añadir espacio de intercambio
Paso 7: Comprobar si el puerto 25 (de salida) está bloqueado
¿Sigues sin poder enviar un correo electrónico?
Paso 8: Uso de clientes de correo en su ordenador o dispositivo
móvil
Fail2ban Bloqueo de su propia dirección IP
Paso 9: Mejorar la capacidad de entrega del correo electrónico
Registro PTR
¿En que puedo ayudarte?
Registro SPF
https://tecnolitas.com/blog/tu-propio-servidor-de-correo/ 1/39
6/11/22, 23:22 Tu propio servidor de correo en 20 minutos - Tecnolitas
Registro DKIM
Registro DMARC
Paso 10: Prueba de puntuación y colocación del correo electrónico
Solución de problemas
Cómo renovar el certificado TLS
Crear un Cron Job
Instala un servidor de correo multi-dominio
Una de las cuestiones a la que antes te vas a enfrentar si estas desarrollando
proyectos digitales es la necesidad de disponer de direcciones de correos
para tus proyectos. No es tanto la necesidad de de direcciones de correo
como la de un transporte de correos que te permita enviar correos a tu
comunidad o tus clientes.
Podrías usar cuentas gratuitas de Google para enviar correos desde tu página
web, por supuesto, incluso cuando no tienes una cuenta de pago GSuite,
puedes usar sus servidores como transporte SMPT para tu correo, el
inconveniente es que no seria una cuenta de correo con tu dominio, seria una
cuenta del dominio @gmail.com, a no ser que pagues una cuenta Gsuite y
asocies tu dominio a ella, con lo que además tendrías almacenamiento en
Google Drive y derecho a usar Google Workspace.
Si tienes un solo proyecto no es una mala solución, usas una dirección de
correo del tipo
[email protected] o si quieres algo mas profesional o
¿En que puedo ayudarte?
corporativo, compras un dominio en namecheap.com o en arsys.es si prefieres
https://tecnolitas.com/blog/tu-propio-servidor-de-correo/ 2/39
6/11/22, 23:22 Tu propio servidor de correo en 20 minutos - Tecnolitas
un dominio . es para España y creas una cuenta Google Workspace asociada a
ese dominio, con lo que te quedaría una cuenta del tipo
[email protected] y podrías usas Google como SMTP para los correos de tu pagina web y enviar
tu newsletter.
Si instalas tu propio servidor de correo, puedes tener tantos dominios como
quieras y servir correo desde estos dominios, podrás incluso dar servicio de
correo electrónico a tus clientes, si quisieras hacerlo.
Configurar tu propio servidor de correo electrónico en Linux desde cero es un
proceso largo y tedioso, un dolor de cabeza si no eres un usuario avanzado.
Incluso cuando el correo electrónico es algo que usas a diario y parece trivial,
son muchos los procesos y protocolos que intervienen en este servicio.
Por un lado tenemos el servicio que envía y recibe correos, SMTP, también
esta el servicio IMAP, con el que accedes a los correos del servidor y organizas
tus correos.
Necesitamos un servidor de aplicaciones web para poder acceder a los
interfaces de las aplicaciones mediante un navegador y consultar nuestro
correo web por ejemplo.
Necesitamos también una base de datos donde almacenar los nombres de los
dominios y los usuarios de estos dominios para los que vamos a gestionar el
correo.
necesitamos una serie de aplicaciones que certifiquen la autenticidad de los
dominios y las firmas de los correos así como algún antivirus que proteja
nuestro servidor de correo y a los clientes a los que damos servicio o a
nosotros mismos.
Necesitamos una herramienta de webmail para poder consultar el correo
además de usar alguna aplicación cliente para recibir el correo en el móvil o
en el ordenador. Podemos también dotar a la instalación de herramientas para
tener calendarios, contactos y tareas y sincronizarlas entres nuestros
dispositivos.
¿En que puedo ayudarte?
https://tecnolitas.com/blog/tu-propio-servidor-de-correo/ 3/39
6/11/22, 23:22 Tu propio servidor de correo en 20 minutos - Tecnolitas
Como resulta realmente complicado montar todos estos servicios y revisar un
montón de ficheros de configuración con protocolos e integraciones, vamos a
usar iRedMail, que es un script de shell que instala y configura
automáticamente todos los componentes necesarios del servidor de correo en
su servidor Linux/BSD, eliminando así la instalación y configuración manual.
Con iRedMail, puede crear fácilmente buzones de correo ilimitados y dominios
de correo ilimitados en un panel de administración basado en la web. Los
buzones pueden ser almacenados en MariaDB/MySQL, base de datos
PostgreSQL u OpenLDAP. La siguiente es una lista de software de código
abierto que será instalado y configurado automáticamente por iRedMail.
Con la ejecución de este script conseguiremos instalar y configurar todos estos
elementos:
Postfix SMTP server
Dovecot IMAP server
Nginx web server to serve the admin panel and webmail
OpenLDAP, MySQL/MariaDB, or PostgreSQL for storing user information
Amavised-new for DKIM signing and verification
SpamAssassin for anti-spam
ClamAV for anti-virus
Roundcube webmail
SOGo groupware, providing webmail, calendar (CalDAV), contacts
(CardDAV), tasks and ActiveSync services.
Fail2ban for protecting SSH
mlmmj mailing list manager
Netdata server monitoring
iRedAPD Postfix policy server for greylisting
1.Elegir un alojamiento y un nombre de dominio
Lo primero que tienes que hacer es elegir un nombre para tu dominio, lo
habitual es utilizar el nombre del proyecto, en mi caso tecnolitas.com que lo he
comprado en namecheap.com esto te puede costar 9€ al año, no es excusa
para no tener un dominio propio.
Después tienes que elegir una compañía de hosting o hospedaje de internet,
¿En que puedo ayudarte?
mis proveedores preferidos son ovh.es y contabo.com
https://tecnolitas.com/blog/tu-propio-servidor-de-correo/ 4/39
6/11/22, 23:22 Tu propio servidor de correo en 20 minutos - Tecnolitas
Este es un ejemplo de los precios y características que podéis encontrar en
OVH en cuanto a Servidores Virtuales Privado. Contabo tiene mejor oferta en
cuando a prestaciones, ya que con el mismo precio prácticamente te da
mucha mas CPU memoria y disco duro. Esto es aproximado y puede variar
según el momento en que vayas a desplegar el servidor de correo.
El proceso de compra es realmente sencillo, selecciona las opción de servidor,
el sistema operativo (Ubuntu 20.04) y el tiempo de compromiso que deseas
adquirir, puedes pagar mes a mes o contratar todo un año, que seguramente
¿En que puedo ayudarte?
tenga alguna ventaja económica.
https://tecnolitas.com/blog/tu-propio-servidor-de-correo/ 5/39
6/11/22, 23:22 Tu propio servidor de correo en 20 minutos - Tecnolitas
Una vez se haya configurado el VPS recibirás un correo electrónico con la
información del servidor, la dirección IP y las credenciales del usuario root, que
es el usuario administrador del servidor con privilegios totales.
Ahora ya puedes establecer una conexión ssh con el servidor.
También necesitas un nombre de dominio. Yo registré mi nombre de dominio
en NameCheap porque el precio es bajo y dan protección de privacidad whois
gratis de por vida.
2.Creating DNS MX Record
El registro MX especifica qué host o hosts gestionan los correos electrónicos
de un determinado nombre de dominio. Por ejemplo, el host que gestiona los
correos electrónicos de tecnolitas.com es mail.tecnolitas.com. Si alguien con
una cuenta de Gmail envía un correo electrónico a
[email protected], el
servidor de correo de Gmail consultará el registro MX de tecnolitas.com.
Cuando descubre que mail.tecnolitas.com es el responsable de aceptar el
correo electrónico, consulta el registro A de mail.tecnolitas.com para obtener
la dirección IP y así poder entregar el correo electrónico.
Tienes que ir a tu servicio de alojamiento de DNS (normalmente tu registrador
de dominios) para crear registros DNS. En su gestor de DNS, crea un registro
MX para tu nombre de dominio. Introduzce @ en el campo Nombre para
representar el nombre de dominio principal y, a continuación, introduzca
mail.tu-dominio.com en el campo Valor.
Nota: El nombre de host para el registro MX no puede ser un alias de otro
nombre. Además, se recomienda encarecidamente utilizar nombres de host,
en lugar de direcciones IP desnudas para el registro MX.
¿En que puedo ayudarte?
https://tecnolitas.com/blog/tu-propio-servidor-de-correo/ 6/39
6/11/22, 23:22 Tu propio servidor de correo en 20 minutos - Tecnolitas
Tu gestor de DNS puede pedirte que introduzcas un valor de preferencia
(también conocido como valor de prioridad). Puede ser cualquier número entre
0 y 65.356. Un número pequeño tiene mayor prioridad que un número grande.
Se recomienda establecer el valor en 0, para que este servidor de correo
tenga la mayor prioridad para recibir correos electrónicos. Después de crear el
registro MX, también necesitas crear un registro A para mail.tu-dominio.com ,
para que pueda ser resuelto a una dirección IP. Si tu servidor utiliza una
dirección IPv6, asegúrate de añadir un registro AAAA.
3. Configuring Hostname
Inicie sesión en su servidor a través de SSH y ejecute el siguiente comando
para actualizar los paquetes de software existentes. Ejecuta los siguientes
comandos:
sudo apt update
sudo apt upgrade -y
Durante el proceso de actualización, es posible que le haga la siguiente
pregunta. selecciona mantener la versión local actualmente instalada.
Te recomiendo encarecidamente la creación de un usuario sudo para la
gestión del servidor en lugar de utilizar el usuario root por
¿Endefecto. Ejecuta
que puedo el
ayudarte?
https://tecnolitas.com/blog/tu-propio-servidor-de-correo/ 7/39
6/11/22, 23:22 Tu propio servidor de correo en 20 minutos - Tecnolitas
siguiente comando para crear un usuario. Reemplace el nombre de usuario
con su nombre de usuario preferido.
adduser usuario
A continuación, añade el usuario al grupo sudo.
adduser usuario sudo
Cambia al nuevo usuario.
su - usuario
A continuación, establece un nombre de dominio completamente cualificado
¿En que puedo ayudarte?
(FQDN) para tu servidor de correo con el siguiente comando.
https://tecnolitas.com/blog/tu-propio-servidor-de-correo/ 8/39
6/11/22, 23:22 Tu propio servidor de correo en 20 minutos - Tecnolitas
sudo hostnamectl set-hostname mail.tu-dominio.com
También tenemos que actualizar el archivo /etc/hosts con un editor de texto
de línea de comandos como Nano.
sudo nano /etc/hosts
Añade esta línea a tu fichero /ect/hosts, usa los cursores para desplazarte
hasta el final
127.0.0.1 mail.tu-dominio.com localhost
Guarda y cierra el archivo. (Para guardar un archivo en el editor de texto Nano,
pulsa Ctrl+O, y luego pulsa Enter para confirmar. Para cerrar el archivo, pulse
Ctrl+X).
Para ver los cambios, vuelve a iniciar sesión (cierra y abre la conexion ssh ) y
ejecute el siguiente comando para ver su nombre de host.
hostname -f
Paso 4: Configuración del servidor de correo en
Ubuntu 20.04 con iRedMail
Ejecute los siguientes comandos para descargar la última versión del
instalador de scripts de iRedMail desde su repositorio de Github.
wget https://github.com/iredmail/iRedMail/archive/1.5.1.tar.gz
Extrae el fichero archivado.
¿En que puedo ayudarte?
tar xvf 1.5.1.tar.gz
https://tecnolitas.com/blog/tu-propio-servidor-de-correo/ 9/39
6/11/22, 23:22 Tu propio servidor de correo en 20 minutos - Tecnolitas
A continuación, cambiate al directorio recién creado.
cd iRedMail-1.5.1/
Añade el permiso de ejecución al script iRedMail.sh.
chmod +x iRedMail.sh
A continuación, ejecute el script Bash con privilegios sudo.
sudo bash iRedMail.sh
Aparecerá el asistente de configuración del servidor de correo. Utiliza el
tabulador para seleccionar <Yes> y pulse Enter .
La siguiente pantalla le pedirá que seleccione la ruta de almacenamiento del
correo. Puede utilizar la ruta por defecto: /var/vmail, así que simplemente
pulse Enter. ¿En que puedo ayudarte?
https://tecnolitas.com/blog/tu-propio-servidor-de-correo/ 10/39
6/11/22, 23:22 Tu propio servidor de correo en 20 minutos - Tecnolitas
A continuación, elige si deseas ejecutar un servidor web. Es muy
recomendable que elijas ejecutar un servidor web porque necesita el panel de
administración para añadir cuentas de correo electrónico. Además, te permite
acceder al webmail de Roundcube. Por defecto, el servidor web Nginx está
seleccionado, por lo que puedes simplemente pulsar Enter. (Un asterisco
indica que el elemento está seleccionado).
A continuación, selecciona el backend de almacenamiento para las cuentas de
correo electrónico. Elige uno con el que esté familiarizado.
¿EnYo
queuso
puedo ayudarte?
https://tecnolitas.com/blog/tu-propio-servidor-de-correo/ 11/39
6/11/22, 23:22 Tu propio servidor de correo en 20 minutos - Tecnolitas
MariaDB(MySQL). Pulse las flechas arriba y abajo y pulse la barra espaciadora
para seleccionar.
Si has seleccionado MariaDB o MySQL, tienes que establecer la contraseña de
root (usuario root de MySQL).
A continuación, introduce tu dominio de correo. Puedes añadir dominios de
correo adicionales más tarde en el panel de administración basado en la web.
Asumo que quieres una cuenta de correo como
[email protected]. En ese
caso, debes introducir tu-dominio.com, sin subdominio. No pulses la barra
espaciadora después de tu nombre de dominio. Creo que iRedMail copiará el
carácter de espacio junto con su nombre de dominio, lo ¿En
queque
puede
puedoprovocar
ayudarte?
un fallo en la instalación.
https://tecnolitas.com/blog/tu-propio-servidor-de-correo/ 12/39
6/11/22, 23:22 Tu propio servidor de correo en 20 minutos - Tecnolitas
A continuación, establece una contraseña para el administrador del dominio
de correo.
Elija los componentes opcionales. Por defecto, se seleccionan 4 elementos. Si
quieres utilizar el software de grupo SOGo (webmail, calendario, libreta de
direcciones, ActiveSync), pulsa la tecla de flecha hacia abajo y la barra
espaciadora para seleccionar. Pulsa Enter para ir a la siguiente pantalla.
¿En que puedo ayudarte?
https://tecnolitas.com/blog/tu-propio-servidor-de-correo/ 13/39
6/11/22, 23:22 Tu propio servidor de correo en 20 minutos - Tecnolitas
Ahora puedes revisar tus configuraciones. Escribe «Y» para comenzar la
instalación de todos los componentes del servidor de correo.
Al final de la instalación, elige y para utilizar las reglas de firewall
proporcionadas por iRedMail y reinicia el firewall.
¿En que puedo ayudarte?
https://tecnolitas.com/blog/tu-propio-servidor-de-correo/ 14/39
6/11/22, 23:22 Tu propio servidor de correo en 20 minutos - Tecnolitas
Ahora la instalación de iRedMail está completa. Se te notificará la URL del
webmail, el panel de administración web y las credenciales de acceso. El
archivo iRedMail.tips contiene información importante sobre tu servidor de
iRedMail.
Reinicia tu servidor Ubuntu 20.04.
sudo shutdown -r now
Una vez que tu servidor vuelva a estar en línea, puedes visitar el panel de
administración de la web.
https://mail.tu-dominio.com/iredadmin/
Nota: Ten en cuenta que en la URL anterior, el subdirectorio para acceder al
panel de administración es /iredadmin/, no /iredmail/. Y debido a que estás
utilizando un certificado TLS autofirmado, necesitas añadir la excepción de
seguridad en su navegador web.
Paso 5: Instalación del certificado¿EnLet’s Encrypt
que puedo ayudarte?
TLS
https://tecnolitas.com/blog/tu-propio-servidor-de-correo/ 15/39
6/11/22, 23:22 Tu propio servidor de correo en 20 minutos - Tecnolitas
Dado que el servidor de correo está utilizando un certificado TLS autofirmado,
tanto los usuarios del cliente de correo de escritorio como los del cliente de
webmail verán una advertencia. Para solucionar esto, puedes obtener e
instalar un certificado TLS gratuito de Let’s Encrypt.
Obtención del certificado
En primer lugar, inicia sesión en tu servidor de nuevo a través de SSH y ejecuta
el siguiente comando para instalar el cliente Let’s Encrypt (certbot) en Ubuntu
20.04.
sudo apt install certbot
iRedMail ya ha configurado los ajustes TLS en el host virtual Nginx por defecto,
así que aquí recomiendo usar el plugin de webroot, en lugar del plugin de
nginx, para obtener un certificado. Ejecute el siguiente comando. Reemplace el
texto en azul con tus datos reales.
sudo certbot certonly --webroot --agree-tos --email [email protected] -d mail.tu-
dominio.com -w /var/www/html/
Cuando te pregunte si quieres recibir comunicaciones de la FEP, puedes elegir
la opción «No».
Si todo ha ido bien, verás el siguiente texto indicando que has obtenido con
éxito un certificado TLS. Tu certificado y cadena se han guardado en el
directorio /etc/letsencrypt/live/mail.tu-dominio.com/.
¿En que puedo ayudarte?
https://tecnolitas.com/blog/tu-propio-servidor-de-correo/ 16/39
6/11/22, 23:22 Tu propio servidor de correo en 20 minutos - Tecnolitas
Fallo en la obtención del certificado TLS
Si certbot no pudo obtener el certificado TLS, tal vez se deba a que tus
registros DNS no se han propagado a Internet. Dependiendo del registrador de
dominios que utilices, tu registro DNS puede ser propagado instantáneamente,
o puede tardar hasta 24 horas en propagarse. Puedes ir a https://dnsmap.io,
introducir el nombre de host de tu servidor de correo (mail.tu-dominio.com)
para comprobar la propagación de los DNS.
Si certbot no pudo obtener un certificado y ves el siguiente mensaje
Failed authorization procedure. mail.tecnolitas.com (http-01):
urn:ietf:params:acme:error:connection :: The server could not connect to the client to
verify the domain :: Fetching https://mail.tecnolitas.com/.well-known/acme-
challenge/IZ7hMmRE4ZlGW7cXYoq2Lc_VrFzVFyfW6E0pzNlhiOA: Timeout during
connect (likely firewall problem)
Puede ser que hayas establecido un registro AAAA para mail.tu-dominio.com,
pero el servidor web Nginx no escucha en la dirección IPv6. Para solucionar
este error, edita el archivo /etc/nginx/sites-enabled/00-default.conf
sudo nano /etc/nginx/sites-enabled/00-default.conf
Encuentra la siguiente línea.
¿En que puedo ayudarte?
https://tecnolitas.com/blog/tu-propio-servidor-de-correo/ 17/39
6/11/22, 23:22 Tu propio servidor de correo en 20 minutos - Tecnolitas
#listen [::]:80;
Elimine el carácter # para habilitar IPv6 para este host virtual Nginx.
listen [::]:80;
Guarde y cierre el archivo. A continuación, edite el host virtual SSL
/etc/nginx/sites-enabled/00-default-ssl.conf.
sudo nano /etc/nginx/sites-enabled/00-default-ssl.conf
Añade la siguiente línea.
listen [::]:443 ssl http2;
Guarda y cierra el archivo. A continuación, prueba la configuración de Nginx.
sudo nginx -t
Si la prueba es exitosa, recargua Nginx para que el cambio surta efecto.
sudo systemctl reload nginx
Vuelve a ejecutar el siguiente comando para obtener el certificado TLS.
Sustituye el texto en azul por sus datos reales.
¿En que puedo ayudarte?
https://tecnolitas.com/blog/tu-propio-servidor-de-correo/ 18/39
6/11/22, 23:22 Tu propio servidor de correo en 20 minutos - Tecnolitas
sudo certbot certonly --webroot --agree-tos --email [email protected] -d mail.tu-
dominio.com -w /var/www/html/
Ahora deberías poder obtener con éxito el certificado TLS.
Instalación del certificado en Nginx
Después de obtener un certificado TLS, vamos a configurar el servidor web
Nginx para utilizarlo. Edita el archivo de la plantilla SSL.
sudo nano /etc/nginx/templates/ssl.tmpl
Encuentra las siguientes 2 líneas.
ssl_certificate /etc/ssl/certs/iRedMail.crt;
ssl_certificate_key /etc/ssl/private/iRedMail.key;
Sustitúyelas por:
ssl_certificate /etc/letsencrypt/live/mail.tu-dominio.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mail.tu-dominio.com/privkey.pem;
Guarda y cierra el archivo. A continuación, prueba la configuración de nginx y
vuelve a cargar.
sudo nginx -t
sudo systemctl reload nginx
Vuelva a visitar el panel de administración de iRedMail, tu navegador web ya
no le advertirá porque Nginx está utilizando ahora un certificado TLS válido.
¿En que puedo ayudarte?
https://tecnolitas.com/blog/tu-propio-servidor-de-correo/ 19/39
6/11/22, 23:22 Tu propio servidor de correo en 20 minutos - Tecnolitas
Instalación del certificado TLS en Postfix y Dovecot
También necesitamos configurar el servidor SMTP de Postfix y el servidor IMAP
de Dovecot para utilizar el certificado emitido por Let’s Encrypt para que el
cliente de correo de escritorio no muestre la advertencia de seguridad. Edita el
archivo de configuración principal de Postfix.
sudo nano /etc/postfix/main.cf
Encuentra las siguientes 3 líneas. (línea 95, 96, 97).
smtpd_tls_key_file = /etc/ssl/private/iRedMail.key
smtpd_tls_cert_file = /etc/ssl/certs/iRedMail.crt
smtpd_tls_CAfile = /etc/ssl/certs/iRedMail.crt
Replace them with:
smtpd_tls_key_file = /etc/letsencrypt/live/mail.tu-
dominio.com/privkey.pem
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.tu-
dominio.com/cert.pem
smtpd_tls_CAfile = /etc/letsencrypt/live/mail.tu-dominio.com/chain.pem
¿En que puedo ayudarte?
Guarda y cierra el archivo. A continuación, vuelve a cargar Postfix.
https://tecnolitas.com/blog/tu-propio-servidor-de-correo/ 20/39
6/11/22, 23:22 Tu propio servidor de correo en 20 minutos - Tecnolitas
sudo systemctl reload postfix
A continuación, edita el archivo de configuración principal de Dovecot.
sudo nano /etc/dovecot/dovecot.conf
Modifiqua las dos líneas siguientes. (línea 47, 48)
ssl_cert = </etc/ssl/certs/iRedMail.crt
ssl_key = </etc/ssl/private/iRedMail.key
Sustitúyelos por:
ssl_cert = </etc/letsencrypt/live/mail.tu-dominio.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.tu-dominio.com/privkey.pem
Guarda y cierra el archivo. A continuación, vuelve a cargar dovecot.
sudo systemctl reload dovecot
A partir de ahora, los usuarios del correo de escritorio no verán las
advertencias de seguridad.
Paso 6: Envío del correo electrónico de prueba
Accede al panel iredadmin con la cuenta de correo postmaster
(
[email protected]). En la pestaña Añadir, puedes añadir dominios
o direcciones de correo electrónico adicionales.
¿En que puedo ayudarte?
https://tecnolitas.com/blog/tu-propio-servidor-de-correo/ 21/39
6/11/22, 23:22 Tu propio servidor de correo en 20 minutos - Tecnolitas
Si ves el error «no hay dominio bajo control», consulta este artículo.
Después de crear un usuario, puedes visitar la dirección de correo web de
Roundcube e iniciar sesión con la nueva cuenta de usuario de correo.
https://mail.tu-dominio.com/mail/
Ahora puedes probar el envío y la recepción de correos electrónicos. Ten en
cuenta que es posible que tengas que esperar unos minutos para recibir
correos electrónicos porque iRedMail por defecto activa la lista gris, que es
una forma de indicar a otros servidores SMTP emisores que lo intenten de
¿En que puedo ayudarte?
https://tecnolitas.com/blog/tu-propio-servidor-de-correo/ 22/39
6/11/22, 23:22 Tu propio servidor de correo en 20 minutos - Tecnolitas
nuevo en unos minutos. La siguiente línea en el archivo de registro de correo
/var/log/mail.log indica que la lista gris está activada.
Recipient address rejected: Intentional policy rejection, please try again
later;
Añadir espacio de intercambio
ClamAV se utiliza para analizar los virus en los mensajes de correo electrónico.
ClamAV puede utilizar una buena cantidad de RAM. Si no hay suficiente RAM
en tu servidor, ClamAV no funcionará correctamente, lo que impedirá que tu
servidor de correo envíe correos electrónicos.
Puedes añadir un archivo de intercambio a tu servidor para aumentar el total
de RAM en tu servidor. (Ten en cuenta que el uso de espacio swap en el
servidor degradará el rendimiento del mismo. Si desea un mejor rendimiento,
debería aumentar la RAM física en lugar de utilizar el espacio de intercambio).
Para añadir espacio de intercambio en el servidor, primero, utiliza el comando
fallocate para crear un archivo. Por ejemplo, cree un archivo llamado swapfile
con 1G de capacidad en el sistema de archivos raíz:
sudo fallocate -l 1G /swapfile
A continuación, asegúrate de que sólo ‘root’ puede leer y escribir en él.
sudo chmod 600 /swapfile
Formatea para este esacio:
sudo mkswap /swapfile
Output: ¿En que puedo ayudarte?
https://tecnolitas.com/blog/tu-propio-servidor-de-correo/ 23/39
6/11/22, 23:22 Tu propio servidor de correo en 20 minutos - Tecnolitas
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=0aab5886-4dfb-40d4-920d-fb1115c67433
Habilitar el archivo de intercambio
sudo swapon /swapfile
Para montar el espacio de intercambio en el momento del arranque del
sistema, edita el archivo /etc/fstab.
sudo nano /etc/fstab
Añada la siguiente línea al final de este archivo.
/swapfile swap swap defaults 0 0
Guarda y cierra el archivo. Luego recarga systemd y reinicia ClamAV.
sudo systemctl daemon-reload
sudo systemctl restart clamav-daemon
Paso 7: Comprobar si el puerto 25 (de salida)
está bloqueado
Tu ISP o proveedor de alojamiento no bloqueará las conexiones entrantes al
puerto 25 de tu servidor de correo, lo que significa que puede recibir correos
electrónicos de otros servidores de correo. Sin embargo, muchos
ISP/proveedores de alojamiento bloquean las conexiones salientes al puerto
25 de otros servidores de correo, lo que significa que no puedes enviar correos
electrónicos. ¿En que puedo ayudarte?
https://tecnolitas.com/blog/tu-propio-servidor-de-correo/ 24/39
6/11/22, 23:22 Tu propio servidor de correo en 20 minutos - Tecnolitas
Si tu correo electrónico no llegó a tu otra dirección de correo electrónico,
como Gmail, entonces ejecuta el siguiente comando en tu servidor de correo
para comprobar si el puerto 25 (de salida) está bloqueado.
telnet gmail-smtp-in.l.google.com 25
Si no está bloqueado, verás mensajes como el siguiente, que indica que la
conexión se ha establecido con éxito. (Sugerencia: escribe «quit» y pulsa
«Enter» para cerrar la conexión).
Trying 74.125.68.26...
Connected to gmail-smtp-in.l.google.com.
Escape character is '^]'.
220 mx.google.com ESMTP y22si1641751pll.208 - gsmtp
Si el puerto 25 (de salida) está bloqueado, verás algo como
Trying 2607:f8b0:400e:c06::1a...
Trying 74.125.195.27...
telnet: Unable to connect to remote host: Connection timed out
En este caso, tu Postfix no puede enviar emails a otros servidores SMTP. Pide a
tu ISP/proveedor de alojamiento que te lo abra. Si rechazan tu petición,
necesitas configurar el reenvío SMTP para evitar el bloqueo del puerto 25.
¿Sigues sin poder enviar un correo electrónico?
Si el puerto 25 (de salida) no está bloqueado, pero sigues sin poder enviar
correos electrónicos desde tu propio servidor de correo a tu otra dirección de
correo electrónico como Gmail, entonces debes comprobar el registro de
correo (/var/log/mail.log).
sudo nano /var/log/mail.log
¿En que puedo ayudarte?
https://tecnolitas.com/blog/tu-propio-servidor-de-correo/ 25/39
6/11/22, 23:22 Tu propio servidor de correo en 20 minutos - Tecnolitas
Por ejemplo, algunas personas podrían ver las siguientes líneas en el archivo.
host gmail-smtp-in.l.google.com[2404:6800:4003:c03::1b] said: 550-5.7.1
[2a0d:7c40:3000:b8b::2] Our system has detected that 550-5.7.1 this
message does not meet IPv6 sending guidelines regarding PTR 550-
5.7.1 records and authentication. Please review 550-5.7.1
https://support.google.com/mail/?p=IPv6AuthError for more information
Esto significa que tu servidor de correo está usando IPv6 para enviar el correo
electrónico, pero no has configurado los registros IPv6. Usted debe ir a su
administrador de DNS, establecer el registro AAAA para mail.your-domain.com,
entonces usted debe establecer el registro PTR para su dirección IPv6, que se
discute en el paso 9.
Paso 8: Uso de clientes de correo en su
ordenador o dispositivo móvil
Enciende tu cliente de correo electrónico de escritorio, como Mozilla
Thunderbird, y añade una cuenta de correo.
En la sección de servidor entrante, selecciona el protocolo IMAP,
introduzca mail.tu-dominio.com como nombre del servidor, elija el
puerto 143 y STARTTLS. Elija la contraseña normal como método de
autenticación.
En la sección de salida, seleccione el protocolo SMTP, introduzca
mail.your-domain.com como nombre del servidor, elija el puerto 587 y
STARTTLS. Elija una contraseña normal como método de autenticación.
¿En que puedo ayudarte?
https://tecnolitas.com/blog/tu-propio-servidor-de-correo/ 26/39
6/11/22, 23:22 Tu propio servidor de correo en 20 minutos - Tecnolitas
Fail2ban Bloqueo de su propia dirección IP
Si cometiste un error y no pudiste iniciar sesión en el servidor de correo varias
veces, entonces el servicio Fail2ban del servidor de correo podría bloquear tu
dirección IP. Puedes añadir tu dirección IP a la lista blanca editando el archivo
jail.local.
sudo nano /etc/fail2ban/jail.local
Añade tu propia dirección IP a la lista de ignorados como se indica a
continuación. Sustituye 12.34.56.78 por tu dirección IP real.
ignoreip = 12.34.56.78 127.0.0.1 127.0.0.0/8 10.0.0.0/8 172.16.0.0/12
192.168.0.0/16
Guarda y cierra el archivo. A continuación, reinicie Fail2ban.
sudo systemctl restart fail2ban
Paso 9: Mejorar la capacidad de entrega del
correo electrónico
¿En que puedo ayudarte?
https://tecnolitas.com/blog/tu-propio-servidor-de-correo/ 27/39
6/11/22, 23:22 Tu propio servidor de correo en 20 minutos - Tecnolitas
Para evitar que tus correos electrónicos sean marcados como spam, debes
establecer registros PTR, SPF, DKIM y DMARC.
Registro PTR
Un registro puntero, o registro PTR, asigna una dirección IP a un FQDN (nombre
de dominio completo). Es la contrapartida del registro A y se utiliza para la
búsqueda inversa de DNS, lo que puede ayudar a bloquear a los spammers.
Muchos servidores SMTP rechazan los correos electrónicos si no se encuentra
un registro PTR para el servidor de correo remitente.
Para comprobar el registro PTR de una dirección IP, ejecuta este comando:
dig -x IP-address +short
host IP-address
El registro PTR no es gestionado por su registrador de dominios. Es
administrado por la organización que le da una dirección IP. Como la dirección
IP la obtienes de tu proveedor de hosting o de tu ISP, no de tu registrador de
dominios, debes establecer el registro PTR para tu IP en el panel de control de
tu proveedor de hosting, o preguntar a tu ISP. Su valor debe ser el nombre de
host de su servidor de correo: mail.tu-dominio.com. Si su servidor de correo
utiliza una dirección IPv6, asegúrese de añadir también un registro PTR para su
dirección IPv6.
Para editar el registro DNS inverso de su VPS OVH o CONTABO o el que hayas
elegido, ingrese al área de clientes de tu hosting, luego use el chat en vivo en
la esquina inferior derecha, dígale al equipo de soporte que actualice el
registro PTR de las direcciones IP de su servidor a mail.your-domain.com.
Registro SPF
¿En que puedo ayudarte?
https://tecnolitas.com/blog/tu-propio-servidor-de-correo/ 28/39
6/11/22, 23:22 Tu propio servidor de correo en 20 minutos - Tecnolitas
El registro SPF (Sender Policy Framework) especifica qué hosts o direcciones
IP pueden enviar correos electrónicos en nombre de un dominio. Sólo debes
permitir que tu propio servidor de correo electrónico o el de tu proveedor de
servicios de Internet envíen correos electrónicos para tu dominio. En su interfaz
de gestión de DNS, cree un nuevo registro TXT como el siguiente.
Explicación:
TXT indica que se trata de un registro TXT.
Introduzca @ en el campo del nombre para representar el nombre del
dominio principal.
v=spf1 indica que se trata de un registro SPF y la versión es SPF1.
mx significa que todos los hosts listados en los registros MX están
autorizados a enviar correos electrónicos para su dominio y todos los
demás hosts están desautorizados.
~all indica que los correos electrónicos de tu dominio sólo deben
proceder de los hosts especificados en el registro SPF. Los correos
electrónicos procedentes de otros hosts se marcarán como falsos.
Para comprobar si su registro SPF se propaga a la Internet pública, puede
utilizar la utilidad dig en su máquina Linux como se indica a continuación:
dig your-domain.com txt ¿En que puedo ayudarte?
https://tecnolitas.com/blog/tu-propio-servidor-de-correo/ 29/39
6/11/22, 23:22 Tu propio servidor de correo en 20 minutos - Tecnolitas
La opción txt indica a dig que sólo queremos consultar los registros TXT.
Registro DKIM
DKIM (DomainKeys Identified Mail) utiliza una clave privada para firmar
digitalmente los correos electrónicos enviados desde su dominio. Los
servidores SMTP receptores verifican la firma utilizando la clave pública, que
se publica en el registro DNS DKIM.
El script de iRedMail ha configurado automáticamente DKIM para su servidor.
Lo único que queda por hacer es crear el registro DKIM en el gestor de DNS.
Ejecute el siguiente comando para mostrar la clave pública DKIM.
sudo amavisd-new showkeys
La clave pública DKIM está en el paréntesis.
A continuación, en tu gestor de DNS, cree un registro TXT, introduzca
dkim._domainkey en el campo de nombre. Copia todo lo que hay entre los
paréntesis y pégualo en el campo de valor. Borra todas las comillas dobles y
los saltos de línea.
¿En que puedo ayudarte?
https://tecnolitas.com/blog/tu-propio-servidor-de-correo/ 30/39
6/11/22, 23:22 Tu propio servidor de correo en 20 minutos - Tecnolitas
Después de guardar los cambios, ejecuta el siguiente comando para
comprobar si su registro DKIM es correcto.
sudo amavisd-new testkeys
Si el registro DKIM es correcto, la prueba pasará.
TESTING#1 tecnolitas.com: dkim._domainkey.tecnolitas.com => pass
Ten en cuenta que su registro DKIM puede necesitar algún tiempo para
propagarse a Internet. Dependiendo del registrador de dominios que utilice, su
registro DNS puede propagarse instantáneamente o puede tardar hasta 24
horas en hacerlo. Puede ir a https://www.dmarcanalyzer.com/dkim/dkim-
check/, introducir dkim como selector e introducir su nombre de dominio para
comprobar la propagación del registro DKIM.
Registro DMARC
DMARC son las siglas de Domain-based Message Authentication, Reporting
and Conformance. DMARC puede ayudar a los servidores de correo
electrónico receptores a identificar los correos legítimos¿En
y evitar que su
que puedo ayudarte?
nombre de dominio sea utilizado por la suplantación de identidad.
https://tecnolitas.com/blog/tu-propio-servidor-de-correo/ 31/39
6/11/22, 23:22 Tu propio servidor de correo en 20 minutos - Tecnolitas
Para crear un registro DMARC, ve a tu gestor de DNS y añada un registro TXT.
En el campo de nombre, introduce _dmarc. En el campo de valor, introduzca lo
siguiente. (Debe crear la dirección de correo electrónico dmarc@tu-
dominio.com).
v=DMARC1; p=none; pct=100; rua=mailto:[email protected]
El registro DMARC anterior es un punto de partida seguro. Si quiere leer la
explicación completa de DMARC, consulte el siguiente artículo. Ten en cuenta
que esto es opcional.
Paso 10: Prueba de puntuación y colocación del
correo electrónico
Después de crear los registros PTR, SPF y DKIM, vaya a https://www.mail-
tester.com. Verá una dirección de correo electrónico única. Envíe un correo
electrónico desde su dominio a esta dirección y luego compruebe su
puntuación. Como puedes ver, obtuve una puntuación perfecta. En el resultado
de la prueba, debe comprobar si su registro PTR, SPF y DKIM es válido.
¿En que puedo ayudarte?
https://tecnolitas.com/blog/tu-propio-servidor-de-correo/ 32/39
6/11/22, 23:22 Tu propio servidor de correo en 20 minutos - Tecnolitas
Mail-tester.com sólo puede mostrarte una puntuación del remitente. Hay otro
servicio llamado GlockApps que te permite comprobar si tu correo electrónico
ha llegado a la bandeja de entrada del destinatario o a la carpeta de spam, o si
ha sido rechazado directamente. Es compatible con muchos proveedores de
correo electrónico populares como Gmail, Outlook, Hotmail, YahooMail, iCloud
mail, etc.
Solución de problemas ¿En que puedo ayudarte?
https://tecnolitas.com/blog/tu-propio-servidor-de-correo/ 33/39
6/11/22, 23:22 Tu propio servidor de correo en 20 minutos - Tecnolitas
En primer lugar, por favor, utilice un VPS con al menos 4GB de RAM. Ejecutar
iRedMail en un VPS de 1GB de RAM causará que la base de datos,
SpamAssassin o ClamAV sean eliminados debido a un problema de falta de
memoria. Si realmente quiere usar un VPS de 1GB de RAM, va a perder los
correos electrónicos entrantes y tendrá otros resultados indeseables.
Si la interfaz web de iRedMail no es accesible, como un error de puerta de
enlace 502, debe comprobar los registros de Nginx en el directorio
/var/log/nginx/ para encontrar pistas. También puede comprobar el registro
de correo /var/log/mail.log.
Compruebe si los distintos servicios están en funcionamiento.
systemctl status postfix
systemctl status dovecot
systemctl status nginx
systemctl status mariadb
systemctl status clamav-daemon
systemctl status amavis
Si has activado el cortafuegos, deberás abrir los siguientes puertos en el
mismo.
HTTP port: 80
HTTPS port: 443
SMTP port: 25
Submission port: 587 (and 465 if you are going to use Microsoft Outlook
mail client)
IMAP port: 143 and 993
Si desea utilizar el cortafuegos UFW, consulte mi guía aquí: Empezando con el
cortafuegos UFW en Debian y Ubuntu.
¿En que puedo ayudarte?
Cómo renovar el certificado TLS
https://tecnolitas.com/blog/tu-propio-servidor-de-correo/ 34/39
6/11/22, 23:22 Tu propio servidor de correo en 20 minutos - Tecnolitas
El certificado TLS emitido por Let’s Encrypt es válido sólo por 90 días y es
importante que configure un trabajo Cron para renovar automáticamente el
certificado. Puede ejecutar el siguiente comando para renovar el certificado.
sudo certbot renew -w /var/www/html/
Puede utilizar la opción –dry-run para probar el proceso de renovación, en
lugar de hacer una renovación real.
sudo certbot renew -w /var/www/html/ --dry-run
Si ve el siguiente error al renovar el certificado TLS.
The client lacks sufficient authorization :: Invalid response
A continuación, debe crear el directorio oculto.
sudo mkdir -p /var/www/html/.well-known/acme-challenge
Y establece www-data como propietario del webroot.
sudo chown www-data:www-data /var/www/html/ -R
Además, edita el host virtual SSL /etc/nginx/sites-enabled/00-default-
ssl.conf. Añade las siguientes líneas.
location ~ /.well-known/acme-challenge {
root /var/www/html/;
allow all;
}
¿En que puedo ayudarte?
https://tecnolitas.com/blog/tu-propio-servidor-de-correo/ 35/39
6/11/22, 23:22 Tu propio servidor de correo en 20 minutos - Tecnolitas
Guarda y cierra el archivo. Pruebe la configuración de Nginx y vuelva a
cargarla.
sudo nginx -t
sudo systemctl reload nginx
Crear un Cron Job
Ya te explique en otro artículo como funciona el programador de tareas Cron
Si la ejecución en seco tiene éxito, puedes crear un trabajo Cron para renovar
automáticamente el certificado. Simplemente abra el archivo crontab del
usuario root.
sudo crontab -e
A continuación, añade la siguiente línea al final del archivo.
@daily certbot renew -w /var/www/html/ --quiet && systemctl reload
postfix dovecot nginx
Es necesario recargar Postfix, Dovecot y Nginx para que estos programas
recojan el nuevo certificado y la clave privada.
En este punto ya tienes funcionando y perfectamente configurado tu nuevo
¿En que puedo ayudarte?
servidor de correo, ahora puedes crear tantos dominios y buzones de correo
https://tecnolitas.com/blog/tu-propio-servidor-de-correo/ 36/39
6/11/22, 23:22 Tu propio servidor de correo en 20 minutos - Tecnolitas
como quieras y además tus correos no caerán en el buzón de spam de tus
posibles clientes.
¡Que tengas un Ingenioso día!
Contrata tu plan Ingenios@ de Sistemas por 3€ al mes y responderé a todas
tus preguntas sobre tecnología en el menor tiempo posible. Pasa a formar
parte de la comunidad Ingenios@s de Sistemas y disfruta de contenido
exclusivo y aprende sobre sistemas Open Source, Blockchain, SmarContract,
Web3, Inteligencia Artificial y Reaidad Virtual, súbete al tren de la Revolución
4.0
Si quieres estar al día y no perderte nada Suscribete al Podcast Ingenios@s
de Sistemas, un episodio diario que te mantendrá informado y formado en
esta vertiginosa carrera.
Contenido Relacionado
Matomo, Como Cómo instalar Cómo automatizar Cómo optimizar la
instalar tu propio PrestaShop en procesos con base de datos de
sistema de Ubuntu 20.04 con Integromat WordPress 5
analíticas web Apache
Tutoriales
Deja un comentario
Lo siento, debes estar conectado para publicar un comentario.
¿En que puedo ayudarte?
https://tecnolitas.com/blog/tu-propio-servidor-de-correo/ 37/39
6/11/22, 23:22 Tu propio servidor de correo en 20 minutos - Tecnolitas
Si tienes alguna duda sobre el servicio, no dudes en escribirme
Contactar
Mis Planes
Mis Servicios
Tarifas de Implantación
Suscribete al newsletter
Tu nombre
Tu email
Acepto la Política de privacidad
Suscríbete
¿En que puedo ayudarte?
https://tecnolitas.com/blog/tu-propio-servidor-de-correo/ 38/39
6/11/22, 23:22 Tu propio servidor de correo en 20 minutos - Tecnolitas
Política de privacidad
Aviso legal
Política de cookies
© 2022 Tecnólitas by Charlie Alonso
¿En que puedo ayudarte?
https://tecnolitas.com/blog/tu-propio-servidor-de-correo/ 39/39