Copyright © 2003 ZonaSiete.ORG Editors Team
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. You may find this License here.
Resumen
El objeto de este documento es proporcionar una guía práctica a los usuarios de Linux que quieran implementar un servidor proxy con SOCKS 4-5, a fin de ahorrarles tiempo y dolores de cabeza.
Tabla de contenidos
Introducción
Imaginemos una situación que tarde o temprano se nos ha presentado a la mayoría de nosotros, Técnicos en Informática o Administradores de Red: La necesidad de compartir una conexión a Internet entre varios clientes o equipos que se encuentran conectados en un LAN. Eso de compartir recursos e intercambiar información entre los equipos integrantes de nuestra LAN, es una cosa, pero compartir la conexión a Internet, requiere ya otros tipos de configuración y en muchos casos, software adicional.
Particularmente hablando de Linux, disponemos de la conocida herramienta IPTABLES, equivalente a IPCHAINS e IPFWADM en versiones anteriores, la misma que, básicamente, nos permite ir configurando un firewall, pero por sobre este, una capa de NAT (Network Address Translation), lo cual nos permitiría compartir una conexión a Internet mediante reemplazo de direcciones IP fuente/destino.
Pero, ¿qué ocurre cuando, por ejemplo, el número de clientes entre los que deseamos compartir la conexión es demasiado alto? o supongamos otro caso típico (para mi): ¿Qué tal si en todos los equipos de nuestra LAN tenemos un antivirus que necesita ser actualizado periódicamente, y no nos permite descargar "una sola vez" la actualización, para luego instalarla en todos nuestros equipos? Habría que ir actualizando manualmente cada uno de ellos, lo que supondría una descarga directa desde Internet de varios MB por cada uno de nuestros equipos.
Todo este tipo de circunstancias nos obligaría a mantener constantemente una excesiva tasa de transferencia de información entre nuestra LAN e Internet, lo cual ocasiona los consiguientes problemas de saturación, lentitud, etc. etc. etc., sin mencionar las miradas amenazadoras de los usuarios insatisfechos ;-)
En este punto es donde entra en juego la importancia de usar un servidor proxy con caché. Básicamente, un proxy es un software que abre un socket en determinado puerto en nuestro host, mediante el cual se escuchan peticiones de Internet del resto de máquinas de nuestra red local. Por otro lado, el proxy reserva un espacio de Disco de longitud variable, al que se denominará caché. El software toma una de estas peticiones, y lo siguiente que hace es buscar en el caché, para ver si ya existe una copia de la página u objeto que está solicitando el cliente. Si ya existe, ¡¡Bingo!! solo toma esa copia existente en nuestro disco duro, y se la envía al cliente solicitante. En cambio, si no existe dicha copia, el proxy tiene que bajar aquel contenido de Internet, para poder enviárselo al cliente. En este caso, además de hacer dicho envío, se encarga de añadir este nuevo objeto, página o archivo, al caché, para su posterior uso.
Considerando esto, es fácil darse cuenta de la gran utilidad que representa un caché: Al haber muchas peticiones cuyas respuestas viajan únicamente entre nuestro servidor y el respetivo cliente en nuestra red de área local, ahorraremos gran cantidad de tiempo y ancho de banda, proporcionando una navegación más rápida, segura y funcional a los usuarios finales. Lo único que tendremos que sacrificar será cierto porcentaje de recursos de memoria y de disco en nuestro servidor. Y Listo !!!
La funcionalidad total de un servidor proxy no radica únicamente en el caché y la consiguiente mejora en la calidad de la navegación. Hay un factor de suma importancia que también debemos tomar en cuenta a la hora de decidir sobre la instalación de un servidor proxy: la SEGURIDAD. Para esto existen implementaciones como el protocolo SOCKS, que en su sentido más general, puede ser utilizado de la misma forma y para los mismos fines que un servidor proxy como el que describimos en párrafos anteriores (al que también se refiere comúnmente como proxy http, aunque se usen también para otros protocolos). Pero además , este protocolo Socks proporciona también la funcionalidad de un firewall , es decir, brinda una mayor seguridad para los usuarios internos de nuestra red, ocultando las verdaderas direcciones IP que formulan las solicitudes, y filtrando los paquetes que salen, pero sobre todo los que entran, para ser redirigidos hacia la máquina local que originalmente hizo la petición.
Actualmente, las versiones de Socks casi exclusivamente utilizadas son la 4 y la 5. Socks5 proporciona mayor seguridad aún, ya que añade un mecanismo de autentificación, donde los clientes deben además proporcionar nombre de usuario y contraseña para acceder al servicio.
Por cierto, sólo como un dato adicional, Socks es abreviatura de Sockets...