Busqueda sobre Linux y software libre

Noticias sobre linux y software libre - Google 

Cómo instalar y configurar Exim en linux

 Le pedimos a Gemini, la inteligencia artificial de Google, que nos explique cómo instalar y configurar Exim en linux

Explicanos detalladamente cómo instalar y configurar Exim en linux

Si Postfix es el chico popular y estructurado del mundo de los Mail Transfer Agents ( MTA ), Exim es el veterano de configuración flexible. Es el servidor de correo por defecto en sistemas como Debian y es famoso porque su archivo de configuración no es un simple listado de variables, sino casi un lenguaje de programación en sí mismo. Esto lo hace increíblemente potente, pero también intimidante si no se aborda con orden.

Si Postfix es el chico estructurado y popular de los servidores de correo, Exim es el veterano académico de configuración ultra-flexible. Es el Agente de Transferencia de Correo (MTA) por defecto en sistemas basados en Debian y Ubuntu. Su fama radica en que su archivo de configuración no es un simple listado de variables, sino casi un lenguaje de programación propio.

Esto lo hace increíblemente potente para filtrar correos o crear reglas complejas, pero también puede ser intimidante. Afortunadamente, Linux tiene herramientas para hacernos la vida más fácil. Aquí tienes la guía paso a paso.  

A continuación, te detallo cómo instalarlo, configurarlo (aprovechando las herramientas interactivas de Linux) y gestionar su cola de correo.

1. El Concepto: Monolítico vs. Dividido

Antes de instalar, debes saber algo crítico sobre Exim en Debian/Ubuntu: no se configura editando directamente su archivo final. El sistema te da a elegir entre tener la configuración en un solo gran archivo base (/etc/exim4/exim4.conf.template) o dividida en docenas de pequeños archivos dentro de /etc/exim4/conf.d/. Para empezar, el enfoque de archivo único (monolítico) es mucho más fácil de manejar.

2. Instalación de Exim

En las distribuciones basadas en Debian/Ubuntu, Exim está dividido en paquetes según las necesidades de tu servidor (soporte para bases de datos, LDAP, etc.). Para la gran mayoría de escenarios, el paquete estándar es más que suficiente.

Ejecuta en tu terminal:

Bash

sudo apt install exim4-daemon-light mailutils -y

Instalamos mailutils para contar con el comando mail, que nos permitirá hacer pruebas de envío directamente desde la consola.

3. Configuración Asistida (El método recomendado)

Modificar el archivo de configuración de Exim a mano desde cero es una receta para el desastre si estás empezando. Por suerte, los sistemas basados en Debian incluyen un asistente interactivo espectacular que genera la configuración limpia por ti.

Inicia el asistente con el siguiente comando:

Bash

sudo apt-get update

sudo dpkg-reconfigure exim4-config


El asistente te hará una serie de preguntas clave. Aquí tienes cómo responder según tu objetivo:

Tipo de configuración: * Internet site (Sitio de Internet): Si tu servidor va a enviar y recibir correos directamente usando su propia IP pública.

Mail sent by smarthost (Envío mediante un smarthost): (El más común) Si vas a usar Exim para enviar correos de tus aplicaciones locales (como osTicket o Znuny), pero quieres que se desvíen a través de un servidor externo (como SendGrid, Mailgun o Gmail).

Nombre del sistema de correo: El FQDN de tu servidor (por ejemplo, servidor.tuempresa.com).

Direcciones IP en las que escuchar conexiones: Si solo lo usará el propio servidor para enviar alertas internas, pon 127.0.0.1. Si otros servidores de tu red le van a enviar correos, pon su IP de red local o déjalo en blanco para escuchar en todas.

Otros destinos para los que se acepta correo: Dominios locales que este Exim deba recibir.

Dividir la configuración en archivos pequeños: Selecciona No para mantener la configuración en un único archivo principal (/etc/exim4/exim4.conf.template), lo cual facilita las modificaciones manuales posteriores.

