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.
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 |
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
En caso de que fijemos un tama�o para el directorio de cach� superior a la capacidad real del disco duro, SQUID se bloquear�. |
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 |
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.
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