2009-03-05

Administrar Canales con SQUID

Debido a mi trabajo me pusieron a estudiar mucho SQUID lo cual me ha encantado, sigo pensando que el software libre es lo mejor que hay y que con el apoyo de todos demostraremos que nada de lo comercial nos permite hacer ni la mitad de lo que hacemos en el OpenSource, me plantearon el diseño de una red corporativa grande la cual tras el diseño y la segmentación quedo así:


Ahora tenia que garantizar una correcta navegación a las subredes importantes, o sea las que manejan la plata o el core del negocio como le dicen ahora, pero sobre la misma maquina no podía generar enrutamientos por protocolos, la verdad en IPRoute2 no encontré como hacerlo, por lo cual me centre en lo básico que era como controlar la navegación y que me permite eso, nada mas sino un Proxy y para eso nada mejor que squid.

Después de mucho leer y estudiar, encontré una muy buena pagina en Ingles que tiene una descripción de todos los parámetros configurables del SQUID, esta se llama www.squid-cache.org en la sección de documentación encontraras muchas guias.

Para facilidad a la conexión dedicada le vamos a poner la ip 1.1.1.1 y a la publica le vamos a poner 9.9.9.9, entonces ingresamos a la configuración del squid que esta en /etc/squid de la siguiente forma

root@localhost:~#vi /etc/squid/squid.conf

Sobre este buscamos el TAG llamado tcp_outgoing_address, lo cual podemos hacerlo escribiendo lo siguiente

/tcp_outgoing_address

deben ver lo siguiente

# TAG: tcp_outgoing_address
# Allows you to map requests to different outgoing IP addresses
# based on the username or sourceaddress of the user making
# the request.
#
# tcp_outgoing_address ipaddr [[!]aclname] ...
#
# Example where requests from 10.0.0.0/24 will be forwareded
# with source address 10.1.0.1, 10.0.2.0/24 forwarded with
# source address 10.1.0.2 and the rest will be forwarded with
# source address 10.1.0.3.
#
# acl normal_service_net src 10.0.0.0/255.255.255.0
# acl good_service_net src 10.0.1.0/255.255.255.0
# tcp_outgoing_address 10.0.0.1 normal_service_net
# tcp_outgoing_address 10.0.0.2 good_service_net
# tcp_outgoing_address 10.0.0.3
#
# Processing proceeds in the order specified, and stops at first fully
# matching line.
#
#Default:
# none


Hay esta la guia de lo que vamos a hacer, entonces las redes de Gerencia, Juridica, Contabilidad e Ingenieria va a salir por la red dedicada y la red Administrativa y Operativa va asalir por la red publica, entonces para esto vamos a crear las listas de acceso (acl), donde la estructura es:

acl -name- src -ip_red/mask_net-

por lo que quedan así

acl dedicada src 192.168.0.0/29
acl dedicada src 192.168.0.8/29
acl dedicada src 192.168.0.16/28
acl dedicada src 192.168.0.32/27
acl publica src 192.168.0.64/26
acl publica src 192.168.0.128/25

Yo se que para los que saben de redes esto se puede reducir pero para que sea claro lo colocare asi acá. Ahora si creare las reglas de salida para cada una de estas acl, que como pueden ver solo son 2 dedicada y publica y la regla tiene la siguiente estructura

tcp_outgoing_address -ip_salida- -name-

donde el name tiene que ser igual al nombre de cada acl, por lo que queda así

tcp_outgoing_address 1.1.1.1 dedicada
tcp_outgoing_address 9.9.9.9 publica

Y bueno con las demas configuraciones del squid que puedas hacer como puertos como cache y demas que antes fueron explicados acá reinicias el SQUID y listo tienes el tráfico organizado por lo dos canales según las redes origen.