Hosting , Administración de Servidores , Email

Auditoría Interna de Cuentas de Email en cPanel desde la Terminal

Guía paso a paso para realizar una auditoría interna de cuentas de correo en cPanel desde la terminal, diagnosticando problemas como correos desaparecidos.

Auditoría Interna de Cuentas de Email en cPanel desde la Terminal

¿Alguna vez un usuario te ha dicho la temida frase: “¡Han desaparecido todos mis correos antiguos!”? Antes de entrar en pánico y pensar en fallos de disco o brechas de seguridad, hay un proceso de auditoría metódico que puedes realizar directamente desde la terminal de tu servidor cPanel.

Este artículo te guiará paso a paso a través de una auditoría interna para diagnosticar problemas de correo electrónico, utilizando comandos de shell para recopilar y analizar la evidencia. Al final, no solo sabrás qué pasó, sino que podrás explicarlo con fundamentos técnicos.

El Escenario: Un Caso de “Correos Desaparecidos”

Un usuario, al que llamaremos “Juan”, nos contacta preocupado porque no encuentra los correos de hace más de un par de meses en su cuenta [email protected]. Sospecha que han sido borrados del servidor.

Nuestra misión: Convertirnos en detectives digitales, usar la terminal como nuestra lupa y descubrir la verdad.

Paso 1: Recopilar la Evidencia con un Script

El primer paso es recolectar toda la información relevante. Con acceso SSH como root a tu servidor, podemos usar un simple script de shell para extraer los datos de los logs más importantes y guardarlos en archivos de texto para un análisis más cómodo.

Aquí tienes un script de recopilación. Simplemente reemplaza los valores de ejemplo (cpaneluser, miempresa.com, juan) con los datos reales.

#!/bin/bash
# --- Variables de Configuración ---
CPANEL_USER="cpaneluser"
DOMAIN="miempresa.com"
EMAIL_USER="juan"
EMAIL_ADDRESS="${EMAIL_USER}@${DOMAIN}"
OUTPUT_DIR="/home/${CPANEL_USER}/public_html/audit_logs/"

# --- Inicio de la Recopilación ---
echo "Iniciando auditoría para ${EMAIL_ADDRESS}..."

# 1. Crear directorio de salida
mkdir -p "${OUTPUT_DIR}"
chown ${CPANEL_USER}:${CPANEL_USER} "${OUTPUT_DIR}"

# 2. Log de Exim (envío y recepción)
echo "Extrayendo logs de Exim..."
tail -n 500000 /var/log/exim_mainlog | grep "${EMAIL_ADDRESS}" > "${OUTPUT_DIR}/01_exim_log.txt"

# 3. Log de Dovecot (conexiones IMAP/POP3)
echo "Extrayendo logs de Dovecot..."
grep "${EMAIL_ADDRESS}" /var/log/maillog > "${OUTPUT_DIR}/02_maillog.txt"

# 4. Tamaño y estructura del buzón
echo "Calculando tamaño del buzón..."
du -ah "/home/${CPANEL_USER}/mail/${DOMAIN}/${EMAIL_USER}/" > "${OUTPUT_DIR}/03_mailbox_size.txt"

# 5. Reenviadores y filtros
echo "Verificando reenviadores y filtros..."
echo "--- Reenviadores ---" > "${OUTPUT_DIR}/04_configs.txt"
cat "/etc/valiases/${DOMAIN}" >> "${OUTPUT_DIR}/04_configs.txt"
echo "" >> "${OUTPUT_DIR}/04_configs.txt"
echo "--- Filtros ---" >> "${OUTPUT_DIR}/04_configs.txt"
if [ -f "/home/${CPANEL_USER}/etc/${DOMAIN}/${EMAIL_USER}/filter" ]; then
    cat "/home/${CPANEL_USER}/etc/${DOMAIN}/${EMAIL_USER}/filter" >> "${OUTPUT_DIR}/04_configs.txt"
else
    echo "No se encontraron filtros para esta cuenta." >> "${OUTPUT_DIR}/04_configs.txt"
fi

# 6. Cambiar permisos para facilitar el acceso
chown -R ${CPANEL_USER}:${CPANEL_USER} "${OUTPUT_DIR}"
echo "¡Auditoría completada! Los archivos se encuentran en ${OUTPUT_DIR}"

Paso 2: El Análisis Forense de los Logs

Con nuestros archivos de texto generados, es hora de analizar las pistas.

A. ¿Está el correo fluyendo correctamente? (01_exim_log.txt)

