Si algunos de nuestros foros, manuales, ALDOS, paquetería o proyectos te han resultado de ayuda, apreciaremos mucho nos apoyes con un donativo.

Configuración simple para Antivirus y Antispam.

Autor: Joel Barrios Dueñas
Correo electrónico: darkshram en gmail punto com
Sitio de Red: http://www.alcancelibre.org/
Jabber ID: darkshram@jabber.org

Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1

© 1999-2016 Joel Barrios Dueñas. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación, a través de cualquier medio, por entidades con fines de lucro). c) Si altera o transforma esta obra o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector, hace mal uso de éstos.

Equipamiento lógico necesario.

Si utiliza ALDOS, éste ya dispone de la configuración necesaria para instalar todos los paquetes necesarios. Si dispone de un servidor con CentOS o Red Hat™ Enterprise Linux, puede utilizar el almacén YUM de Alcance Libre para servidores en producción, descargando el archivo http://www.alcancelibre.org/al/server/AL-Server.repo dentro del directorio /etc/yum.repos.d/:

wget -N http://www.alcancelibre.org/al/server/AL-Server.repo \
    -O /etc/yum.repos.d/AL-Server.repo

Asumiendo que tiene configurados los almacenes YUM de Alcance Libre, instale los paquetes spamassassin, clamav y clamav-update.

yum -y install spamassassin clamav clamav-update

Procedimientos

Políticas de Selinux.

Active las siguientes políticas de SELinux:

setsebool -P antivirus_use_jit 1
setsebool -P antivirus_can_scan_system 1
setsebool -P spamassassin_can_network 1
setsebool -P spamd_enable_home_dirs 1

La política antivirus_use_jit permite a ClamAV utilizar el compilador JIT basado sobre LLVM (Low Level Virtual Machine), el cual es utilizado para extender las capacidades de detección de virus al compilar Bytecode.

La política antivirus_can_scan_system permite a ClamAV poder realizar la verificación todo lo que se encuentre en el sistema de archivos.

La política spamassassin_can_network permite a Spamassassin conectarse a las bases de datos de Spam en Internet.

La política spamd_enable_home_dirs permite a Spamassassin leer y escribir dentro de los directorios de inicio de los usuarios locales.

Actualizar base de datos de ClamAV.

Actualice la base de datos del antivirus ClamAV ejecutando lo siguiente:

freshclam

Actualizar el conjunto de reglas de Spamassassin.

Actualice el conjunto de reglas de Spamassassin ejecutando lo siguiente:

sa-update -v

Lo anterior deberá indicar qué componentes de Spamassassin fueron actualizados.

Nota.

Para optimizar y extender el funcionamiento de Spamassassin, estudie el documento titulado «Cómo instalar y configurar Spamassassin

Configuración para poca carga de trabajo.

Utilizando el mandato touch, genere el archivo /etc/procmailrc:

touch /etc/procmailrc

Edite el archivo /etc/procmailrc:

vim /etc/procmailrc

Añada el siguiente contenido:

SHELL=/bin/sh
# Si desea almacenar toda la información de actividad
# de Procmail en una bitácora, descomente lo siguiente. 
#LOGFILE=/var/log/procmail.log

# Configuración basada sobre http://bulma.net/body.phtml?nIdNoticia=1978
# y adecuada y actualizada, por Joel Barrios Dueñas.
AV_REPORT=`/usr/bin/clamscan --stdout --no-summary - | cut -d: -f 2`
VIRUS=`if [ "$AV_REPORT" != " OK" ]; then echo Yes; else echo No;fi`

# Añade el campo de reporte ClamAV.
:0fw
| formail -i "X-Virus: $VIRUS"

# Si el mensaje es positivo a virus, se cambia el asunto.
:0fw
* ^X-Virus: Yes
| formail -i "Virus: $AV_REPORT" -i "Subject: MENSAJE CON VIRUS: $AV_REPORT"

# Hacer pasar todo el correo electrónico a través de spamassassin
:0fw
| /usr/bin/spamassassin

Con lo anterior, en adelante todo el correo será examinado primero por ClamAV y Spamassassin y clasificado antes de ser entregado al usuario. Es innecesario reiniciar el servicio sendmail o servicio alguno. Esta solución es perfecta para servidores de correo electrónico con poco carga de trabajo.

Configuración para mucha carga de trabajo.

Si se tiene un servidor de correo electrónico con mucha carga de trabajo, instale el paquete clamav-scanner-sysvinit:

yum -y install clamav-scanner-sysvinit

Inicie el servicio clamd.scan ejecutando lo siguiente:

service clamd.scan start

Inicie el servicio spamassassin ejecutando lo siguiente.

service spamassassin start

Añada los servicios clamd.scan y spamassassin al inicio del sistema:

chkconfig clamd.scan on
chkconfig spamassassin on

El siguiente paso es muy importante. Omitirlo o equivocarse al realizar éste significará que todo el correo sea considerado como infectado por Virus. Copie el archivo /etc/clamd.d/scan.conf como el archivo /etc/clamd.conf:

cp /etc/clamd.d/scan.conf /etc/clamd.conf

Filtración sólo con modificación de títulos de mensaje.

En caso de que éste fuese inexistente, utilice el mandato touch para crear el archivo /etc/procmailrc:

touch /etc/procmailrc

