Búsqueda de sitios web

Cómo agregar protección antivirus y antispam al servidor de correo Postfix con ClamAV y SpamAssassin - Parte 3


En los dos artículos anteriores de esta serie Postfix, aprendió cómo configurar y administrar la base de datos del servidor de correo electrónico a través de phpMyAdmin, y cómo configurar Postfix y Dovecot para manejar el correo entrante y saliente. Además, explicamos cómo configurar un cliente de correo, como Thunderbird, para las cuentas virtuales que creamos anteriormente.

  1. Configurar el servidor de correo Postfix y Dovecot con MariaDB - Parte 1
  2. Cómo configurar Postfix y Dovecot con usuarios de dominio virtual – Parte 2
  3. Instalar y configurar el cliente de correo web RoundCube con usuarios virtuales en Postfix – Parte 4
  4. Utilice Sagator, una puerta de enlace antivirus/antispam para proteger su servidor de correo – Parte 5

Dado que ninguna configuración de servidor de correo electrónico puede estar completa sin tomar precauciones contra virus y spam, cubriremos ese tema en el artículo actual.

Tenga en cuenta que incluso cuando los sistemas operativos *tipo nix generalmente se consideran libres de virus, es probable que los clientes que utilizan otros sistemas operativos también se conecten a su servidor de correo electrónico.

Por ese motivo, debe brindarles la confianza de que ha tomado las medidas necesarias para protegerlos en la medida de lo posible de dichas amenazas.

Configuración de SpamAssassin para Postfix

En el proceso de recibir correo electrónico, spamassassin se interpondrá entre el mundo exterior y los servicios de correo electrónico que se ejecutan en su servidor. Si encuentra, según sus reglas de definición y configuración, que un mensaje entrante es spam, reescribirá la línea de asunto para identificarlo claramente como tal. Veamos cómo.

El archivo de configuración principal es /etc/mail/spamassassin/local.cf, y debemos asegurarnos de que las siguientes opciones estén disponibles (agregarlas si no están presentes o descomentar si es necesario):

report_safe 0
required_score 8.0
rewrite_header Subject [SPAM]
  1. Cuando report_safe se establece en 0 (valor recomendado), el spam entrante solo se modifica modificando los encabezados de correo electrónico según rewrite_header. Si se establece en 1, el mensaje se eliminará.
  2. Para establecer la agresividad del filtro de spam, required_score debe ir seguido de un número entero o decimal. Cuanto menor sea el número, más sensible se vuelve el filtro. Se recomienda establecer required_score en un valor entre 8,0 y 10,0 para un sistema grande que presta servicios a muchos (~100). cuentas de correo electrónico.

Una vez que haya guardado esos cambios, habilite e inicie el servicio de filtro de spam y luego actualice las reglas de spam:

systemctl enable spamassassin
systemctl start spamassassin
sa-update

Para obtener más opciones de configuración, puede consultar la documentación ejecutando perldoc Mail::SpamAssassin::Conf en la línea de comando.

Integrando Postfix y SpamAssassin

Para integrar Postfix y spamassassin de manera eficiente, necesitaremos crear un usuario y un grupo dedicados para ejecutar el demonio de filtro de spam:

useradd spamd -s /bin/false -d /var/log/spamassassin

A continuación, agregue la siguiente línea en la parte inferior de /etc/postfix/master.cf:

spamassassin unix - n n - - pipe flags=R user=spamd argv=/usr/bin/spamc -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}

E indica (en la parte superior) que spamassassin servirá como content_filter:

-o content_filter=spamassassin

Finalmente, reinicie Postfix para aplicar los cambios:

systemctl restart postfix

Para verificar que SpamAssassin esté funcionando correctamente y detecte spam entrante, se proporciona una prueba conocida como GTUBE (Prueba genérica para correo electrónico masivo no solicitado).

Para realizar esta prueba, envíe un correo electrónico desde un dominio fuera de su red (como Yahoo!, Hotmail o Gmail) a una cuenta que reside en su servidor de correo electrónico. Establezca la línea de Asunto en lo que desee e incluya el siguiente texto en el cuerpo del mensaje:

XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X

Por ejemplo, enviar el texto anterior en el cuerpo de un mensaje desde mi cuenta de Gmail produce el siguiente resultado:

Y muestra el aviso correspondiente en los logs:

journalctl | grep spam