Este log nos dice si los correos están llegando y saliendo del servidor. Buscaremos líneas como estas:

  • Correo Entrante: La flecha <= indica que el servidor recibió un correo.

    2025-08-05 09:34:22 <= [email protected] H=... S=69070 T="Factura" for [email protected]
    
  • Entrega Exitosa: La flecha => seguida de R=virtual_user T=dovecot_virtual_delivery y un C="250 ... Saved" confirma que el correo fue entregado exitosamente en el buzón del usuario.

    2025-08-05 09:34:22 => juan <[email protected]> R=virtual_user T=dovecot_virtual_delivery C="250 2.0.0 ... Saved"
    

Análisis: Si vemos un flujo constante de entregas exitosas, podemos descartar un problema de recepción en el servidor. El correo está llegando.

B. ¿Quién se conecta y qué hace? (02_maillog.txt)

Este es el log más revelador. Nos muestra cada intento de conexión, si fue exitoso y, lo más importante, qué protocolo se usó.

  • Inicio de Sesión Exitoso:

    Aug 5 11:43:26 imap-login: Login: user=<[email protected]>, method=PLAIN, rip=190.129.17.77, ... TLS
    

    Esto nos muestra que el usuario “juan” inició sesión desde la IP 190.129.17.77.

  • La Pista Clave: La Descarga de Datos:

    Aug 5 09:08:02 imap([email protected]): Disconnected: Logged out in=1146, out=17217120, bytes=1146/17217120
    

    ¡Aquí está el oro! La parte out=17217120 nos dice que durante esa sesión se descargaron 17.2 MB de datos. Múltiples entradas como esta son una clara señal de que un cliente de correo está descargando masivamente los mensajes al dispositivo local.

  • Intentos de Ataque (y cómo el servidor los detiene):

    Aug 5 01:46:13 dovecot_login authenticator failed for (xjxda) [192.210.236.161]:55814: 535 Incorrect authentication data
    

    Estas líneas son normales. Muestran intentos de acceso fallidos desde IPs desconocidas. Mientras terminen en failed, significa que la seguridad del servidor está funcionando y la contraseña del usuario es segura.

C. ¿Dónde está el espacio? (03_mailbox_size.txt)

El comando du -ah nos da un desglose detallado del buzón.

...
779M /home/cpaneluser/mail/miempresa.com/juan/cur
234M /home/cpaneluser/mail/miempresa.com/juan/.Sent
67M /home/cpaneluser/mail/miempresa.com/juan/.Trash
...
1.1G /home/cpaneluser/mail/miempresa.com/juan/

Análisis: Esto nos confirma el tamaño total del buzón (1.1 GB) y nos muestra que la mayoría del espacio está en la bandeja de entrada (cur) y en los elementos enviados. Si el buzón estuviera casi vacío, reforzaría la teoría de que un cliente POP3 está borrando los correos.

Paso 3: El Veredicto - Conectando los Puntos

Con toda la evidencia sobre la mesa, podemos armar el rompecabezas:

  1. El correo llega correctamente: El log de Exim lo confirma.
  2. No hay reglas en el servidor: Los filtros y reenviadores están limpios.
  3. Hay conexiones legítimas: El usuario se conecta desde sus IPs habituales.
  4. Se están descargando grandes volúmenes de datos: El log de Dovecot es la prueba irrefutable.

Conclusión: Los correos no están “desapareciendo”. Están siendo descargados a un dispositivo local por un cliente de correo (como Outlook) configurado con el protocolo POP3. Por defecto, POP3 elimina los mensajes del servidor una vez descargados, creando la ilusión de que se han borrado.

Paso 4: La Solución - Recomendaciones Claras

Ahora podemos contactar a Juan con una explicación clara y una solución permanente.

  1. Explicar la diferencia: Detallar de forma sencilla qué es POP3 (descarga y borra) y qué es IMAP (sincroniza).
  2. Recomendar el cambio a IMAP: La solución ideal es que el usuario reconfigure su cuenta de correo en todos sus dispositivos (PC, celular, tablet) utilizando el protocolo IMAP. Esto mantendrá sus correos centralizados en el servidor y sincronizados en todas partes.
  3. Solución Alternativa para POP3: Si el usuario insiste en usar POP3, debe buscar en la configuración avanzada de su cliente de correo la opción “Dejar una copia de los mensajes en el servidor” y asegurarse de que esté activada.

Al seguir esta metodología, no solo resuelves el problema del usuario, sino que demuestras un dominio técnico que genera confianza y educa a tus clientes sobre las mejores prácticas.