Proxy con caché y antivirus en Kubuntu

Índice

1. Introducción
2. Instalación de los paquetes necesarios
3. Configuración
3.1 Configuración de Squid
3.2 Configuración de Havp
3.1 Configuración del navegador
4. Notas finales


1. Introducción

GNU/Linux no está completamente blindado contra los virus, pero en líneas generales, un usuario doméstico no tiene por qué temer una infección. Sin embargo, si descargamos un archivo infectado y lo compartimos con un amigo que usa otro sistema operativo, infectaremos su ordenador sin darnos cuenta. Por tanto, no es mala idea instalar un proxy con antivirus para detectar los virus que entran en nuestro ordenador.

Lo que vamos a hacer es crear un proxy que nos permitirá detectar los archivos infectados que descarguemos a través de HTTP (descarga directa). Este proxy no detectará los virus de archivos descargados a través de FTP ni de HTTPS. Además, completaremos esta solución con un proxy caché que nos permitirá tener mayor control sobre el tráfico saliente y entrante y guardar en caché ciertos datos (HTTP, HTTPS, FTP, etc.) para así mejorar la rapidez a la hora de acceder a páginas visitadas frecuentemente.

El sistema que vamos a configurar tiene esta estructura:

Navegador web --> Havp (con ClamAV) --> Squid --> Internet

2. Instalación de los paquetes necesarios

Para implementar este proxy vamos a utilizar 3 aplicaciones que se encuentran en los repositorios: ClamAV (Clam Anti-Virus) y su GUI para KDE Klamav, Havp (HTTP Anti-Virus Proxy) y Squid;

sudo aptitude install klamav clamav havp squid

3. Configuración

3.1 Configuración de Squid

Editamos el archivo /etc/squid/squid.conf como superusuario

sudo kate /etc/squid/squid.conf

y añadimos una línea que diga:

visible_hostname elnombredetuhost

Donde "elnombredetuhost" es el contenido del archivo /etc/hostname

Después, en un terminal como superusuario tecleamos estos 2 comandos:

squid -z
squid

3.2 Configuración de Havp

Nos aseguramos de que en el archivo /etc/havp/havp.config aparecen descomentadas (es decir, sin #) las líneas "ENABLECLAMLIB true", "PARENTPROXY localhost" y "PARENTPORT 3128".

sudo kate /etc/havp/havp.config

Si queremos usar un puerto diferente, deberíamos cambiar el valor de "PARENT PORT 3128" por el número de puerto que deseemos, pero no debemos olvidar poner ese mismo valor en la línea "http_port 3128" de /etc/squid/squid.conf.

Ahora es recomendable parar y volver a arrancar havp:

sudo /etc/init.d/havp restart

3.3 Configuración del navegador

Abrimos Firefox (es el que utilizo yo y el que usaré de ejemplo, pero puede ser cualquier navegador) y vamos a "Editar/Preferencias/Avanzado/Red" y pulsamos en el botón "Configuración" del apartado "Conexión", y ahí elegimos "Configuración manual del proxy":

Proxy HTTP: 0.0.0.0 ---- Puerto: 8080

Y marcamos la casilla "Usar el mismo proxy para todo".

Cerramos Firefox y volvemos a abrirlo para asegurarnos de que se aplican los cambios. Ahora, para asegurarse de que nuestro proxy funciona correctamente, vamos a esta página:

http://www.eicar.org/anti_virus_test_file.htm

e intentamos descargar uno de los archivos infectados que se pueden descargar a través de HTTP (hay que bajar bastante en la página, y buscar el apartado "Download area using the standard protocol http").

Nuestro proxy no permitirá que descarguemos un archivo infectado, así es que aparecerá una pantalla que dice algo así

HAVP - Access Denied
 
Access to the page has been denied

because the following virus was detected

ClamAV: Eicar-Test-Signature

y se abortará la descarga.

4. Notas finales

Para detectar los virus, Havp hace uso de ClamAV.

Cada vez que inicies el ordenador, arrancará ClamAV, Havp y Squid, así es que no te tienes que preocupar de eso.

Yo he utilizado todas las opciones por defecto, pero existen multitud de posibilidades de configuración. Este proxy se puede complementar con un segundo proxy Squid, de forma que la configuración sería:

Navegador Web --> Squid --> Havp (con ClamAV) --> Squid --> Internet

Se puede usar algún antivirus que no sea ClamAV. También se puede completar la seguridad con el uso de un firewall, por ejemplo, usando Firestarter, que se encuentra en los repositorios y se puede instalar desde Adept o con un simple

sudo aptitude install firestarter