Vamos a instalar el paquete "light", que tiene todo lo necesario para enviar y recibir correos de internet o funcionar como un Smarthost (enviar correos a través de un tercero como SendGrid o Amazon SES).

Bash

sudo apt update

sudo apt install exim4-daemon-light mailutils -y

(Instalamos mailutils para tener el comando mail y poder hacer pruebas rápidas desde la consola).  

5. Configuración Asistida (La forma segura)

Modificar Exim desde cero es una receta para el dolor de cabeza. Utilizaremos el asistente interactivo de Debian, que generará una configuración limpia y segura.

Ejecuta el siguiente comando:

Bash

sudo dpkg-reconfigure exim4-config

Te aparecerá una interfaz gráfica en la terminal con varias pantallas. Estas son las respuestas clave según lo que busques:

Tipo de configuración general:

El sitio de Internet (Internet Site): Elígelo si tu servidor va a enviar correos directamente a otros servidores (Gmail, Outlook) usando su propia IP pública.

El correo se envía mediante un "smarthost" (Smarthost): Elígelo si vas a enviar los correos a través de una cuenta de Office365, Google Workspace, o un servicio SMTP externo.

Entrega local solamente (Local delivery only): Si es solo para alertas del propio sistema Linux a root.

Nombre de correo del sistema: Pon el FQDN de tu servidor (ej. servidor.tuempresa.com).

Direcciones IP a escuchar: Si quieres que aplicaciones de tu red local puedan usarlo, déjalo en blanco. Si es solo para el propio servidor, pon 127.0.0.1 ; ::1.

Otros destinos para los que se acepta correo: Los dominios de los que tu servidor será el receptor final.

Mantener la cantidad de consultas DNS al mínimo: Selecciona "No" a menos que estés en una conexión intermitente (como un módem por satélite).

Dividir la configuración en pequeños archivos: Selecciona No (para usar el archivo monolítico que mencionamos al principio).

6. Configuración Manual: Autenticación con un Smarthost (SMTP Externo)

Si en el paso anterior elegiste configurar Exim como Smarthost (para que use una cuenta de correo externa para los envíos masivos o de sistema), debes indicarle las credenciales de acceso.

Edita el archivo de contraseñas de Exim:

Bash


sudo nano /etc/exim4/passwd.client

Añade tus credenciales al final del archivo utilizando el siguiente formato:

Plaintext

*.tu-proveedor-smtp.com:usuario_o_api_key:tu_contraseña_o_secret

Por ejemplo, para SendGrid sería algo como: *.sendgrid.net:apikey:SG.XYZ...

Protege el archivo cambiando sus permisos para que solo Exim pueda leerlo:

Bash


sudo chown root:Debian-exim /etc/exim4/passwd.client

sudo chmod 640 /etc/exim4/passwd.client


Aplica los cambios regenerando la configuración de Exim:

Bash

sudo update-exim4.conf

sudo systemctl restart exim4

7. Configurar Credenciales (Solo si usas Smarthost)

Si en el paso anterior elegiste usar un proveedor externo (Smarthost), necesitas decirle a Exim tu usuario y contraseña.

Abre el archivo de contraseñas de clientes:

Bash

sudo nano /etc/exim4/passwd.client

Añade tu proveedor y credenciales al final del archivo usando este formato: objetivo:usuario:contraseña. Por ejemplo, para SendGrid:

Plaintext

*.sendgrid.net:apikey:SG.TuTokenSecreto...

Asegura el archivo para que ningún otro usuario del sistema pueda leer tus contraseñas:

Bash

sudo chown root:Debian-exim /etc/exim4/passwd.client

sudo chmod 640 /etc/exim4/passwd.client

8. El Paso Crítico: Aplicar Cambios

A diferencia de Dovecot o Apache, reiniciar el servicio de Exim no aplica los cambios de configuración. Primero debes compilar la plantilla que creamos en los pasos anteriores.

Bash

# 1. Compila la nueva configuración


