Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1
© 1999-2011 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.
Clamav-milter es un componente para añadir (Plug-in) para la biblioteca de filtros de correo (libmilter) de Sendmail, que se encarga de hacer pasar todo el correo entrante, incluyendo todo lo que se reciba a través de rmail/UUCP, a través del ClamAV, que a su vez es un poderoso, y robusto motor, con licenciamiento libre, para la detección de gusanos, troyanos, y virus. Verifica el correo electrónico durante la conexión con el servidor de correo que remite éste ultimo, y lo rechaza automáticamente si éste incluye algún gusanos, troyanos o virus.
Al igual que clamav-milter, el cual es utilizado para la filtración de Spam, representa una excelente alternativa pues tiene un bajo consumo de recursos de sistema, haciéndolo idóneo para servidores con sustento físico obsoleto, o donde otras aplicaciones tiene mayor prioridad en la utilización de recursos de sistema.
ClamAV es un conjunto de herramientas antivirus, libre, y de código fuente abierto, que tiene las siguiente características:
| • | Distribuido bajo los términos de la Licencia Publica General GNU versión 2. |
| • | Cumple con las especificaciones de familia de estándares POSIX (Portable Operating System Interface for UNIX o interfaz portable de sistema operativo para Unix). |
| • | Exploración rápida. |
| • | Detecta más de 720 mil virus, gusanos, y troyanos, incluyendo virus para MS Office. |
| • | Capacidad para examinar contenido de archivos ZIP, RAR, Tar, Gzip, Bzip2, MS OLE2, MS Cabinet, MS CHM, y MS SZDD. |
| • | Soporte para explorar archivos comprimidos con UPX, FSG, y Petite. |
| • | Avanzada herramienta de actualización con soporte para firmas digitales, y consultas basadas sobre DNS. |
| • | sendmail (previamente configurado) | • | sendmail-cf |
| • | make | • | m4 |
| • | clamav | • | clamav-milter |
De modo predeterminado, en los paquetes RPM basados sobre los disponibles para Fedora, el usuario para ClamAV se asigna a través de los mandatos fedora-groupadd, y fedora-useradd el UID, y GID 4 en el sistema. A fin de prevenir un conflicto de UID/GID con otros usuarios, y grupos de sistema, se recomienda crear previamente al grupo, y usuario correspondientes para ClamAV:
|
Si dispone de un servidor con CentOS 5, y 6 o Red Hat™ Enterprise Linux 5, y 6, puede utilizar el 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/:
cd /etc/yum.repos.d/ wget -N http://www.alcancelibre.org/al/server/AL-Server.repo cd |
Este archivo, que se guarda como /etc/yum.repos.d/AL-Server.repo, debe tener el siguiente contenido:
[AL-Server] name=AL Server para Enterprise Linux $releasever mirrorlist=http://www.alcancelibre.org/al/el$releasever/al-server gpgcheck=1 gpgkey=http://www.alcancelibre.org/al/AL-RPM-KEY |
La instalación a través del mandato yum requiere utilizar lo siguiente:
yum -y install clamav-milter clamav-milter-sysv clamav-data-empty clamav-update clamav-scanner clamav-scanner-sysvinit |
En CentOS 5 ,y Red Hat Enterprise Linux 5 se debe crear una política para permitir al servicio clamd.scan utilizar JIT, y la función execmem().
Genere un nuevo directorio denominado /usr/share/selinux/packages/clamd:
mkdir /usr/share/selinux/packages/clamd
|
Cambiarse al directorio /usr/share/selinux/packages/clamd:
cd /usr/share/selinux/packages/clamd
|
Descargar el archivo http://www.alcancelibre.org/linux/secrets/clamd.te:
wget http://www.alcancelibre.org/linux/secrets/clamd.te |
Editar el archivo recién descargado:
vim clamd.te |
Asegurarse que tenga el siguiente contenido:
module clamd 1.0;
require {
type clamd_t;
class process execmem;
}
#============= clamd_t ==============
allow clamd_t self:process execmem;
|
Lo anterior fue obtenido de la salida del mandato cat /var/log/audit/audit.log|grep audit|audit2allow -m clamd>clamd.te en un sistema donde SELinux impedía a clamav-milter utilizar la función execmem().
A continuación, se genera un el archivo de módulo para SELinux (clamd.mod) utilizando el mandato checkmodule de la siguiente forma:
checkmodule -M -m -o clamd.mod clamd.te |
Luego, se procede a empaquetar el archivo clamd.mod como el archivo clamd.pp:
semodule_package -o clamd.pp -m clamd.mod |
Finalmente se vincula el archivo clamd.pp obtenido con las políticas actuales de SELinux, y se cargan éstas en el núcleo en ejecución:
semodule -i /usr/share/selinux/packages/clamd/clamd.pp
|
Una vez cargadas las nuevas políticas, se pueden eliminar los archivos clamd.te, y clamd.mod, pues solo será necesario que exista el archivo binario clamd.pp.
A fin de evitar realizar todo lo anterior, permitir que el servicio clamd.scan pueda utilizar la función execmem(), y que SELinux impida las conexiones del servicio clamav-milter hacia el servicio clamd.scan, utilice el siguiente mandato:
setsebool -P clamd_disable_trans 1 |
Para que SELinux permita al servicio clamav-milter funcionar normalmente, y que permita realizar la revisión de correo electrónico, utilice el siguiente mandato:
setsebool -P clamscan_disable_trans 1 |
Para que SELinux permita al mandato freshclam funcionar normalmente, y que permita actualizar la base de datos de firmas digitales, utilice el siguiente mandato:
setsebool -P freshclam_disable_trans 1 |
En CentOS 6, y Red Hat Enterprise Linux 6 solo existe una política a configurar, y es clamd_use_jit, la cual permite al servicio clamd.scan utilizar JIT, y la función execmem().
setsebool -P clamd_use_jit on |
Se requiere un servidor de correo con Sendmail, previamente configurado, y funcionando para enviar, y recibir correo electrónico. Para más detalles al respecto, consultar el documento titulado «Configuración básica de Sendmail (Parte I).».
Es necesario agregar el siguiente contenido en el archivo /etc/mail/sendmail.mc, justo arriba de la línea MAILER(smtp)dnl.
|
|
Si se combina con Spamassassin Milter, quedaría del siguiente modo:
|
|
Clamav-milter depende totalmente de la base de datos de ClamAV. El funcionamiento estándar, que consiste en rechazar correo electrónico que contenga virus, y otros programas malignos, funciona sin necesidad de parámetros adicionales. Las banderas de inicio para clamav-milter están definidas en el archivo /etc/sysconfig/clamav-milter, mismo que permite funcionar normalmente sin necesidad de modificar un solo parámetro, a menos que se necesite especificar alguna opción avanzada definida en la página de manual de clamav-milter.
man clamav-milter |
Desde la versión 0.95, ClamAV-milter requiere esté funcionando clamdscan como servicio. Los paquetes de ClamAV incluyen lo necesario a través de clamav-scanner. Solo se requiere agregar al arranque del sistema, y se inicia los servicios clamd.scan, y clamav-milter del siguiente modo, y orden:
chkconfig clamd.scan on |
El archivo /etc/freshclam.conf de los paquetes distribuidos por Alcance Libre ya incluye las modificaciones necesarias para permitir el funcionamiento del mandato freshclam. Sin embargo, si se utilizan paquetes para Fedora, es necesario editar este archivo, y comentar o eliminar la línea 9, que incluye simplemente la palabra inglesa Example, y que de otro mod impediría utilizar el mandato freshclam:
##
## Example config file for freshclam
## Please read the freshclam.conf(5) manual before editing this file.
##
# Comment or remove the line below.
# Example
|
El archivo /etc/sysconfig/freshclam de los paquetes distribuidos por Alcance Libre ya incluye las modificaciones necesarias para permitir la actualización automática de la base de datos de ClamAV. Si se utilizan paquetes de Fedora, y a fin de mantener actualizada la base de datos de firmas digitales, es necesario editar el archivo /etc/sysconfig/freshclam con el objeto de permitir las actualizaciones automáticas:
### !!!!! REMOVE ME !!!!!!
### REMOVE ME: By default, the freshclam update is disabled to avoid
### REMOVE ME: network access without prior activation
# FRESHCLAM_DELAY=disabled-warn # REMOVE ME
|
Antes de poner en operación el servidor, es recomendable actualizar manualmente, y de manera inmediata, la base de datos de firmas utilizando el mandato freshclam, desde cualquier terminal como root.
freshclam |
Al terminar, considerando que está instalado el paquete sendmail-mc, el cual permite reconfigurar Sendmail a partir del archivo /etc/mail/sendmail.mc, se debe reiniciar el servicio sendmail para que surtan efectos los cambios.
service sendmail restart |
Más documentos del mismo autor (Joel Barrios) en este enlace.
Alcance Libre
http://www.alcancelibre.org/staticpages/index.php/como-clamav-milter
()