Cómo configurar Clamd.

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-2014 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.

Introducción.

Clamd es un servicio muy útil que es utilizado para añadir soporte antivirus a diversas implementaciones de servicios en GNU/Linux, como clamdscan y samba-vscan. Permite además utilizar con mejor desempeño la base de datos de firmas digitales de ClamAV. La configuración requiere un poco de trabajo, pero el resultado bien vale la pena.

Instalación de equipamiento lógico necesario.

Si se utiliza CentOS 5, se deben configurar los depósitos de AL Server para poder instalar ClamaAV en el archivo /etc/yum.repos.d/AL_Server.repo con 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

Si se va a utilizar CentOS 5 con los depósitos de AL Server, es importante instalar antes la firma digital de Alcance Libre

rpm --import http://www.alcancelibre.org/al/AL-RPM-KEY

Fedora 10 incluye los paquetes necesarios y firmas digitales en sus depósitos yum, por lo que es innecesario modificar archivo alguno.

Se requiere instalar los paquetes clamav-server, clamav-server-sysv y clamav-update.

yum -y install clamav-server clamav-server-sysv clamav-update

Procedimientos.

SELinux y el servicio clamd.

Para permitir que ClamAV pueda ser utilizado para revisar el sistema de archivos completo, ejecute:

setsebool -P antivirus_can_scan_system 1

Para permitir que ClamAV pueda utilizar el compilador JIT, ejecute:

setsebool -P antivirus_use_jit 1
Nota.

La siguiente política sólo está disponible en CentOS 5 y Red Hat Enterprise Linux 5. Para que SELinux permita al servicio clamd operar normalmente, pero sin protección alguna, ejecute:

setsebool -P clamd_disable_trans 1

Configuración de Clamd.

El archivo /etc/freshclam.conf en Fedora 10 viene con una línea que requiere comentarse para que pueda funcionar el mandato freshclam. editar /etc/freshclam.conf y comentar la línea 8 del archivo para que quede de la siguiente forma:

##
## Example config file for freshclam
## Please read the freshclam.conf(5) manual before editing this file.
##


# Comment or remove the line below.
# Example

Este último procedimiento es innecesario para CentOS 5, si se utilizan los paquetes de ClamAV de AL Server.

Una vez hecho lo anterior, actualizar la base de datos de firmas digitales de virus con el mandato freshclam:

freshclam

Lo anterior puede devolver una salida similar a la siguiente, que por supuesto variará dependiendo de la cantidad de actualizaciones disponibles y la fecha en que se realice el procedimiento.

ClamAV update process started at Tue Mar  3 19:43:37 2009
main.cld is up to date (version: 50, sigs: 500667, f-level: 38, builder: sven)
Downloading daily-9052.cdiff [100%]
Downloading daily-9053.cdiff [100%]
Downloading daily-9054.cdiff [100%]
Downloading daily-9055.cdiff [100%]
Downloading daily-9056.cdiff [100%]
Downloading daily-9057.cdiff [100%]
Downloading daily-9058.cdiff [100%]
Downloading daily-9059.cdiff [100%]
Downloading daily-9060.cdiff [100%]
Downloading daily-9061.cdiff [100%]
Downloading daily-9062.cdiff [100%]
Downloading daily-9063.cdiff [100%]
Downloading daily-9064.cdiff [100%]
Downloading daily-9065.cdiff [100%]
daily.cld updated (version: 9065, sigs: 13972, f-level: 38, builder: arnaud)
Database updated (514639 signatures) from database.clamav.net (IP: 199.184.215.2)

Copiar el archivo de ejemplo de clamd.conf como /etc/clamd.d/scan.conf, el cual debe denominarse obligatoriamente como scan.conf en la ruta especificada.

cp /usr/share/doc/clamav-server-*/clamd.conf /etc/clamd.d/scan.conf

Editar /etc/clamd.d/scan.conf para configurar opciones.

