jueves, 2 de febrero de 2012

Configurando un Proxy HTTP Transparente SQUID y Shorewall.


En esta sección describiremos el procedimiento para configurar Shorewall como Proxy HTTP Transparente (Interceptor), en donde en el mismo firewall se ejecuta un Proxy HTTP Squid escuchando en el puerto TCP 3128.

El proxy squid esta escuchando peticiones de los hosts en la red local en el puerto 3128, lo podemos ver en el parametro http_port del archivo de configuración de squid /etc/squid/squid.conf, por ejemplo:

http_port 3128

Para configurar el proxy transparente debemos configurar la regla para permitir que los hosts en la zona loc puedan acceder al puerto 3128 de la interfaz local del firewall, además, debemos permitir tráfico saliente desde el Firewall hacía el Internet ya que el proceso local squid debe acceder a sitios remotos usando el protocolo TCP/80, agregue las siguiente reglas en el archivo /etc/shorewall/rules:



#
#       Trafico originado en el Firewall (fw) con destino el Internet (net): fw2net
#
...
ACCEPT          fw                      net                     tcp     21 #FTP
ACCEPT          fw                      net                     tcp     80 # HTTP
...
...
...
#
#       Trafico originado en la LAN (loc) con destino el Firewall (fw)
#
...
ACCEPT          loc                     fw                      tcp     3128 # Squid 
...

Ahora agregamos la que redireccionará todo el tráfico proveniente de la red local con destino el puerto TCP 80 en el Internet hacía el puerto 3128 local de squid:


#
#       Trafico originado en la LAN (loc) con destino el Internet (net): loc2net
#
# Proxy Transparente
REDIRECT        loc                     3128                    tcp     80
...
...

Tal vez sea necesario excluir algunos hosts destino o redes de la redirección, por ejemplo en el firewall se ejecuta un servidor web en el que se muestran gráficas de tráfico, para excluir la redirección del puerto TCP/80 hacía la dirección IP interna del firewall use la siguiente regla:

#
#       Trafico originado en la LAN (loc) con destino el Internet (net): loc2net
#
# Proxy Transparente
REDIRECT        loc           3128                 tcp     80      -       !192.168.221.254
...
... 

Si tiene algún servidor Web en la red interna y también desea agregarlo a la lista de destinos a excluir de la redirección puede usar una lista separada por comas, por ejemplo:

#
#       Trafico originado en la LAN (loc) con destino el Internet (net): loc2net
#
# Proxy Transparente
REDIRECT        loc         3128       tcp     80      -       !192.168.221.254,192.168.221.4
...
...
 
Para que el Squid funcione como Proxy Transparente con Shorewall debe tener configurado Squid cuando menos con los siguientes parametros:

http_port 3128 transparent
acl loc_subnet src 192.168.221.0/24
http_access allow loc_subnet


[Nota] Nota
Estas configuraciones son para Squid 2.6 ó superior.

Recargue la configuración de shorewall para que los cambios tomen efecto:

# shorewall restart

Probablemente existe el requierimiento de excluir algunos sistemas internos de usar el proxy, es decir, hacer que esos sistemas vayan directo al Internet, para lograr dicha labor excluya la dirección IP del sistema interno en la regla y agregue una regla para permitir el acceso directo al puerto TCP/80 en el Internet:

ACCEPT      fw                    net   tcp  80
REDIRECT    loc:!192.168.221.200  3128  tcp  80  -  !192.168.221.254,192.168.221.4
ACCEPT      loc:192.168.221.200   net   tcp  80

Recargue la configuración de shorewall para que los cambios tomen efecto.

Publicación original Por: Jorge Armando Medina

Angel J. Reynoso
kp01 
Tel.: 829-997-4870
kp01aj@gmail.com

No hay comentarios:

Publicar un comentario