Proxy SQUID

SquidLog

Instalación

Para instalar Squid  abrimos una terminal y escribimos este comando:

sudo aptitude install squid3

Aceptamos la instalación y ya tenemos instalado Squid en nuestro equipo, el archivo de configuración lo tenemos aquí:

/etc/squid3/squid.conf

Debemos comprobar los permisos, usuarios y grupos de proxy de esta manera:

image001

Configuración del ServidorSquid

Squid utiliza el puerto 3128 por defecto para atender peticiones, sin embargo se puede especificar que lo haga en cualquier otro puerto o bien que lo haga en varios puertos a la vez. En este caso lo haremos en el puerto 8080, así que entramos en el fichero de configuración de Squid y buscamos con ctrl+F “http_port” ya que este archivo tiene más de 4500 líneas. Modificamos al puerto 8080 de esta manera:

image003

Ahora vamos a redireccionar todo el tráfico por el puerto 80 al puerto 8080 para que así de esta forma el proxy Squid pueda filtrar, con esto conseguiremos que los clientes salgan a internet a través del proxy de la misma manera que lo haría con el router, este modo se llama “proxy transparente”, lo que haremos será usar iptables, el comando es:

image005

Con la herramienta NMAP comprobaremos que el redireccionamiento ha funcionado

image007

Para empezar a configurar squid3 comprobamos primero si tenemos algún error en la configuración con el comando:

squid3 –k parse

 Si no nos sale ningún error continuamos con la configuración.

 

Volvemos al archivo de configuración y buscamos visible_hostname”, añadimos el nombre del host, en nuestro caso asired.hol.es:

image009

El parámetro cache_mem establece la cantidad ideal de memoria para lo siguiente:

  • Objetos en tránsito.
  • Objetos Hot.
  • Objetos negativamente almacenados en el caché.

Los datos de estos objetos se almacenan en bloques de 4 Kb. El parámetro cache_mem especifica un límite máximo en el tamaño total de bloques acomodados, donde los objetos en tránsito tienen mayor prioridad.

image011

Este parámetro se utiliza para establecer que tamaño se desea que tenga el cache en el disco duro para Squid.

image013

Ahora vamos a explicar que significa cada cosa:

  • cache_dir Es la directiva que vamos a utilizar.
  • ufs Es el sistema de almacenamiento que vamos a utilizar, se recomienda ufs.
  • /var/spool/squid3 Es la ruta de la caché.
  • 512 Es el tamaño que queremos asignarle a la caché, se expresa en MB.
  • 18  Número de subdirectorios de primer nivel.
  • 260 Número de subdirectorios de segundo nivel.

 

Luego tenemos que reiniciar el servicio:

service squid3 restart

 

 

Control de acceso – Listas

Regularmente una lista de control de acceso se establece siguiendo la siguiente sintaxis:

 

acl [nombre de la lista] src [lo que compone a la lista]

 

Si queremos establecer una lista de control de acceso que defina a toda la red local configurando la IP que corresponde a la red y la máscara de la sub-red. Por ejemplo, si se tienen una red donde las máquinas tienen direcciones IP192.168.100.n con máscara de sub-red 255.255.255.0, podemos utilizar lo siguiente:

 

acl miredlocal src 192.168.100.0/255.255.255.0

 

También puede definirse una Lista de Control de Acceso llamando a un fichero localizado en cualquier parte del disco duro, y en el cual se encuentra una lista de direcciones IP o nombres. Ejemplo:

 

acl permitidos src “/etc/squid/permitidos”

 

 

TIPOS DE ACLS

  • src: dirección IP de origen (cliente).
  • dstdomain: destino nombres de dominio (servidor).
  • time: hora del día y día de la semana.
  • url_regex: Patrón de expresión regular coincidencia de URL
  • proxy_auth: la autenticación de usuario a través de procesos externos.

Existen otras pero en este tutorial veremos estas.

 

Ejemplos básicos de configuración de ACL

 

  1. Si queremos evitar que los clientes de nuestra intranet accedan al Facebook.

 Creamos una acl con una regla de tipo url_regex, crear un archivo de texto con las palabras o las url que queremos denegar y guardarlas:

image015

Así en la acl le indicaremos la ruta donde está este archivo:

acl paginas url_regex “/etc/squid3/paginas.txt”

 

