Is it a fake website?

16 mayo 2007

Squid: Configura un proxy en 5 minutos

¿Por qué squid? ¿por qué sólo 5 minutos?

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-name
http_port 3128
cache_dir ufs /var/spool/squid 1000 16 256
cache_access_log /var/log/squid/access.log
Y en la sección acl;
acl intranet 192.168.0.0/24
http_access allow intranet
Aunque en el archivo de configuración tenemos el signficado de esas líneas, las explico brevemente.

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:

Anónimo dijo...
Este comentario ha sido eliminado por el autor.
Anónimo dijo...

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!!!!

Emilio dijo...

#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.