El proxy HTTP : HAVP + ClamAV

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.

    wget -P /var/www/lhpaiaki http://www.server-side.de/download/havp-0.86.tar.gz
    cd /var/www/lhpaiaki
    tar zxf havp-0.86.tar.gz
    cd havp-0.86
    ./configure --sysconfdir=/etc/havp
    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. Nosotros le hemos indicado que los sitúe en /etc/havp. Si nos hemos olvidado de ello, tenndremos que copiar los ficheros

    cp -r /var/www/lhpaiaki/havp-0.86/etc/havp /etc/

Del mismo modo, en el script de inicio /etc/init.d/havp, se indica que busque el fichero de configuración en ese lugar. Vamos a modificarlo si no hemos indicado a configure que es ese el lugar. En la línea 13, vamos a quitar /usr/local. Quedaría de esta forma:

HAVP_CONFIG=/etc/havp/havp.config

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
    chmod 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/lhpaiaki/havp-0.86/etc/init.d/havp /etc/init.d/
    chown root:root /etc/init.d/havp
    sed -i s/HAVP_CONFIG.*/'HAVP_CONFIG=\/etc\/havp\/havp\.config'/ /etc/init.d/havp
    update-rc.d havp defaults

La siguiente línea debe quedar de esta manera en el fichero /etc/init.d/havp:

HAVP_CONFIG=/etc/havp/havp.config

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/lhpaiaki/havp-templates/eu /etc/havp/templates/
    cp -r /var/www/lhpaiaki/havp-templates/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
ENABLECLAMLIB true
CLAMDBDIR /var/lib/clamav

Ahora reiniciamos HAVP.

    /etc/init.d/havp restart

Probamos el sistema con las siguientes URLs. Tener en cuenta que el proxy está a la escucha en el puerto 8080.


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

ftp://ftp.tknika.net/eicar/eicar.com

Mejoras. Traducir al Euskera las hojas de avisos de errores y virus. Experimentar con los parámetros MAXDOWNLOADSIZE, STREAMUSERAGENT y CLAMMAXFILESIZE.

Source

Destination

Service

Action

Irakasleak

Ikasleak

Zuzendaritza

Zerbitzariak

antivirus perimetral

8080

Accept

antivirus perimetral any HTTP (80)
FTP (21)
ftp-data
ftp-data-passive (20)
Accept

Configuración de los clientes

Hay muchos clientes y muchas más formas de configurar. Explicaremos aquí algunas formas. AVISO! donde pone 3128, ha de ponerse 8080.

Microsoft Internet Explorer a mano

Dentro del programa, Herramientas -> Opciones de Internet.... A continuación, elegir la ficha Conexiones , y allí, seleccionar Configuración LAN... . Nos saldrá el siguiente panel y hay que rellenar como aparece en el cuadro.



Microsoft Internet Explorer, con un controlador de dominio

Podemos configurar el navegador MS IE por medio de directivas de grupo en un controlador de dominio. Aquí tenemos unas capturas de pantalla a modo de ejemplo.

En el Active Directory elige la organización deseada y las características en la unidad .


Crear una nueva directiva (o cambiar una ya existente).



Como aparece en la imagen elige entre todas las directivas, Configuración de los servidores proxy.

Poner dirección y puerto. Aceptar todo.


Firefox a mano

Firefox 1.5: Dentro del programa, elegir Herramientas -> Preferencias... -> General -> Configuración de conexión... . Nos aparece el siguiente panel y hay que rellenar como aparece en la imagen.

Firefox 2.0: Dentro del programa, elegir Tresnak -> Aukerak... Aurreratua -> Sarea -> Ezarpenak... Nos aparece el siguiente panel y hay que rellenar como aparece en la imagen.

Microsoft Internet Explorer y Firefox, con un fichero de configuración

Este sistema supone más trabajo pero sirve para todos los navegadores. Pondremos la configuración en un servidor web interno y le diremos al navegador dónde puede buscar el fichero. Primero, crearemos el fichero de configuración. Dirigiremos las conexiones HTTP y FTP al puerto 3128 del antivirus. De esta forma, los ficheros bajados pasarán por el antivirus. Las conexiones HTTPS en cambio, las enviaremos directamente, pues no se puede analizar la información encriptada. El nombre del fichero será ik-wpad.dat, y estará en el directorio wpad del servidor. Es decir, su URL será http://www2.nire-eskola/wpad/ik-wpad.dat. Hay que tener en cuenta que podemos tener ficheros diferentes para cada subred, o grupos de máquinas. He aquí nuestro fichero:


function FindProxyForURL(url, host) {

    if (isPlainHostName(host))
        return "DIRECT";
    if (!isResolvable(host))
        return "DIRECT";
    if (url.substring(0, 5) == "http:")
        return "PROXY 172.16.1.1:3128";
    if (url.substring(0, 6) == "https:")
        return "DIRECT";
    if (url.substring(0, 4) == "ftp:")
        return "PROXY 172.16.1.1:3128";
    return "PROXY 172.16.1.1:3128;";
}

Despues, configuraremos el navegador. En el caso de la subred de los estudiantes le diremos que la configuración se puede encontrar en el archivo apuntado por la URL http://www2.nire-eskola.net/wpad/ik-wpad.dat.

En el navegador Microsoft Internet Explorer, elegir Herramientas -> Opciones de Internet... -> Conexiones -> Configuración de LAN.... Nos aparecerá el siguiente panel y hay que rellenar como aparece en la imagen.

En el navegador Firefox 2.0, elegir (En Euskera ) Tresnak -> Aukerak... Aurreratua -> Sarea -> Ezarpenak... . Nos aparecerá el siguiente panel y hay que rellenar como aparece en la imagen.


Microsoft Internet Explorer, buscando el archivo de configuración automáticamente

Usamos el protocolo WPAD (Web Proxy Automatic Discovery). El navegador le pregunta al servidor DHCP dónde puede encontrar el archivo de configuración. El servidor DHCP le da la URL del archivo de configuración. Normalmente, cogerá el archivo de configuración por medio de HTTP, y por tanto, estará localizado en un servidor Web. El fichero que hemos creado en el apartado anterior y su localización serán iguales. Primero, configuraremos el servidor DHCP. Si tenemos el servidor dhcpd de la ISC (viene en todas las distribuciones de Linux), tenemos que poner esto:

En el apartado general:


option wpad code 252 = text;

Luego, en la subred que queramos, o en el grupo de ordenadores (o en la parte principal) pondremos dónde está el archivo de configuración. Por ejemplo, para la subred de estudiantes:


option wpad “http://www2.nire-eskola.net/wpad/ik-wpad.dat”;

Ahora, como en el apartado anterior, configuraremos el navegador.

En el navegador Microsoft Internet Explorer, elegimos Herramientas -> Opciones de Internet... -> Conexiones -> Configuración de LAN... . Pasamos al siguiente panel y rellenamos como aparece en la imagen.

AVISO! Algunos navegadores MS IE tienen un bug. Trunca el último caracter de la URL que le manda el servidor DHCP. Crear un fichero de configuración al quer le falte el último caracter en el nombre. Mejor, realizar un enlace al él. De esta forma (en el directorio correspondiente):

    ln -s ik-wpad.dat ik-wpad.da

¡Listo! El navegador tiene que buscar la configuración.