vi /etc/clamd.d/scan.conf

De primera instancia, comentar la línea Example, que de otro modo impedirá iniciar el servicio.

# Comment or remove the line below.
# Example

Configurar el archivo de bitácoras, el cual debe denominarse obligatoriamente como /var/log/clamd.scan.

# Uncomment this option to enable logging.
# LogFile must be writable for the user running daemon.
# A full path is required.
# Default: disabled
LogFile /var/log/clamd.scan

Definir que se examinen los archivos PDF.

# This option enables scanning within PDF files.
# Default: no ScanPDF yes

Por motivos de seguridad, especificar que se utilice el usuario clamav.

# Run as another user (clamd must be started by root for this option to work)
# Default: don't drop privileges
User clamav

Definir el zócalo para el servicio:

# Path to a local socket file the daemon will listen on.
# Default: disabled (must be specified by a user)
LocalSocket /var/run/clamd.scan/clamd.sock

Crear archivo de bitácora, el cual debe pertenecer al usuario y grupo clamav y tenga permisos de lectura y escritura para propietario y sol escritura para grupo.

touch /var/log/clamd.scan
chown clamav:clamav /var/log/clamd.scan
chmod 0620 /var/log/clamd.scan

Copiar el archivo de ejemplo para rotación de bitácoras dentro de /etc/logrotate.d/.

cp /usr/share/doc/clamav-server-*/clamd.logrotate /etc/logrotate.d/clamd

El contenido del archivo /etc/logrotate.d/clamd debe ser similar al siguiente:

/var/log/clamd.scan {
monthly
notifempty
missingok
postrotate
killall -HUP clamd.scan 2>/dev/null || :
endscript
}

Copiar el archivo de ejemplo para sysconfig como /etc/sysconfig/clamd.scan. Debe denominarse obligatoriamente como clamd.scan

cp /usr/share/doc/clamav-server-*/clamd.sysconfig /etc/sysconfig/clamd.scan

Editar el archivo /etc/sysconfig/clamd.scan para definir variables de entorno a utilizar.

vi /etc/sysconfig/clamd.scan

El contenido del archivo debe ser el siguiente:

CLAMD_CONFIGFILE=/etc/clamd.d/scan.conf
CLAMD_SOCKET=/var/run/clamd.scan/clamd.sock
CLAMD_OPTIONS=

Copiar el guión de inicio de ejemplo como /etc/init.d/clamd.scan. Debe llevar el nombre clamd.scan obligatoriamente.

cp /usr/share/doc/clamav-server-*/clamd-init /etc/init.d/clamd.scan

Editar el archivo /etc/init.d/clamd.scan

vi /etc/init.d/clamd.scan

Debe configurarse el nombre del servicio, obligatoriamente, como scan y definirse la ruta del archivo de envoltorio:

#!/bin/bash
#
# chkconfig: - 75 25
# description: The clamd server running for locahost

CLAMD_SERVICE=scan
. /usr/share/clamav/clamd-wrapper

Añadir el servicio clamad.scan a los servicios de arranque del sistema.

chkconfig clamd.scan on

Crear un enlace simbólico de /usr/sbin/clamd hacia /usr/sbin/clamd.scan.

ln -s /usr/sbin/clamd /usr/sbin/clamd.scan

Crear el directorio que será utilizado para el archivo de número de proceso.

mkdir -p /var/run/clamd.scan

Configurar el directorio anterior como propiedad del usuario y grupo clamav:

chown clamav:clamav /var/run/clamd.scan

Iniciar el servico clamad.scan.

service clamd.scan start

Para añadir el servicio clamd.scan a los servicios de arrranque del sistema, solo basta ejecutar:

chkconfig clamd.scan on

A partir de este punto, se dispondrá de un servicio que trabajará en el trasfondo del sistema y que permitirá utilizar programas como clamdscan y samba-vscan. Este último es una implementación de antivirus para Samba.