6.3. Configuraci�n de SQUID

El fichero de configuraci�n de SQUID se halla en /etc/squid/squid.conf y hemos de editarlo con nuestra herramienta favorita para realizar los cambios adecuados y conseguir que cumpla su tarea con cierta seguridad para nuestro sistema.

Este fichero de configuraci�n consta de multitud de par�metros configurables que ajustan el servidor a nuestras necesidades. Trataremos de reflejar aquellos indispensables para un �ptimo funcionamiento.

6.3.1. Puerto para SQUID

Por defecto, SQUID utilizar� el puerto 3128, vea Secci�n 3.1 para una visi�n m�s general acerca de los puertos y su misi�n, aunque puede configurarse para que use cualquier otro, incluso varios puertos simult�neamente, dependiendo de nuestras necesidades. La l�nea correspondiente quedar�:

http_port 3128

6.3.2. Tama�o de cach�

En esta instrucci�n fijamos el espacio en disco que se usar� para almacenar las p�ginas visitadas, es decir, respondemos a la pregunta, ¿Cu�nto deseo almacenar de Internet en mi disco duro?

Por defecto SQUID usar� 100 Mb, como l�mite para el tama�o del cach�, pero si quisi�ramos fijar, por ejemplo 500 Mb, debemos fijar la entrada correspondiente de la siguiente forma:

cache_dir ufs /usr/local/squid/cache 500 16 256

En la l�nea anterior estamos seleccionando el directorio de cach� (/usr/local/squid/cache), indicando el tama�o m�ximo para �ste (500), la cantidad de subdirectorios de primer nivel que puede contener (16, el valor por defecto) y, el n�mero de subdirectorios de segundo nivel (256, tambi�n por defecto) que puede almacenar

Importante

En caso de que fijemos un tama�o para el directorio de cach� superior a la capacidad real del disco duro, SQUID se bloquear�.

6.3.3. Vida en el cach�

Podemos configurar tambi�n el tiempo que pueden permanecer los objetos almacenados en el cach�, dependiendo de nuestras necesidades, l�gicamente. De modo general, si definimos un tiempo de permanencia demasiado bajo, estaremos desaprovechando una de las principales ventajas del uso de servidor proxy, mientras que si establecemos un periodo demasiado alto, tambi�n saturaremos innecesariamente la capacidad de almacenaje.

Parece una decisi�n razonable, en la mayor�a de casos, fijar un mes de vida para los objetos del cach�. Esto se logra con la instrucci�n:

reference_age 1 month

6.3.4. Controles de acceso

Una de las caracter�sticas m�s interesantes de este servidor proxy es la posibilidad de establecer unas reglas de control de acceso que pueden complementar perfectamente nuestro objetivo de filtrado de paquetes.

Para ello, confeccionaremos unas Listas de Control de Acceso para designar qu� m�quinas o redes tienen permitido, o no, acceder al servidor. Cada una de ellas tendr� asociada unas Reglas de Control que regular� esta actividad. Es decir, definimos unas listas, por una parte y establecemos unas reglas espec�ficas para cada una de ellas. Veamoslo con un ejemplo:

Si queremos permitir el acceso al proxy para todas las m�quinas de nuestra red, hemos de definir una lista que identifique a toda nuestra red local, en nuestro caso:

 acl nuestrared src 192.168.1.0/255.255.255.0

De esta forma nuestra red queda identificada para SQUID, quedando la secci�n de Listas de Control de Acceso con el siguiente aspecto:

#
# Recommended minimum configuration:
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl nuestrared src 192.168.1.0/255.255.255.0

Ahora debemos permitir el acceso con una l�nea con la siguiente sintaxis:

http_access allow todalared

De modo que la secci�n Reglas de Control, debe quedar:

#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
#
http_access allow localhost
http_access allow nuestrared
http_access deny all

La l�nea http_access allow nuestrared permite el acceso al proxy para la lista denominada nuestrared que est� formada por 192.168.1.0/255.255.255.0, o sea, cualquier m�quina cuya direcci�n IP est� comprendida entre 192.168.1.1 y 192.168.1.254

Evidentemente si la l�nea fuese http_access deny nuestrared no se permitir�a el acceso a ninguna m�quina de nuestra red local.

Veamos un ejemplo m�s complejo que nos mostrar� las capacidades de filtrado de SQUID. Para ello, vamos a suponer que deseamos permitir el acceso a toda nuestra red, excepto a las m�quinas del aula de inform�tica. Vamos a crear un fichero de texto que contenga las direcciones IP de �stas m�quinas al que llamaremos y ubicaremos en /etc/squid/informatica

192.168.1.101
192.168.1.102
192.168.1.103
192.168.1.104
192.168.1.105
192.168.1.106
192.168.1.107
192.168.1.108
192.168.1.109
192.168.1.110
192.168.1.111
192.168.1.112
192.168.1.113
192.168.1.114
192.168.1.115

Le vamos a llamar info a esta lista que hemos creado utilizando el fichero anterior.

acl info src "/etc/squid/informatica"

De modo que ahora nuestra secci�n de listas quedar�a:

#
# Recommended minimum configuration:
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl nuestrared src 192.168.1.0/255.255.255.0
acl info src "/etc/squid/informatica"

Y, finalmente, para conseguir nuestro objetivo, la secci�n de reglas quedar�a:

#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
#
http_access allow localhost
http_access allow nuestrared !info
http_access deny all

El secreto est� en la l�nea http_access allow nuestrared !info donde estamos permitiendo el acceso para la lista nuestrared, o sea toda la red, excepto a las m�quinas definidas en la lista info, es decir, las indicadas en el fichero /etc/squid/informatica que son las del aula de inform�tica, tal y como pretend�amos.

6.3.5. Redireccionamiento a trav�s de SQUID

Una posibiliad que nos interesa plantearnos es utilizar nuestro servidor proxy de modo "transparente", es decir, nuestras m�quinas saldr�n a la red Internet a trav�s de �l, pero de la misma forma que lo har�an mediante el router ADSL. Para ello, usando iptables redireccionaremos todas las peticiones al puerto 80 de nuestra red local hasta el puerto 3128 donde escucha SQUID, la instrucci�n para conseguirlo es:

[root@gato root]#/sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

An�logamente podremos redirigir otros servicios, tal y como, se reflej� en la Secci�n 3.2