Antivirus HTTP : ClamAV + HAVP

Vamos a utilizar ClamAV como antivirus. Para utilizar ClamAV necesitamos de la ayuda del proxy HAVP. El paquete HAVP lo tenemos que descargar, compilar e instalar. Tener en cuenta que necesitamos el paquete libclamav-dev. También deberemos tener instalados gcc y g++ para poder compilar el paquete HAVP. Estos últimos los obtenemos con el paquete build-essential.

Instalemos los paquetes:

    aptitude install clamav freshclam libclamav-dev unrar-free arj gzip unzip build-essential

Ahora le toca el turno a HAVP:

    wget -P /var/www/lhiak http://www.server-side.de/download/havp-0.92a.tar.gz
    cd /var/www/lhiak
    tar zxf havp-0.92a.tar.gz
    cd havp-0.92a
    ./configure
    make
    make install

El script de instalación sitúa por defecto, en el directorio /usr/local/etc/havp los ficheros de configuración y avisos de virus o errores. Vamos a hacer que sean visibles en /etc/havp con un enlace simbólico.

    ln -s /usr/local/etc/havp /etc/havp

Creamos el grupo y usuario havp.

    groupadd havp
    useradd -g havp havp

Creamos el directorio para los ficheros logs y le cambiamos el propietario.

    mkdir /var/log/havp
    chown havp /var/log/havp

Montamos la partición en la que se depositan los ficheros a analizar en /var/tmp/havp. El directorio lo crea el instalador de HAVP.

    mount -t ext3 /dev/hda5 /var/tmp/havp -o mand

Vamos a preparar el fichero /etc/fstab, para que esta partición se monte automáticamente al iniciarse el sistema. Para ello, vamos a añadir al final de dicho fichero, la siguiente línea.

/dev/hda5    /var/tmp/havp    ext3    mand,auto    0    0

Damos la propiedad al usuario havp, y limitamos los permisos en varios directorios.

    chown havp /var/tmp/havp /var/run/havp /var/log/havp
    chmod 700 /var/tmp/havp /var/run/havp /var/log/havp

El script de inicio del servicio no ha sido copiado a su lugar. Lo haremos manualmente. Además, vamos a configurar el servicio para que se ejecute automáticamente. También hemos de indicarle dónde buscar el fichero de configuración. 

    cp /var/www/lhiak/havp-0.92a/etc/init.d/havp /etc/init.d/
    chown root:root /etc/init.d/havp
    update-rc.d havp defaults

Hemos personalizado los mensajes de error para que aparezca el anagrama de nuestra escuela, y también podemos optar por el euskera como idioma de los mensajes de error. Copiemos los ficheros:

    cp -r /var/www/lhiaki/havp-eu /etc/havp/templates/
    cp -r /var/www/lhiaki/havp-es /etc/havp/templates/

Ahora vamos a modificar el nombre de nuestro servidor proxy y la dirección de correo del administrador del mismo.

    sed -i s/PROXYWEBZERB/'proxy\.nire-eskola\.net'/ /etc/havp/templates/eu/*
    sed -i s/PROXYWEBZERB/'proxy\.nire-eskola\.net'/ /etc/havp/templates/es/*
    sed -i s/PROXYADMEPOSTA/'sare-admin@nire-eskola\.net'/ /etc/havp/templates/eu/*
    sed -i s/PROXYADMEPOSTA/'sare-admin@nire-eskola\.net'/ /etc/havp/templates/es/*

Vamos a situar en el directorio /etc/logrotate, el fichero havp con el siguiente contenido:

/var/log/havp/*.log {
    compress
    dateext
    maxage 365
    rotate 20
    size=1024k
    notifempty
    missingok
    copytruncate
}

Vamos dar unos toques al fichero de configuración de HAVP. Le diremos que puede arrancar el servicio; Que utilice ClamAV; Que cree procesos para manejar al menos 35 conexiones; Que los mensajes de error los dé en español.; Modificaremos el camino a ciertos ficheros, pues ahora están en /etc/havp; etc. Finalmente elegimos el euskera como idioma para los mensajes de error. Las siguientes líneas deben quedar como sigue:

# REMOVETHISLINE deleteme
SERVERNUMBER 35
TEMPLATEPATH /etc/havp/templates/eu
WHITELIST /etc/havp/whitelist
BLACKLIST /etc/havp/blacklist
MAXSCANSIZE 5000000
ENABLECLAMLIB true
CLAMDBDIR /var/lib/clamav
ENABLECLAMD false

Ahora reiniciamos HAVP.

    /etc/init.d/havp restart

El antivirus y el proxy están preparados. Ahora le tenemos que decir al programa que realiza el Control de Acceso a Internet (squid) que utilize el antivirus. Pondremos lo siguiente en el fichero /etc/squid/squid.conf:

# ---------- Antibirusa pasatzeko gain-proxya ----------
cache_peer 127.0.0.1 parent 8080 0 no-query no-digest no-netdb-exchange default
cache_peer_access 127.0.0.1 allow all
acl ScanHTTP proto HTTP
never_direct allow ScanHTTP

Ahora recargamos la configuración de squid:


    /etc/init.d/squid reload

Probamos el sistema con la siguiente URLs:


http://www.eicar.com/download/eicar.com


Suerte!