sudo update-exim4.conf

# 2. Reinicia el servicio para que la lea

sudo systemctl restart exim4

9. Pruebas y Monitoreo

Para comprobar que Exim está funcionando, vamos a enviar un correo de prueba:

Bash

echo "Prueba de Exim en Linux" | mail -s "Hola desde Exim" tu-correo-personal@gmail.com

¿No llegó el correo? Mira los Logs

Exim registra absolutamente todo lo que hace en su archivo mainlog. Si hay un fallo de contraseñas o el puerto 25 está bloqueado por tu proveedor de nube, lo verás aquí:

Bash

sudo tail -f /var/log/exim4/mainlog

<= Indica que Exim recibió un correo de un usuario local.

=> Indica que Exim lo entregó con éxito al exterior.

Indica un error fatal (como conexión rechazada).

10. Verificación y Pruebas de Envío

Para comprobar que Exim está procesando las solicitudes correctamente, puedes enviar un correo de prueba desde la propia terminal:

Bash

echo "Este es un correo de prueba de Exim" | mail -s "Prueba de Servidor" tu-correo-personal@gmail.com

El rastreo en los Logs

Si el correo no llega a tu bandeja de entrada, la respuesta no estará en la consola, sino en el archivo de registro. Mantén el log abierto mientras realizas la prueba:

Bash


sudo tail -f /var/log/exim4/mainlog


Un mensaje con < = significa que Exim aceptó el correo localmente.

Un mensaje con => significa que el correo fue entregado con éxito al siguiente servidor.

Un mensaje con . significa que hubo un error crítico (como datos de autenticación erróneos).

11. Control de la Cola de Correo (Herramientas del Administrador)

Una de las mayores virtudes de Exim es el control absoluto que te da sobre los correos que se quedan "atascados" (por ejemplo, si intentaste enviar un correo a un dominio que no existe).


AcciónComandoDescripción
Ver la colasudo mailq o sudo exim -bpMuestra todos los correos retenidos y su ID único.
Forzar entregasudo exim -qfObliga a Exim a reintentar el envío de toda la cola inmediatamente.
Ver estadísticas`sudo exim -bpeximon`
Eliminar un correosudo exim -Mrm <ID-del-mensaje>Borra de la cola un correo específico usando su ID.
Eliminar toda la colasudo exim -Mrm $(exq -i)Limpieza total de la cola de mensajes acumulados.

Tabla de Mantenimiento Rápido

El control de la cola es una de las mayores fortalezas de Exim. Si los correos se atascan, usa estos comandos:

AcciónComandoPara qué sirve
Ver la colasudo mailq o sudo exim -bpMuestra los correos atrapados en el servidor y su ID.
Forzar el envíosudo exim -qfObliga a Exim a intentar enviar toda la cola de inmediato.
Leer un correosudo exim -Mvb <ID-Mensaje>Lee el contenido (cuerpo) de un correo atascado.
Borrar un correosudo exim -Mrm <ID-Mensaje>Elimina un mensaje específico de la cola.

Un detalle técnico a tener en cuenta

A diferencia de otros servicios donde editas un archivo .conf y reinicias, en Exim (especialmente en Debian/Ubuntu) modificar directamente /etc/exim4/exim4.conf.template requiere que ejecutes obligatoriamente sudo update-exim4.conf antes de reiniciar el servicio. Si olvidas este comando, Exim seguirá ejecutando la versión antigua que tiene guardada en su memoria interna /var/lib/exim4/config.autogenerated.

¿Este servidor Exim lo vas a usar principalmente como un "Smarthost" para desviar correos de tus aplicaciones (como WordPress o Znuny) a través de un proveedor externo, o quieres que sea un servidor de correo autónomo de cara a internet?

¿Este servidor Exim lo estás configurando para integrarlo con Znuny/OTRS y manejar tickets, o tienes en mente montar un servicio de correo corporativo completo (junto con Dovecot)?

Ads by CJ - Linux Foundation

Share This