Publicado en Informatica, Linux

Configurar Squid detras de otro Proxy

El problema:
Tengo una conexión a internet proporcionada por X empresa. La configuración de mi eth es a través de DHCP y de la cual no tengo puta idea de donde proviene (en realidad si lo sé pero hay que mantener la ignorancia en alto), para el caso, no es como tener tu ISP, instalarte tu LAMP+Squid+squidard y listo.
La configuración básica de squid no sirve así que es necesario realizar algunos ajustes para poder pasar a través del proxy principal.
Supondré que hay un sistema operativo funcional basado en Linux, que se tiene experiencia en el uso de los comandos usuales del mismo y que hay 2 tarjetas de red instalada eth0(la que nos conecta con el proxy y nos da salida a inet) y eth1 (la que conecta a nuestra localnet)

Instalación de Squid:

Desde Debian y cualquiera de sus variantes

apt-get install squid

Listo!

Para instalarlo en otras distribuciones busca que gestor de paquetes utiliza (Yast, Yum, Pacman, etc) e instálalo. Claro que la mejor opción siempre será compilar las fuentes y para esto hay un sinfín de manuales, el que mas me ha gustado se encuentra en catrip.wordpress.com , me gusta la manera en que queda configurado el proxy, es todo.

ps –A | grep squid

debe arrojarte el numero de proceso de squid.

Proceso Squid

Bueno, ya tenemos nuestro proxy corriendo, ahora lo divertido. Ajustarlo a nuestras necesidades.

Haremos 2 cosas

Primero: que nuestro squid proporcione el servicio como Dios manda.

Segundo: configurar acl’s para nuestros clientes.

En un ambiente menos hostil nuestro squid funcionaria con solo ingresar

acl localnet src 192.168.1.0/24

http_access allow localnet

y cargando nuevamente el archivo de configuración, pero este no es el caso ya que tenemos un proxy frente a nosotros, así que el primer punto que atacaremos será eso, indicar que hay otro proxy en la red:

cache_peer ipproxy parent puertodelproxy 0 proxy-only  no-query no-digest

Lo siguiente será configurar el tamaño máximo de los objetos en memoria

maximum_object_size_in_memory 50 KB

esto sirve para agilizar las cargas ya que para todos los objetos menores a 50 kb la peticiones  internet no serán necesaria, están en memoria.

Ahora, ¿cual sera el tamaño de nuestra cache?

cache_dir ufs directoriocache 1024 16 256

Ufs es el estándar de squid, puedes utilizar aufs el cual cuenta con unas mejoras pero no lo he probado asi que no garantizo nada. :-P .
1024 el tamaño en MB de la cache y los siguientes 2 numeros son para la administración del árbol de directorios, 16 en primer nivel y 256 en segundo nivel.

nonhierarchical_direct off

y bueno, el ultimo parametro

http_port ipdelproxylocal:3128

Ya con esto puede iniciar las pruebas en tu proxy

/etc/init.d/squid reload

/etc/init.d/squid restart

configurando los clientes claro. Para configurar el proxy como transparente (es decir, que no sea necesario ingresar configuraciones a los navegadores clientes) puede ingresar a la site en el enlace de arriba aunque bueno, lo puedo poner aqui pero lo menos que puedo hacer por tanta información que me proporcionaron es regarles una visita extra :-P .

Lo siguiente son las listas de control de acceso pero eso lo dejare para mañana, me arden los ojos de tantas horas maquina..

Fuentes:

catrip.wordpress.com

blackhold.nusepas.com

squid-cache.org