Busqueda sobre Linux y software libre

Noticias sobre linux y software libre - Google 

Cómo instalar y configurar QMail en linux

 le preguntamos a Gemini, la inteligencia artificial de Google cómo instalar y configurar QMail en linux

Explicanos detalladamente cómo instalar y configurar QMail en linux

QMail es un Agente de Transferencia de Correo (MTA) reconocido por su arquitectura modular con separación de privilegios, diseñada por Daniel J. Bernstein para garantizar máxima seguridad y evitar los agujeros de seguridad históricos de Sendmail.

A diferencia de Postfix o Sendmail (que corren como un proceso monolítico o con pocos demonios), QMail divide el procesamiento de correos en múltiples binarios pequeños e independientes (qmail-send, qmail-smtpd, qmail-inject, qmail-rspawn, qmail-lspawn) corriendo bajo usuarios de sistema específicos sin privilegios de root.

A continuación se detalla el proceso completo de compilación, creación de usuarios, configuración del directorio de control /var/qmail y puesta en marcha en Linux.

Requisitos Previos

Un servidor Linux con herramientas de compilación (build-essential, gcc, make).

Un nombre de dominio FQDN bien resuelto (ej. mail.tudominio.com).

Acceso como usuario root.

1.1. Crear grupos y usuarios de sistema obligatorios:

Creación de cuentas aisladas por seguridad.


QMail no funcionará si no existen sus usuarios y grupos de sistema dedicados. Cada binario se ejecuta bajo la identidad de un usuario distinto para limitar el impacto si un componente es comprometido.Ejecuta los siguientes comandos para crear los grupos y usuarios con sus UID/GID correspondientes:

Bash

# Crear los grupos de sistema


sudo groupadd nofiles

sudo groupadd qmail


# Crear los usuarios asociados al grupo nofiles

sudo useradd -g nofiles -d /var/qmail/alias -s /nonexistent alias

sudo useradd -g nofiles -d /var/qmail -s /nonexistent qmaild

sudo useradd -g nofiles -d /var/qmail -s /nonexistent qmaill

sudo useradd -g nofiles -d /var/qmail -s /nonexistent qmailp


# Crear los usuarios asociados al grupo qmail

sudo useradd -g qmail -d /var/qmail -s /nonexistent qmailq

sudo useradd -g qmail -d /var/qmail -s /nonexistent qmailr

sudo useradd -g qmail -d /var/qmail -s /nonexistent qmails


2.2. Descargar y parchear el código fuente (netqmail):

Requerido para compatibilidad con compiladores de 64 bits.

El código fuente original de QMail (v1.03) fue escrito en los años 90. En distribuciones Linux modernas de 64 bits (gcc moderno y glibc), la compilación directa fallará si no se aplican parches de compatibilidad (usualmente provistos por el paquete consolidado netqmail).

Bash

cd /usr/local/src

# Descargar el paquete consolidado netqmail

sudo wget https://qmail.org/netqmail-1.06.tar.gz

sudo tar -xzvf netqmail-1.06.tar.gz


cd netqmail-1.06

