Instalar y configurar Squid en Ubuntu

11 02 2010

A continuación vamos a explicar como instalar y configurar Squid en Ubuntu.  Las características para que configuremos un proxy serán:

  • Usar 512 MB de caché.
  • Restricciones de horario: solo se permite navegar de L-V de 16:40 – 22:50.
  • Solo se permite el acceso desde 172.16.0.0/255.255.0.0.
  • Denegar el acceso a 3 páginas web.
  • Denegar puertos de emule 4662 y 4672.

1. Como es lógico hay que descargarse la aplicación Squid.

  • sudo aptitude install squid3

2. Para que Squid3 funcione correctamente debemos la directiva visible_hostname nombre_de_equipo. Para averiguar el el nombre del host tecleamos el siguiente comando:

  • hostname

3. Antes de modificar el squid.conf es recomendable hacer una copia de dicho archivo, por motivos seguridad.

  • sudo cp /etc/squid3/squid.conf /etc/squid3/squid.conf.seguridad

4. Abrimos el squid.conf que se encuentra en /etc/squid3/:

  • sudo gedit /etc/squid3/squid.conf

Buscamos la línea visible_hostname, para buscarla mas rápido pulsamos CONTROL+F y escribimos visible_hostname. Aparecerá dicha línea pero como comentada como se muestra a continuación

# visible_hostname localhost

Debajo nosotros incluiremos la misma directiva pero cambiando localhost por el nombre de nuestro host, en este caso es A2PC36:

visible_hostname A2PC36

El contenido se debe quedar como se muestra en la siguiente imagen.

5. Reiniciamos Squid.

  • sudo /etc/init.d/squid3 restart

6. Ahora vamos a explicar las siguientes directivas que insertaremos en el archivo squid.conf.

La directiva cache_dir sirve para indicarle a Squid, la cantidad de memoria que usará para almacenar información, en este caso usamos 512 mb de memoria, y usaremos 64 directorios, y 128 subdirectorios.

cache_dir ufs /var/spool/squid3 512 64 128

En las acl (Access Control List), definimos quién tendrá acceso a dichas páginas a través de este proxy.

acl hora time MTWHF 16:40-22:50
acl ips src 172.16.0.0/16
acl puerto port 4662 4672
acl denegadas dstdomain http://www.marca.com http://www.youtube.com http://www.20minutos.es
acl todos src 0.0.0.0/0.0.0.0

Por último tendremos que definir las reglas.

http_access deny !hora
http_access deny puerto
http_access deny denegadas
http_access allow ips
http_access deny todos

7. A continuación insertaremos estas directivas en su respectivo lugar, para ello, pondremos el número de linea.

En la anterior imagen la directiva cache_dir ufs /var/spool/squid3 512 64 128 la pondremos sobre la linea 1747. En la línea anterior pondremos # cache1, para que podamos buscar dicha línea con mayor facilidad.

En la anterior imagen, las directivas acl la insertaremos en la línea 606, y como hemos dicho anteriormente, en la línea anterior pondremos # listasdecontroldeacceso1 para buscarlo mas fácilmente.

En la anterior imagen, las directivas http_access, las pondremos sobre la línea 650, y en la línea anterior # controldeacceso1.

NOTA: El numero de las líneas puede variar.

8. Ejecutamos el siguiente comando para que cree los directorios y subdirectorios de la caché.

  • sudo squid3 -z

9. Reiniciamos Squid.

  • sudo /etc/init.d/squid3 restart

10. Ahora en Firefox nos vamos a Editar –> Preferencias –> Avanzado –> Red –>Configuración… –> Configuración manual del proxy. En Proxy HTTP escribimos nuestra dirección de IP, 172.16.2.36, en Puerto ponemos el 3128 que es el puerto en el que Squid escucha

11. Accedemos a las páginas que hemos denegado.

12. Ahora miraremos mediante el log, si esta todo correctamente. La ruta es /var/log/squid3/access.log

  • sudo less /var/log/squid3/access.log

13. Accederemos a otra página web para comprobar que todo está configurado correctamente.

Miramos en el log:

  • sudo less /var/log/squid3/access.log