miércoles, 11 de diciembre de 2013

Proxy (Squid + Dansguardian) - Debian



Lo primero que debemos de hacer es actualizar los repositorios
#apt-get update

Luego configuramos las interfaces del servidor. La eth0 está conectada a Internet y la eth1 está conectada a la Red local.
# nano /etc/network/interfaces


Ahora vamos a descargar el Squid y una vez instalado verificamos que este funcionando. 
# apt-get install squid
# service squid status


Para la configuración del servidor proxy tenemos el fichero squid.conf, pero como este tiene tanta información y puede ser algo confuso cambiamos de nombre el fichero squid.conf por squid.conf.original y creamos uno nuevo.

#mv /etc/squid/squid.conf /etc/squid/squid.conf.original
#nano /etc/squid/squid.conf

El fichero creado debe quedar con una configuración básica como la que parece en las imágenes.
NOTA: OJO con el orden ya que es muy importante para su funcionamiento.
PDT: El servidor proxy puede ser transparente (no es necesario configurar cliente por cliente) colocando el comando http_port 3128 transparent


Ahora vamos a descargar el Dansguardian para filtrar la paquetería Web


Luego de instalar el dansguardian, vamos a editar su fichero de configuración: (es recomendable trabajar con un analizador/filtrador de virus como lo es el Clamav o editar en este fichero virusscan= on)
#nano /etc/dansguardia/dansguardian.conf

En la linea donde dice UNCONFIGURED la dejamos CONFIGURE o comentamos toda la linea con #. Esto se hace para que el servicio pueda arrancar.


En cada parámetro aparecen unas indicaciones para el funcionamiento del Dansguardian, estos se configuran según la necesidad.


Esta linea hay que des-comentarla para poder ver los registros que se transmiten al filtrar los ficheros, estos registros son configurables para mostrar la información de cada usuario al acceder al Internet


Como podemos ver en la siguiente imagen, tanto la aplicación de filtrado de paquetes como el proxy deben de ser especificados para que se realice un adecuado proceso.


Según mi necesidad al momento de sacar los registros


El Dansguardian viene con varios idiomas al momento de procesar y sacar informes de lo ejecutado


En está imagen podemos ver una variedad de directorios y ficheros los cuales son específicos para un buen filtrado en la Web


Archivos de filtros en /etc/dansguardian/list

bannedphraselist
contiene una lista de frases prohibidas. Las frases deben estar entre <>. Por defecto incluye una lista ejemplo en inglés. Las frases pueden contener espacios. Se puede también utilizar combinaciones de frases, que si se encuentran en una página, serán bloqueadas.

bannedmimetypelist
contiene una lista de tipos MIME prohibidos. Si una URL devuelve un tipo MIME incluido en la lista, quedará bloqueada. Por defecto se incluyen algunos ejemplos de tipos MIME que serán bloqueados.

bannedextensionlist
contiene una lista de extensiones de archivos no permitidas. Si una URL termina con alguna extensión contenida en esta lista, será bloqueada. Por defecto se incluye un archivo ejemplo que muestra como denegar extensiones.

bannedregexpurllist
contiene una lista de expresiones regulares3 que si se cumplen sobre la URL ésta será bloqueada.

bannedsitelist
contiene una lista de sitios prohibidos. Si se indica un nombre de dominio todo él será bloqueado. Si se quiere sólo bloquear partes de un sitio hay que utilizar el archivo bannedurllist. También se pueden bloquear los sitios indicados exeptuando los dados en el archivo exceptionsitelist. Existe la posibilidad de descargarse listas negras tanto de sitios como de URLs y situarlas en los archivos correspondientes. Están disponibles enhttp://dansguardian.org/?page=extras.

bannedurllist
permite bloquear partes específicas de un sitio web. bannedsitelist bloquea todo el sitio web y ésta sólo bloquea una parte.

banneduserlist
lista de los nombres de usuario que estarán bloqueados.

En mi caso voy a utilizar el Dansguardian, me dirijo al fichero bannedsitelist y a lo ultimo del fichero coloco las paginas a denegar. (No es necesario colocar http:// ni www.)
facebook.com
twitter.com
hotmail.com

Ahora hay que crear las políticas de manejo de paquetes con el IPTABLES, para que la paquetería vaya de un puerto al otro y logre realizarse el filtrado.
Este es un script de manipulación de prueba y ensayo


Estos son los comandos que no se logran ver bien. Los 2 primeros son los paquetes de Internet redireccionados al servidor proxy y el ultimo es del servidor proxy al dansguardian

iptables -t nat -A PREROUTING -i eth1 -s 192.168.2.0/24 -d 0.0.0.0/0.0.0.0 -p tcp --dport 80 -j REDIRECT --to-port 3128

iptables -t nat -A PREROUTING -i eth1 -s 192.168.2.0/24 -d 0.0.0.0/0.0.0.0 -p tcp --dport 433 -j REDIRECT --to-port 3128

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 3128 -j REDIRECT --to-port 8080

###############################################################################
Otra forma de filtrar las paginas Web es por medio del Squid, en la 4 linea podemos ver como se especifica la ruta de un fichero en el control de acceso (acl pag_prohibidas url_regex "/etc/squid/denegadas"), en este fichero van a estar las paginas y las palabras claves las cuales se van a denegar gracias a la ultima linea que dice http_access deny pag_prohibidas.

NOTA: Estos se debe hacer con el debido enrutamiento con IPTABLES



En la siguiente imagen se muestra un ejemplo:

 ################################################################################

Por ultimo vamos a reiniciar los servicios
Servidor Proxy  >>  #service squid restart / reload
Servidor dansguardian  >>  #service dansguardian restart / reload

Ahora solo será colocar un cliente en la misma red que el servidor proxy y en el navegar configurar el proxy, ingresamos las paginas de facebook, twitter y hotmail; Y podremos ver como el dansguardian filtra las paginas
Ej. facebook


En el servidor podemos ver los LOGs.
tail -l 20 /var/log/squid/access.log   >> Squid
tail -l 20 /var/log/squid/store.log  >>  Squid
tail -l 20 /var/log/dansguardian/access.log  >> Dansguardian

La siguiente imagen pertenece al Dansguardian y podemos ver que el host 192.168.2.10 intento ingresar a las 3 paginas bloqueadas y el servidor 192.168.1.2 con ayuda del Dansguardian los bloqueo.






3 comentarios:

  1. Buenos días, el blog esta estupendo y la información es muy util. pero podrías enviarme la info a mi correo ya que no puedo copiar al ser estas unas imágenes, me refiero a los .cof

    ResponderEliminar
  2. Buenas exelente aporte , pero yo quisiera saber como bloqueo paginas en https ya que este manual solo funciona para http. Gracias de ante mano

    ResponderEliminar
  3. Las iptables funcionan con los puertos... Y las conexiones seguras son dadas gracias a certificados... Que en muchos servidores puede cambiar el puerto por seguridad..

    ResponderEliminar