También podemos crear esta acl con el parámetro dstdomain:

acl prohibido dstdomain www.facebook.com

 

       2. Si queremos que acceda solo un rango de direcciones IP

Creamos la acl llamada intranet y definimos que nuestra red ira desde la 192.168.100.2 hasta la 192.168.100.20 con mascara 255.255.255.0

 acl intranet src 192.168.100.2-192.168.100.20

 

        3. Si lo que queremos es negar el acceso a un rango de direcciones IP

Creamos otra acl de igual forma que la anterior pero con el rango de ips desde la 192.168.100.21 hasta la 192.168.100.40, también podemos crear un archivo con todas las ips e indicar en la acl la ruta que va hasta el fichero.

 acl ipdenegadas src 192.168.100.21-192.168.100.40

    4. Si queremos evitar que entren a unas determinadas horas por ejemplo de 8am hasta las 17pm de lunes a viernes.

 acl horario time MTWHF 08:00-17:00

Esta regla establece un tiempo límite de conexión dentro de una semana. Los parámetros por días de la semana son las iniciales de los días en inglés:

image018

  5. Si queremos que los usuarios accedan con un usuario y una contraseña

Hay que instalar la herramienta apache2-utils.

apt-get install apache2-utils

 Modificamos las directivas que se ven en la captura y descomentamos otras del archivo /etc/squid3/squid.conf

image019

Creamos un usuario con su contraseña, ejecutamos el comando –c para crear la carpeta usuarios y a continuación el nombre del usuario.

htpasswd – c usuarios user1

image021

La acl a utilizar seria esta:

acl usuarios proxy_auth REQUIRED

 

Como vemos en las imágenes tenemos 5 listas de acceso definidas.

image023

Reglas de control de acceso

Estas definen si se permite o no el acceso a Squid. Se aplican a las Listas de Control de Acceso. Deben colocarse en la sección de reglas de control de acceso definidas por el administrador.

La sintaxis básica es la siguiente:

http_access [deny o allow] [lista de control de acceso]

 Una vez que tenemos la lista hecha, vamos a los http_access que son los encargados de permitir o denegar las acl creadas

image027

Con esta regla estamos denegando el acceso a Internet a las horas indicadas, pero como tiene puesto el signo (!) lo que hará Squid será lo contrario, es decir, denegará el acceso a Internet a cualquier hora que no esté comprendida en la que hemos definido en nuestra ACL.

 

Estableciendo el idioma por defecto.

Squid incluye traducción a distintos idiomas de las distintas páginas de error e informativas que son desplegadas en un momento dado. Dichas traducciones se pueden encontrar en /usr/lib/squid/errors/. Para poder hacer uso de las páginas de error traducidas al español, es necesario cambiar un enlace simbólico localizado en /etc/squid/errors. Para que apunte hacia /usr/lib/squid/errors/Spanish en lugar de hacerlo hacia /usr/lib/squid/errors/English.

Eliminamos primero el enlace simbólico actual:

rm -f /etc/squid/errors

 

 

Configuración del navegador de los clientes

Para MOZILLA FIREFOX:

Antes de probar la configuración que hemos hecho, debemos ir al navegador y configurar el proxy, iremos en Avanzado, a la pestaña de red y en configuración, pulsamos en Configuración manual del proxy, ahí ingresaremos la IP del servidor Squid y el puerto, aceptamos y salimos:

image029

 

 

Para INTERNET EXPLORER

Para indicar a Internet Explorer que debe utilizar un Proxy para realizar conexiones, debemos ir a Herramientas > Opciones de Internet > Conexiones > Configuración de LAN y activar la casilla ‘Usar un servidor proxy para la LAN’. En la casilla ‘Dirección’ pondremos la IP de nuestro Proxy y el ‘Puerto’ el puerto, tal y como se muestra en la siguiente ventana:

image031

 

Pruebas

Acceso por autentificación

image033

Cuando un cliente quiere acceder al Facebook:

image035

OBS: También vemos que los errores que nos aparecen en pantalla están en ESPAÑOL.

 

Cuando un cliente intenta acceder a internet con una IP dentro del rango no permitido:

image037

Cuando un cliente intenta acceder a internet fuera del horario permitido:

image039

Cuando un cliente accede a una hora permitida

image041

Cuando un cliente accede con una IP dentro del rango permitido

image043

Share

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *