Instalación y configuración básica de SQUID (Proxy)

Un servidor proxy es un intermediario en una conexión desde un host a un servidor, por ejemplo: un Host solicita una petición para un Servidor Web, pero esta petición primero viaja al Servidor Proxy y este es quien consulta al Servidor Web, después el Servidor Proxy se encarga de entregar la consulta al Host. Esto es muy útil ya que con ello conseguimos agilidad, anonimato, control, restricción y menos consumo de ancho de banda, si utilizamos cache web, en este ultimo caso.

El cache web es útil ya que si en el caso anterior el Host vuelve a solicitar la misma petición para el Servidor Web para mostrar una página concreta, el Servidor Proxy no consulta el servidor y directamente devuelve la página que ya tiene en caché, de todas formas el servidor proxy tendrá que hacer consultas a dichas paginas en caché para saber si se han actualizado o no.

Vamos a instalar un servidor proxy en Linux, concretamente Squid, para ello, debemos ejecutar:

apt-get install squid squid-common

Una vez realizada la instalación reiniciamos el servicio:

service squid restart

Como bien sabemos en Linux es común configurar los servicios y programas con un fichero .conf en la raíz de la instalación del mismo, en este caso no cambia y vamos a editar el fichero squid.conf ubicado en /etc/squid. Antes de nada haremos una copia de seguridad:

cd /etc/squid && cp squid.conf squid.conf.bak

Una vez hecha la copia empezamos la edición del fichero squid.conf, para ello al abrirlo nos vamos a la línea 1184, que es donde Squid nos dice que podremos meter nuestra configuración. Si estáis utilizando VI, como en mi caso, podemos entrar en el modo ex, y escribir “:set number” y “:1184”, (sin las comillas) para poder visualizar los números de línea y desplazarnos hasta la susodicha.

vi squid.conf

Para empezar debemos crear una Lista de control de acceso o ACL (en mi caso le llamaré LANACL), con ello indicaremos que rango de direcciones IP permitiremos, esto es por ejemplo: 192.168.1.0/24, entonces escribimos:

acl LANACL src 192.168.1.0/24

Después crearemos otra ACL que contendrá los dominios web a los cuales el usuario no podrá entrar, y otra ACL más con las palabras clave que restringiran el acceso del usuario a páginas web con dichas palabras. Primero creamos la ACL para restringir ciertos dominios:

acl WEB_DENY dstdomain "/etc/squid/listas/web_deny"

La carpeta LISTAS la he creado yo para meter las ACLs, vosotros podreis crear un simple fichero donde queráis y luego apuntar a él. Más adelante enseñare el contenido del​ fichero web_deny.

Ahora crearemos la ACL para restringir por expresiones regulares y palabras:

acl WEB_DENYREGEXP url_regex “/etc/squid/listas/web_regexp:

A continuación crearemos las reglas de acceso, para ello utilizaremos la siguiente sintaxis:

http_access [ <ALLOW> | <DENY> ] ALL

Entonces generamos la linea para nuestro caso, que quedaría así:

http_access allow LANACL

Con esto lo que hacemos es permitir el acceso a la web, para la ACL llamada LANACL , que como podemos detallar arriba hace referencia al rango de direcciones ip 192.168.1.0/24

Después añadiremos !web_deny  y !web_regexp a la regla de acceso ya existente para denegar el acceso a los dominios establecidos en el mismo fichero y a las palabras y expresiones regulares, respectivamente, quedando la linea anterior de la siguiente manera:

http_access allow LANACL !WEB_DENY !WEB_REGEXP

Aquí lo que hacemos es permitir el acceso, pero denegar el contenido de las ACLs WEB_DENY y WEB_REGEXP.

Finalmente, el contenido de WEB_DENY deberán ser dominios, como ya comenté, y ya que lo designamos así con la palabra dstdomain en la ACL; aquí el contenido de mi fichero:

.youtube.com
.facebook.com
.9gag.com
.4chan.org
.forocoches.com
.google.com

Como veis, escribo “.google.com” y no “www.google.com”, por que en este caso poniendolo así bloqueo el acceso a todo el dominio de Google, si pusiese “www.google.com”, solo bloquearía el acceso a la pagina principal de Google, pero el usuario podría seguir accediendo al Gmail, ya que la URL sería mail.google.com, con lo cual de la manera escrita arriba se engloba todo el dominio.

Y para terminar, el contenido de WEB_REGEXP es el siguiente:

sexo
sex
porno
porn
xxx

Vamos a aplicar el Proxy a nivel de Firefox, así que para ello vamos a Abrir menú, en la parte superior derecha –> Preferencias –> Avanzado –> Red –> Configurar como Firefox se conecta a Internet: Configuración

Captura de pantalla 2016-04-02 a las 0.44.20
Configuración Proxy en Firefox

Si después de esto probamos a acceder a Youtube o Facebook, por ejemplo, veremos que nos indica que el servidor proxy esta rechazando las conexiones, si en cambio nos bloquea una página por una expresión regular o palabra, veremos otro mensaje de error en la conexión.

Captura de pantalla 2016-04-02 a las 0.54.07
Bloqueo por dominio. .Facebook.com
Captura de pantalla 2016-04-02 a las 0.54.27
Bloqueo por expresión regular. Porn

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s