Alguna vez he hablado de squid, pero quizá no haya hecho un repaso rápido en como tenerlo configurado y probarlo de una manera sencilla para que nos deje un buen sabor de boca.
Son muchas las características que squid nos puede ofrecer, pero cuando necesito redirigir todo el tráfico http a un servidor proxy-cache para optimizar rendimiento o aumentar la seguridad, ahí está squid.
Hace poco use squid para una subred segura que no permitía el acceso al puerto 80 de direcciones externas. Son muchas las organizaciones que bloquean el puerto 80 de salida a nivel de router. Es una gran manera de eliminar un agujero de seguridad pero a la vez un gran problema para los administradores de sistemas que necesiten conectarse temporalmente a algún servidor para descargar un archivo. Otro posible escenario sería redirigir todas las conexiones de los ordenadores a un servidor proxy local para incrementar el rendimiento de las peticiones y salvar ancho de banda.
Las situaciones descritas anteriormente pueden resolverse con una configuración de squid en 5 minutos. Todas las peticiones de acceso http externo pueden ser manejadas por squid a través de una simple configuración de proxy en los clientes (aunque tambien podría hacerse sin configurar nada en ellos, pero es otra historia), ¿suena complicado?, pues para nada lo es, veamos como hacerlo:
Instalación.
Descargate la última versión estable de squid, en el momento de escribir este post, es la 2.6-Stable13.
Aunque tiene multitud de opciones de instalación, la primera vez haremos un simple
#./configure --prefix=/usr/local/squid
#make
#make install
Configuración.
El archivo de configuración principal de squid lo tendremos en /usr/local/squid/squid.conf. Aunque te puedan intimidar las 4408 líneas del archivo de configuración, la configuración que haremos de un simple proxy http es muy simple.
Realiza un backup de el archivo de configuración
Esta es una buena metodología siempre que vayamos a realizar un cambio en la configuración. Crea un backup del archivo de configuración actual y renómbralo de alguna manera que nos diga algo, yo personalmente lo haría así:
cp /usr/local/squid/squid.conf /usr/local/squid/squid.conf-05162007
Edita el fichero de configuración
Abre /usr/local/squid/squid.conf con tu editor de textos favoritos, personalmente, yo uso vim.
Configuración en 5 minutos
Hay infinidad de opciones en squid que no utilizaremos, acls específicas, autentificación, limite del ancho de banda por usuario.... Nosotros vamos a configurar un servidor proxy cache sin control de acceso. Se trata de una configuración apta para una red casera tras un firewall.
El archivo por defecto de la configuración de squid es la mayor fuente de información que tendremos, pero necesitaremos hacer unos pequeños cambios para que empiece a funcionar.
Usa tu editor de textos favoritos para encontrar y modificar estas líneas:
visible_hostname machine-nameY en la sección acl;
http_port 3128
cache_dir ufs /var/spool/squid 1000 16 256
cache_access_log /var/log/squid/access.log
acl intranet 192.168.0.0/24Aunque en el archivo de configuración tenemos el signficado de esas líneas, las explico brevemente.
http_access allow intranet
visible_hostname: Aquí pondremos el nombre de nuestra máquina. Dejándolo en blanco puede hacer que squid falle.
http_port 3128: No hay necesidad de editar esta línea a menos que quieras cambiar el puerto de tu servidor proxy.
cache_dir ufs /var/spool/squid 1000 15 256 : Descomenta esta línea, será el tamaño que asignes en disco para la cache de squid. Los dos últimos valores son la profundidad de los directorios que se crearan al construir la cache.
cache_access_log: Este será el fichero donde logeará todas las peticiones de acceso a Internet.
acl intranet 192.168.0.0/24: Esta línea es necesaria y debe corresponder al rango de tu red para permitirles acceso al proxy, o a una única ip si sólo tú vas a acceder.
http_access allow intranet: Esta línea permite a la acl intranet definida anteriormente el acceso a internet.
Levantando squid
Antes de levantarlo, tendremos que construir el directorio de cache que habíamos definido anteriormente:
#./squid -z
Levantamos squid
#/usr/local/squid/bin/RunCache &
Comprobamos que funciona sin problemas
#tail -f /usr/local/squid/var/logs/access.log
Configuramos los clientes
Si usas Mozilla o Firefox podrás configurar el servidor proxy a través de:
Herramientas -> Opcines -> Red -> Configuración
Añade el nombre de tu nuevo servidor proxy y el puerto 3128 si es que no lo habías cambiado. Ahora navega por Internet y tendrás que ver las conexiones en la shell que tenías abierta con tail -f /usr/local/squid/var/logs/access.log
Enhorabuena, has configurado tu servidor proxy.
Ahora podrás empezar a investigar las miles de posibilidades que tiene este proxy-cache.
Update: Existe un documento en castellano más completo sobre el proxy squid.
Y squid y las delay-pools
Esta ha sido mi adaptación del artículo original
3 comentarios:
Buenas... muy interesante esto del Squid. Te comento que estoy buscando la forma de compartir mi conexion a internet con un vecino y no logro encontrar un buen servicio que cumpla esta funcion... Squid lo hace??
Sino que otro servicio cumple esta funcion, y que pueda instalar en un pequeño servidor?
Gracias!!!!
#Javier, claro, configura un acceso en squid para tu vecino y que se configure el servidor donde está squid (con acceso a internet) como proxy en su navegador.
Publicar un comentario