Edite el archivo /etc/procmailrc:

vim /etc/procmailrc

Añada el siguiente contenido, que en relación al ejemplo mencionado arriba —configuración para poca carga de trabajo— se cambian /usr/bin/clamscan por /usr/bin/clamdscan y /usr/bin/spamassassin por /usr/bin/spamc:

SHELL=/bin/sh
# Si desea almacenar toda la información de actividad
# de Procmail en una bitácora, des-comente lo siguiente. 
#LOGFILE=/var/log/procmail.log

# Configuración basada sobre http://bulma.net/body.phtml?nIdNoticia=1978
# y adecuada y actualizada, por Joel Barrios Dueñas.
AV_REPORT=`/usr/bin/clamdscan --stdout --no-summary - | cut -d: -f 2`
VIRUS=`if [ "$AV_REPORT" != " OK" ]; then echo Yes; else echo No;fi`

# Añade el campo de reporte ClamAV.
:0fw
| formail -i "X-Virus: $VIRUS"

# Si el mensaje es positivo a virus, se cambia el asunto.
:0fw
* ^X-Virus: Yes
| formail -i "Virus: $AV_REPORT" -i "Subject: MENSAJE CON VIRUS: $AV_REPORT"

# Hacer pasar todo el correo electrónico a través de spamassassin
:0fw
| /usr/bin/spamc

Con lo anterior, tendrá una solución aceptable, barata, confiable, rápida y sencilla, para servidores de correo electrónico con mucha carga de trabajo.

Filtración con modificación de títulos de mensaje y mover automáticamente a una carpeta.

Si, además, necesita que todos los mensajes de Spam y los mensajes infectados con virus sean movidos automáticamente a la carpeta de correo ~/mail/Junk.

Descargue la plantilla del archivo /etc/procmailrc desde AlcanceLibre.org, con el contenido anterior.

wget http://www.alcancelibre.org/linux/secrets/procmailrc \
    -O /etc/procmailrc

Edite el archivo /etc/procmailrc:

vim /etc/procmailrc

Verifique que esté presente la siguiente configuración y realice los cambios que considere pertinentes:

SHELL=/bin/sh
# Si desea almacenar toda la información de actividad
# de Procmail en una bitácora, descomente lo siguiente. 
#LOGFILE=/var/log/procmail.log

# Configuración basada sobre http://bulma.net/body.phtml?nIdNoticia=1978
# y adecuada y actualizada, por Joel Barrios Dueñas.
AV_REPORT=`/usr/bin/clamdscan --stdout --no-summary - | cut -d: -f 2`
VIRUS=`if [ "$AV_REPORT" != " OK" ]; then echo Yes; else echo No;fi`

# Añade el campo de reporte ClamAV.
:0fw
| formail -i "X-Virus: $VIRUS"

# Si el mensaje es positivo a virus, se cambia el asunto.
:0fw
* ^X-Virus: Yes
| formail -i "Virus: $AV_REPORT" -i "Subject: MENSAJE CON VIRUS: $AV_REPORT"

# Si el mensaje es positivo a virus, se almacena en $HOME/mail/Junk
:0:
* ^X-Virus: Yes
$HOME/mail/Junk
# Si lo desea, puede enviar los mensajes infectados a /dev/null.

# Hacer pasar todo el correo electrónico a través de spamassassin
:0fw
| /usr/bin/spamc

# Los mensajes marcados como spam, se almacenan en $HOME/mail/Junk
:0:
* ^X-Spam-Status: Yes
$HOME/mail/Junk

Ajustes posteriores a las cuentas de usuario.

A fin de que todo lo anterior funcione correctamente, es imprescindible que los usuarios generen y se suscriban con antelación a la carpeta IMAP $HOME/mail/Junk. Es importante mencionar que con el primer mensaje que sea procesado, la carpeta IMAP $HOME/mail/Junk será propiedad de root, con permiso de sólo lectura para root, salvo que haya sido creada y suscrita previamente por el usuario.

Para automatizar lo anterior para las cuentas de usuario que sean creadas en lo subsecuente, ejecute lo siguiente para que /etc/skel incluya el archivo ~/mail/Junk y para que la carpeta IMAP correspondiente esté suscrita de modo predeterminado.

mkdir -m 700 /etc/skel/mail
touch /etc/skel/mail/Junk
chmod 600 /etc/skel/mail/Junk
echo "Junk" > /etc/skel/mail/.subscriptions
chmod 600 /etc/skel/mail/.subscriptions

Si desea ahorrarse trabajo y explicaciones a los usuarios existentes, puede ejecutar lo siguiente:

cd /home
for user in *
do
mkdir -m 700 $user/mail
touch $user/mail/Junk
chmod 600 $user/mail/Junk
echo "Junk" >> $user/mail/.subscriptions
chmod 600 $user/mail/.subscriptions
chown -R $user:$user $user/mail/
done
cd -

Lecturas posteriores.

Si tiene interés en mejorar y optimizar, el filtrado de spam, consulte el documento titulado «Cómo instalar y configurar Spamassassin

Si algunos de nuestros foros, manuales, ALDOS, paquetería o proyectos te han resultado de ayuda, apreciaremos mucho nos apoyes con un donativo.

Última Edición: 20/07/2016, 10:46|Hits: 9,273 Ver la versión para imprimir