En este tutorial vamos a instalar y configurar un Proxy Web en Linux, en este caso en Debian. Para ello debemos instalar Squid3, en una máquina Debian, en mi caso una máquina virtual y para realizar las comprobaciones, vamos a hacer uso de otra máquina virtual con Windows XP.

Requisitos para la práctica

Vamos a usar máquinas virtuales en Virtual Box con las siguientes configuraciones
  • Debian con dos interfaces, una en Adaptador puente y otra en Red Interna
  • Windows XP con una interfaz en Red Interna (misma que Debian)

¿Qué es un Proxy Web?

Un proxy web puede definirse como un software que sirve para controlar e interceptar la navegación de páginas web por motivos de seguridad, rendimiento, anonimato...

Instalación y configuración de Squid3

apt-get update
apt-get install squid3
Ahora nos iremos a la ruta de Squid3 para ver los archivos de configuración
cd /etc/squid3
Vamos a hacer una copia de seguridad de squid.conf por si las moscas
cp squid.conf squid.bak
Vamos a editar squid.conf con nano (por ejemplo) y vamos a activar las siguientes línes en squid.conf. Como el archivo tiene varios miles de líneas te recomiendo que hagas uso de Ctrl + w para buscar las siguientes líneas y descomentarlas...
cache_mem 256
cache_dir ufs /var
Una cosa interesante sería renombrar partes del archivo para poder buscarlos más fácilmente como podéis ver en las siguientes imágenes... En YOUR OWN RULES... he puesto GALLARDO RULES! y en ACL TYPES... he puesto TIPOS DE ACL, de tal forma que si quiero acceder a cualquiera de estas partes, simplemente hago un Ctrl + w GALLARDO y ya accedo a la línea interesante.

Aplicando reglas a nuestro Proxy Web

Bajo la línea YOUR OWN RULES... renombrado como GALLARDO RULES! en mi caso vamos a poner las reglas acl que nos van a servir para empezar a configurar nuestro Proxy Web a nuestro antojo. A estas líneas les seguirán otras líneas http_access que llamarán a las acl para permitir (allow) o denegar (deny). Hay que recordar que cada vez que realicemos modificaciones en nuestro squid.conf tendremos que reiniciar nuestro servicio squid3 con service squid3 restart.

Configurar una sola IP con Squid3

En este primer ejemplo vamos a crear nuestra primera regla acl
acl "nombre" src "IP"
por ejemplo:
acl windows src 10.0.0.2
A la que le va a seguir una regla http_access que va a llamar a la regla acl
http_access "allow ó deny" "nombre"
por ejemplo:
http_access allow windows
Con lo que vamos a permitir que windows se pueda conectar a internet.

Configurar en los navegadores el Proxy Web

En mi caso para realizar la prueba vamos a usar Internet Explorer (aunque esté un poco obsoleto) pero es el que viene en mi máquina virtual de Windows XP. Para ello nos vamos a Herramientas > Opciones de Internet > Conexiones > Configuración de LAN > Opciones avanzadas > IP : 3128(Check) Usar el mismo servidor proxy para todos los productos como podemos ver en la siguiente imagen.



Denegar una sola IP y activar el resto de la red

acl windows src 10.0.0.2
acl red10 src 10.0.0.0/24
http_access deny windows
http_access allow red10


Permitir a un rango de IPs

acl rango1020 src 10.0.0.10-10.0.0.20
http_access allow rango1020


Permitir a todos los equipos de una red excepto a una IP y un rango

acl windows src 10.0.0.2
acl red10 src 10.0.0.0/24
acl rango1020 src 10.0.0.10-10.0.0.20
http_access deny rango1020
http_access deny windows
http_access allow red10


Permitir conectarse a una MAC determinada

acl MAC arp XX:XX:XX:XX:XX:XX
http_access allow MAC


Permitir conectarse a una MAC e IP determinadas

acl windows src 10.0.0.2
acl MAC arp 08:00:23:G5:00:01
http_access allow MAC windows


Permitir conectarse unos días, a unas horas y unos equipos determinados

Para ello vamos a tener en cuenta que S es domingo, M es Lunes, T es Martes, W es Miércoles, H es Jueves, F es Viernes y A es Sábado. Vamos a tomar como nomenclatura acl lo siguiente.

acl "nombre" time "DIAS" "H1:M1-H2:M2"
Por ejemplo:
acl horariotrabajo time MTWHF 08:00-15:00
acl rango1020 src 10.0.0.10-10.0.0.20
http_access allow horariotrabajo rango1020