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-2013 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.
Procedimientos
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 clamd_use_jit 1 setsebool -P clamscan_can_scan_system 1 setsebool -P spamassassin_can_network 1 setsebool -P spamd_enable_home_dirs 1
|
Actualice la base de datos del antivirus ClamAV, ejecutando lo siguiente:
Actualice el conjunto de reglas de Spamassassin, ejecutando lo siguiente:
Lo anterior deberá indicar qué componentes de Spamassassin fueron actualizados.
Utilizando el mandato touch, genere el archivo /etc/procmailrc:
Edite el archivo /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:
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
|
Genere un enlace simbólico como /etc/clamd.conf, que apunte hacia /etc/clamd.d/scan.conf:
ln -s /etc/clamd.d/scan.conf /etc/clamd.conf
|
Edite el archivo /etc/procmailrc y cambie /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, utilice la siguiente configuración para el archivo /etc/procmailrc:
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
|
Si lo desea, puede descargar una copia del archivo /etc/procmailrc desde AlcanceLibre.org, con el contenido anterior.
wget http://www.alcancelibre.org/linux/secrets/procmailrc -O /etc/procmailrc
|
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.»
Comentarios Recientes