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.
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 |
Active las siguientes políticas de SELinux:
setsebool -P antivirus_use_jit 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.
Actualice la base de datos del antivirus ClamAV ejecutando lo siguiente:
freshclam |
Actualice el conjunto de reglas de Spamassassin ejecutando lo siguiente:
sa-update -v |
Lo anterior deberá indicar qué componentes de Spamassassin fueron actualizados.
![]() |
Para optimizar y extender el funcionamiento de Spamassassin, estudie el documento titulado «Cómo instalar y configurar Spamassassin.» |
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.
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 |
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 |
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.
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 \
|
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
|
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 - |
Si tiene interés en mejorar y optimizar, el filtrado de spam, consulte el documento titulado «Cómo instalar y configurar Spamassassin.»