Como puede ver en la imagen de arriba, este mensaje de correo electrónico obtuvo una puntuación de spam de 1002,3. Además, puedes probar spamassassin directamente desde la línea de comando:

spamassassin -D < /usr/share/doc/spamassassin-3.4.0/sample-spam.txt

El comando anterior producirá una salida realmente detallada que debería incluir lo siguiente:

Si estas pruebas no tienen éxito, es posible que desee consultar la guía de integraciones de spamassassin.

Iniciar ClamAV y actualizar las definiciones de virus

Para comenzar, necesitaremos editar /etc/clamd.d/scan.conf. Descomente la siguiente línea:

LocalSocket /var/run/clamd.scan/clamd.sock

y comenta o elimina la línea:

Example

Luego habilite e inicie el demonio del escáner clamav:

systemctl enable [email 
systemctl start [email 

y no olvides configurar el booleano antivirus_can_scan_system SELinux en 1:

setsebool -P antivirus_can_scan_system 1

En este punto vale la pena comprobar el estado del servicio:

Como puede ver en la imagen de arriba, nuestras firmas de virus tienen más de 7 días. Para actualizarlos usaremos una herramienta llamada freshclam que se instaló como parte del paquete clamav-update.

La forma más sencilla de actualizar las definiciones de virus es mediante un trabajo cron que se ejecuta tantas veces como se desee (una vez al día por ejemplo, a la 1 am hora del servidor como se indica en el siguiente ejemplo se considera suficiente):

00 01 * * * root /usr/share/clamav/freshclam-sleep

También puede actualizar las definiciones de virus manualmente, pero antes también tendrá que eliminar o comentar la siguiente línea en /etc/freshclam.conf.

Example

Ahora deberías poder ejecutar:

freshclam

que actualizará las definiciones de virus según lo desee:

Prueba de ClamAV en busca de virus en correos electrónicos

Para verificar que ClamAV esté funcionando correctamente, descarguemos un virus de prueba (que podemos obtener desde http://www.eicar.org/download/eicar.com) al Maildir de [email  ( que se encuentra en /home/vmail/linuxnewz.com/tecmint/Maildir) para simular un archivo infectado recibido como archivo adjunto de correo:

cd /home/vmail/linuxnewz.com/tecmint/Maildir
wget http://www.eicar.org/download/eicar.com

Y luego escanea el directorio /home/vmail/linuxnewz.com de forma recursiva:

clamscan --infected --remove --recursive /home/vmail/linuxnewz.com

Ahora, siéntete libre de configurar este análisis para ejecutar un cronjob. Cree un archivo llamado /etc/cron.daily/dailyclamscan, inserte las siguientes líneas:

#!/bin/bash
SCAN_DIR="/home/vmail/linuxnewz.com"
LOG_FILE="/var/log/clamav/dailyclamscan.log"
touch $LOG_FILE
/usr/bin/clamscan --infected --remove --recursive $SCAN_DIR >> $LOG_FILE

y otorgar permisos de ejecución:

chmod +x /etc/cron.daily/dailyclamscan

El cronjob anterior escaneará el directorio del servidor de correo de forma recursiva y dejará un registro de su operación en /var/log/clamav/dailyclamscan.log (asegúrese de que el /var/log/clamav el directorio existe).

Veamos qué sucede cuando enviamos el archivo eicar.com desde [email  a [email :

Resumen

Si siguió los pasos descritos en este tutorial y en los dos artículos anteriores de esta serie, ahora tiene un servidor de correo electrónico Postfix funcional con protección antivirus y contra spam.

DESCARGO DE RESPONSABILIDAD: Tenga en cuenta que la seguridad del servidor es un tema muy amplio y no se puede tratar adecuadamente en una serie corta como esta.

Por ese motivo, le recomiendo encarecidamente que se familiarice con las herramientas utilizadas en esta serie y sus páginas de manual. Aunque he hecho todo lo posible para cubrir los conceptos esenciales asociados con este tema, no asuma que después de leer esta serie está completamente calificado para configurar y mantener un servidor de correo electrónico en un entorno de producción.

Esta serie pretende ser un punto de partida y no una guía exhaustiva para la administración del servidor de correo en Linux.

Probablemente se te ocurran otras ideas que puedan enriquecer esta serie. Si es así, no dude en enviarnos una nota utilizando el formulario de comentarios a continuación. También se agradecen las preguntas y otras sugerencias: ¡esperamos tener noticias suyas!