(En sistemas modernos de 64 bits con gcc estricto, es posible que necesites corregir el tipo de retorno en error.h agregando #include antes de compilar).

3.3. Compilar e instalar binarios:

Despliegue de la estructura en /var/qmail.

Ejecuta la compilación y la instalación de la estructura del sistema en /var/qmail:

Bash

sudo make setup check

Si el comando finaliza sin errores, el compilador habrá generado el árbol completo de directorios en /var/qmail con los permisos exactos asignados a cada usuario de sistema (qmailq, qmailr, etc.).

4.4. Configurar los archivos de dominio en /var/qmail/control:

Archivos críticos dentro de /var/qmail/control.

Toda la lógica de QMail reside en archivos de texto dentro de /var/qmail/control/. Puedes generar la configuración base automáticamente usando el hostname del sistema, o crear los archivos manualmente:

Bash

# Para intentar auto-configurar basándose en el FQDN del sistema:


sudo ./config-fast mail.tudominio.com

Esto poblará los siguientes archivos esenciales dentro de /var/qmail/control/:

ArchivoFunciónEjemplo de contenido
meNombre completo del servidor (FQDN).mail.tudominio.com
defaultdomainDominio por defecto para direcciones locales incompletas.tudominio.com
plusdomainDominio adjunto a nombres con signo más.tudominio.com
localsDominios para los que QMail entregará localmente los correos.localhost

tudominio.com

mail.tudominio.com
rcpthostsDominios que QMail aceptará recibir (evita ser Open Relay).localhost

tudominio.com

5. Configurar el formato Maildir y alias del sistema

Reemplaza el formato mbox tradicional


QMail es el creador del formato Maildir (un archivo individual por correo), que es mucho más seguro y eficiente que el archivo monolítico mbox.

Definir Maildir como el método de entrega por defecto:

Bash


sudo echo './Maildir/' > /var/qmail/control/defaultdelivery

Crear Maildir en la plantilla de usuarios (/etc/skel):

Bash


sudo maildirmake /etc/skel/Maildir

Crear los alias de correo obligatorios para el sistema:

QMail exige definir quién recibirá los correos dirigidos a root, postmaster y mailer-daemon.

Bash

cd /var/qmail/alias

sudo touch .qmail-postmaster .qmail-mailer-daemon .qmail-root


# Reenvía todos los avisos de root a un usuario real (ejemplo: admin)

sudo echo "&admin" > .qmail-root

sudo echo "&admin" > .qmail-postmaster

sudo chmod 644 .qmail-*


6

6. Iniciar los servicios de QMail

Supervisión con daemontools o scripts de inicio

QMail tradicionalmente utiliza daemontools y tcpserver (ucspi-tcp) para la gestión de procesos y el daemon SMTP en el puerto 25.

Para una prueba rápida directa del motor de colas, puedes invocar el script de arranque base:

Bash

# Iniciar la cola de procesamiento de correo de QMail con formato Maildir


sudo /var/qmail/rc

Para exponer el servicio SMTP en el puerto 25 escuchando peticiones entrantes, se invoca tcpserver asignado a qmail-smtpd:

Bash

sudo tcpserver -v -c 100 -u $(id -u qmaild) -g $(id -g nofiles) 0 25 \

/var/qmail/bin/qmail-smtpd 2>&1 | logger -t qmail-smtpd &


Verificación del Funcionamiento

1. Inyectar un correo de prueba vía terminal


Puedes probar el pipeline local de QMail enviando un correo mediante qmail-inject:

Bash

/var/qmail/bin/qmail-inject usuario@tudominio.com << EOF

Subject: Prueba de QMail

From: admin@tudominio.com

Mensaje de prueba enviado a traves de la infraestructura de QMail.

EOF

2. Inspeccionar la cola de mensajes

QMail incluye el binario qmail-qstat para revisar la salud de la cola de correo saliente y entrante:

Bash

sudo /var/qmail/bin/qmail-qstat

# Ejemplo de salida:

# messages in queue: 0

# messages in queue but not yet preprocessed: 0

Archivos y Directorios Clave

Plaintext

/var/qmail/
├── alias/ # Aliases del sistema (.qmail-root, .qmail-postmaster)
├── bin/ # Ejecutables principales (qmail-inject, qmail-send, qmail-smtpd)
├── control/ # Configuración de dominios y políticas (rcpthosts, me, locals)
└── queue/ # Directorio de la cola de correo (privilegios estrictos de qmailq)

¿Quieres integrar QMail con daemontools para gestionar el servicio como un demonio moderno de systemd?


¿Quieres integrar QMail con daemontools para gestionar el servicio como un demonio moderno de systemd?

Ads by CJ - Linux Foundation

Share This