Servidor Proxy – Squid

Introducción

Vamos a instalar un servidor proxy/cache en el servidor1. Pudiendo así controlar a que páginas accedemos (alojadas en el servidor2 y servidor3).

Se ha elegido como software squid3 para implementar el proxy/cache y dansguardian para filtrar el contenido.

Consideraciones a tener en cuenta:

  1.  El proxy/cache sólo admite conexiones de la red local
  2.  Se quieren limitar las siguientes conexiones:
    1. Incapacitar la descarga de ficheros ejecutables.
    2. Capar el acceso a internet los fines de semana
  3. Las páginas no permitadas se harán mediante listas negras con dansguardians.
  4. Monitorizar el uso del proxy con sarg, desde una ruta personalizada por ejemplo proxy.charlie.gonzalonazareno.org accesible con usuario/pass.
  5. Configurar la infraestructura para tener un proxy transparente.

Escenario

Requisitos previos

Habilitar el forwarding en el servidor 1:

/etc/sysctl.conf

Guardamos y habilitamos el forwarding al vuelo, sin necesidad de reiniciar la máquina:

Ahora para la interfaz interna del servidor y las interfaces de servidores 2 y servidor 3, asignar una dirección ip manualmente y levantar la interfaz en el caso de que estuviera down:

  • Interna Servidor1: 10.0.0.1/24
  • Inet Servidor2: 10.0.0.2/24 
  • Inet Servidor3: 10.0.0.3/24

Ejemplo:

Añadir en servidor 2 y servidor 3, como puerta de enlace la red interna de servidor 1:

Para que los servidores internos puedan navegar hacia fuera (NAT Dinámico):

En el servidor1:

 

Configuración manual del proxy/cache

Servidor1 

Actualizar los paquetes del sistema e instalar el siguiente paquete:

Importante Squid escucha en el puerto 3128 TCP.

El fichero de configuración de squid es /etc/squid/squid.conf, el fichero viene con casi 4000 lineas. Aquí os dejo lo que trae habilitado por defecto:

/etc/squid/squid.conf

Ahora desde el navegador de un cliente, por ejemplo desde servidor 3, configuramos el navegador konqueror para que utilice el servidor proxy squid:

Con la configuración predeterminada de squid, los clientes no serian capaces de navegar a través del navegador, ya que esta capado, como se puede ver en la tercera imagen de la galería:

El pase de diapositivas requiere JavaScript.

Entonces necesitaremos añadir estas dos lineas en el fichero de configuración para que nuestros clientes que se encuentran en el direccionamiento 10.0.0.0/24 puedan navegar hacia fuera via proxy:

/etc/squid/squid.conf

El pase de diapositivas requiere JavaScript.

Si echamos un vistazo al fichero log de squid, después de intentar navegar con o sin los parámetros anteriores:

/var/log/squid/access.log

No permitir descargas de ficheros ejecutables

Añadiremos las siguientes lineas en el fichero de configuración de squid:

Reiniciamos el servicio:

Nota: esto no funcionará contra las páginas https.

El pase de diapositivas requiere JavaScript.

No permitir el acceso los fines de semana

Colocar este par de lineas en el fichero de configuración de squid:

El pase de diapositivas requiere JavaScript.

Bloquear dominios HTTP utilizando una lista negra con Dansguardian

https://www.server-world.info/en/note?os=Debian_8&p=squid&f=7

Instalar el paquete del programa:

En el fichero de configuración de dansguardian, vamos a realizar unos cambios, habrá que modificar el puerto que escucha squid por el 8080, o sino, no funciona. Por lo menos en mi caso no me funcionaba.

/etc/dansguardian/dansguardian.conf 

/etc/squid/squid.conf

Añadir los dominios que queramos bloquear en el fichero:

/etc/dansguardian/lists/bannedsitelist

Reiniciar ambos servicios:

El pase de diapositivas requiere JavaScript.

Instalación de sarg y estadísticas

Para desplegar sarg, necesitaremos un servidor web, por ejemplo vamos a instalar apache2 que no es conocido 🙂

Instalar paquetes:

Reiniciar servicio:

En el fichero de configuración de sarg hacemos los siguientes cambios:

/etc/sarg/sarg.conf

Añadir un fichero de configuración para el sitio web de sarg:

/etc/apache2/conf-available/sarg.conf

Generar el fichero de contraseñas y añadir la contraseña para admin:

Creamos el directorio definido en el fichero anterior y reiniciamos apache2:

Y ahora ejecutamos sarg, para generar los reportes:

 

El pase de diapositivas requiere JavaScript.

Configuración proxy transparente

Añadir en servidor1 las siguientes reglas iptables, para que las peticiones http de los clientes se reenvien al puerto 3128 de squid:

Ahora ya no seria necesario añadir el servidor proxy en el navegador y probaríamos a entrar por ejemplo en una de las páginas webs bloqueadas por dansguardian:

El pase de diapositivas requiere JavaScript.

 

Autor entrada: CharlieJ

Deja un comentario

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