Proxy Squid transparente en Debian Wheezy (Parte 1): Acerca de los proxys
En este nuevo tutorial aprenderemos a instalar y configurar un proxy Squid transparente en Debian Wheezy con el objetivo en mente de reducir la cantidad de ancho de banda consumido en nuestra red por parte de los distintos clientes conectados.
“Antes de andar hay que gatear”, así que antes de ponernos a instalar y configurar cosas a lo loco es interesante entender qué es exactamente lo que estamos instalando, por qué lo hacemos y el por qué realmente cumple su cometido, así que esta primera parte trata de eso, vamos allá.
¿Qué es un servidor Proxy?
Voy a explicar esto poniendo como ejemplo una transacción web. Simplificando mucho, cuando intentamos cargar una página web desde nuestro ordenador este genera una petición, que pasa a nuestro router, va a Internet y acaba contactando con el servidor de destino que nos devuelve el contenido haciendo este mismo recorrido pero a la inversa.
Ordenador - Router - Internet - Servidor web
Un servidor proxy es un elemento (puede ser hardware o software) que actúa como intermediario en una operación entre dos dispositivos. Siguiendo con el ejemplo de nuestra transacción Web, si colocamos un servidor Proxy en nuestra red local la transacción pasaría a ser así:
Ordenador - Servidor proxy - Router - Internet - Servidor web
Como concepto es muy sencillo, pero llegados aquí se nos puede presentar la siguiente duda:
- “¿Para qué diablos quiero yo otro paso intermedio?”. Hay muchos motivos por los que puedes necesitar este paso intermedio, como la del anonimato, la seguridad o la velocidad. Este último motivo puede volver a derivar en otra pregunta totalmente lógica:
- “¿Añadir un paso más a la transacción no hará que esta se vuelva más lenta?”. Efectivamente, un paso intermedio más va a provocar un tiempo de respuesta más bajo sobre el papel (casi indetectable estando dentro de nuestra red local), pero aquí es donde entra el siguiente concepto: el servidor proxy caché.
Servidor proxy caché
Un servidor proxy caché es un tipo de servidor proxy cuya finalidad es la de acelerar la carga de los elementos solicitados por red. El concepto fundamental es el de poder ofrecer el mismo servicio que un servidor lejano pero desde más cerca que este para reducir tiempos de respuesta. Para acelerar las transacciones hará de caché, es decir, guardará el contenido de las páginas que visitemos con la finalidad de no tener que hacer otra vez esa misma consulta hacia Internet, un concepto muy similar al visto en el tutorial del servidor de caché DNS. Vamos a continuar con el ejemplo anterior, queremos abrir la página www.google.es, y la consulta será la siguiente:
Ordenador - Servidor proxy caché - Router - Internet - Servidor web
Esto es lo mismo que lo visto en el último ejemplo, la novedad va a venir si después de esta primera visita intentamos cargar esta página de nuevo. Al hacer esto, cuando la consulta llegue a nuestro servidor proxy, este mirará en su caché, y al encontrar la página que estamos consultando comprobará que es la versión más actualizada y la servirá directamente, actuando como si fuera el propio servidor web. Por lo tanto la consulta anterior se convertirá en esto:
Ordenador - Servidor proxy caché
La distancia que debe recorrer un paquete después de que la web haya sido cacheada se convierte en ridícula. Pasando esto dentro de nuestra red local la velocidad de carga de la página debería convertirse en instantánea, puesto que el enlace más lento siempre será el de la conexión a Internet. Todo esto, además de hacer que algunas páginas carguen mucho más rápido, se traduce en una reducción enorme del ancho de banda consumido en nuestra conexión a Internet ya que cada página que ofrezca nuestro servidor proxy caché será una página menos que ocupará nuestra línea de Internet. Esto se hace más evidente cuantos más usuarios “cuelguen” de esa conexión, puesto que las probabilidades de que la página que intenten consultar sea una que ya se encuentre en caché aumenta.
Squid como servidor proxy caché
Squid es una de las opciones más populares dentro de los servidores proxy caché, y no es de extrañar, puesto que es gratuito, multiplataforma y con licencia GNU GPL.
Squid trabaja sobre los protocolos HTTP, HTTPS, FTP y otros protocolos de forma limitada. Es ampliamente utilizado por ISP’s para reducir la carga de sus líneas así como por infinidad de empresas para ahorrar carga en sus líneas ADSL y así ofrecer un mejor servicio a sus empleados por menos dinero.
Squid también es usado para aliviar carga en servidores web, ofreciendo así un primer filtro de tráfico hacia el servidor, reduciendo la cantidad de operaciones que este debe de realizar.
Adicionalmente Squid tiene la posibilidad de usar SquidGuard como filtro de contenidos, con el que nos aseguramos un mayor control del uso de nuestra línea además de ganar en seguridad gracias a las listas negras.
Servidor proxy transparente
- Sí, sí, todo esto está muy bien, pero ¿por qué al principio de la entrada lo has llamado transparente?
¡Como estamos con las preguntitas! Squid puede actuar de dos modos: de modo normal y transparente. El modo transparente consiste en colocar el servidor proxy justo antes del router, por lo que todo el tráfico que vaya hacia él va a pasar por el servidor. Al estar en medio del tráfico este puede escanearlo todo y desempeñar su función sin que el usuario tenga que configurar nada, de ahí el nombre transparente. El modo normal requiere de configuración en todas las máquinas de la red por lo que la configuración puede ser un poco tediosa si no tiramos de algún tipo de directiva de grupo, pero cuenta con la ventaja de poder usar autenticación y, por lo tanto, poder registrar el tráfico que cada miembro de la red realiza.
Yo como soy un sysadmin muy considerado con sus usuarios voy a utilizar el proxy transparente para que mis queridos compañeros puedan seguir trabajando sin interrupciones.
Conclusión
Sabiendo esto ya podemos hacernos una idea más clara del por qué puede beneficiarnos la instalación de un servidor proxy caché en nuestra red local y ya tendremos una idea aproximada de como realiza su función. Hasta aquí la primera parte del tutorial, la única teórica pero a la vez necesaria para poder entender lo que estamos haciendo. En la siguiente ya podréis copiar y pegar como si no hubiera un mañana si os apetece.