Servidor proxy Squid, Sarg y DansGuardian - 10-19-2012 by kotov - RooTeando - http://rooteando.com Servidor proxy Squid, Sarg y DansGuardian by kotov - Viernes, octubre 19, 2012 http://rooteando.com/servidor-proxy-squid-sarg-y-dansguardian/ Kindle En un artículo anterior se explico(aquí)como enrutar con iptables en un servidor con Debian, la configuración de iptables se mantendrá para este artículo. En este artículo se va utilizar el mismo servidor Debian para implementar un servidor proxy que controlara el acceso a internet de una red local, el proxy que se instalara será Squid, también instalara sarg, generador de informes para Squid, y DansGuardians para filtrar contenido web . Squid es un programa de software libre que implementa un servidor proxy y cache para páginas web, este servidor esta disponible para múltiples sistemas operativos (mirar aquí) en paquetes binarios, también esta disponible el código fuente. La versión que se utilizara sera 3.1 para Debian squeeze. Squid funciona como cache de páginas web, esta característica significa que almacena las páginas web en el disco duro del servidor para cuando se vuelva a visitar una página web que este almacenada en la cache, la página se leerá del servidor en vez de acceder a Internet, lo que implica un menor consumo de ancho de banda y un aumento de velocidad de acceso a ciertas páginas web. Instalación Squid esta disponible en los repositorios de las principales distribuciones de linux, la versión de Squid mas moderna es la versión 3. Para instalarlo en Debian,solo hay que escribir. 1 Squid funciona por defecto por el puerto 3128, aunque se puede configurar para que funcione en otro puerto. Para que Squid pueda controlar el acceso a internet necesita que el tráfico web sea redireccionado al puerto 3128, debemos crear una regla con iptables. 1 Todo el tráfico entrante por la tarjeta de red eth2 cuyo origen es la red local (192.168.3.0/24) y destino cualquier IP con puerto destino 80, se redirige al puerto 3128, con esta regla todo el tráfico del puerto 80 sera controlado por el proxy. Nota: Si se va a utilizar Squid como proxy transparente, mas adelante veremos que es, no gestiona las peticiones del puerto 443(https) y no realiza cacheo sobre este puerto, con lo que Squid no puede controlar las páginas https. Si intentamos redireccionar del puerto 443 al 3128 nos dará una error al no ser una petición http. Si la política por defecto de iptables es denegar todo,como es en este caso (mirar artículo anterior aquí), se debe abrir el puerto 3128 en el servidor con Debian para que Squid pueda trabajar. 1/9 Servidor proxy Squid, Sarg y DansGuardian - 10-19-2012 by kotov - RooTeando - http://rooteando.com 1 La primera regla se aplica a los datos entrantes cuyo destino sea el puerto 3128 y la segunda regla se aplica a los datos que salgan a través del puerto 3128. Configuración Squid proporciona un archivo de configuración que se encuentra en /etc/squid/squid.conf, se puede utilizar el archivo que proporciona el programa, muy extenso y con muchos comentarios, que puede ser algo complejo para empezar . En este caso, se va a crear una fichero nuevo squid.conf con la opciones mínimas para comenzar. El fichero comienza con las siguientes opciones: 1 La primera opción especifica el nombre del servidor , la segunda opción el puerto donde escucha Squid, por defecto es el 3128 aunque se puede utilizar otro puerto, la opción transparent especifica que es un proxy transparente. Un proxy transparente no requiere configuración en los navegadores de los clientes. A continuación se describen las opciones para configurar la cache. 1 Se especifica la cantidad de memoria que Squid utilizará para trabajar, no se refiere a la cache para almacenar las páginas web. La siguiente línea especifica el tipo de cache, cantidad y la estructura de la cache. 1 El parámetro cache_dir especifica las características del directorio donde se va a almacenar la cache, la ruta del directorio donde se creara la cache, el tamaño de la cache(512 MB), número de directorios que se pueden crear(16) y en cada directorio puede tener 256 niveles. La opción aufs especifica el tipo de cache, tenemos varios tipos de cache ufs : Es el tipo de cache mas viejo, viene por defecto y es lento aufs : Se puede considerar como una evolucióndel anterior, aportando algunas ventajas sobre ufs, como desventaja tenemos que consume mas procesador y memoria que ufs. DISKD: evolución de ufs y aufs, respecto a sus características es un termino medio entre los dos tipos anteriores. COSS : Es el tipo mas eficiente, aunque puede dar problema de estabilidad En Squid definimos una serie de objetos(usuarios,paginas web,direcciones IP…etc) que se denominan Listas de Control o ACL y después se definen una serie de políticas de acceso que son aplicadas a los ACL. 2/9 Servidor proxy Squid, Sarg y DansGuardian - 10-19-2012 by kotov - RooTeando - http://rooteando.com En el fichero squid.conf se definen las ACL ,para definir un ACL: 1 Los criterios puede ser : Por dirección IP: Se especifica la dirección o conjunto de direcciones que pertenecen a la lista. 1 Define una ACL con el nombre red_local , la opción src especifica las IP que pertenecen a la ACL. Por nombre de dominio:Se crea una lista con nombre de dominios de páginas web. 1 Por MAC : Se especifica las MAC pertenecientes a la ACL. 1 Por mime: Se crea una ACL por mime. 1 En este caso, se crea una ACL para tipo de datos del messenger. Si tenemos que crear un ACL con un criterio muy extenso, por ejemplo queremos definir una lista para bloquear unas 20 páginas web, Crear un ACL y escribir las 20 páginas web puede ser muy tedioso. Para facilitar esta tarea Squid permite definir un fichero donde estarán las 20 páginas web y después crear una ACL donde se leerá el contenido del fichero. 1 Con la opción de url_regex , Squid leerá el fichero especificado donde se encuentra los datos, en este caso direcciones páginas web. Con este método podemos especificar una lista de páginas web,IP,MAC,mime…etc. Después de definir las listas ACL,debemos especificar una política de acceso para cada lista. Para definir una política de acceso. 1 Una política de acceso permite o deniega el acceso a Internet a un ACL, Por ejemplo. 1 Permite el acceso para la lista ACL definida como all, de forma equivalente podemos denegar el acceso a Internet 3/9 Servidor proxy Squid, Sarg y DansGuardian - 10-19-2012 by kotov - RooTeando - http://rooteando.com de la siguiente forma. 1 Se puede utilizar la opción “!” que permite crear una excepción a la política de acceso. 1 Deniega el acceso para la lista all, pero para la lista usuario se permite el acceso. Definiendo las listas ACL y las políticas de acceso , podemos controlar el acceso a Internet de una red local. A continuación podemos definir los ficheros log que nos permitirá ver el funcionamiento de Squid y poder ver posibles errores. 1 La primera línea especifica que los errores se muestren en español, las siguientes líneas especifican tres ficheros log que almacenaran diferentes mensajes de Squid. El fichero access.log almacena los mensajes de las páginas web que filtra Squid, el segundo fichero log almacena el comportamiento de la cache web y el último fichero log almacena los objetos que se almacena en la cache. Para ver cualquier fichero log se puede utilizar el comando tail, escribimos. 1 Mostrara el contenido del fichero access.log. Informes con sarg Si nos interesa saber información del contenido web que visita los usuarios de la red local, podemos ver log de Squid o instalar algún programa que genere informes. Para generar informes de Squid tenemos varias opciones como calamaris o sarg, este último es el que utilizaremos . Sarg es un pequeño pero eficiente programa que genera informes mediante una página web que nos mostrara información del acceso a contenido web que surge en una red local, podemos conocer diferentes datos como; descargas, paginas web visitadas, páginas denegadas, top sites , tráfico web por usuario…etc, cualquier dato del informe aparece con su fecha y hora. Los informes se pueden generar de forma manual o crear una tarea en cron para crear los informes de forma periódica. Para instalar sarg en Debian solo hay que descargarlo e instalarlo de los repositorios. 1 Para configurar sarg se utiliza el fichero de configuración sarg.conf, en Debian squeeze se encuentra en “/etc/sarg”. Sarg proporciona un fichero de configuración de ejemplo con múltiples comentarios, en este artículo se va a crear una fichero de configuración desde cero con unas opciones mínimas para funcionar. 4/9 Servidor proxy Squid, Sarg y DansGuardian - 10-19-2012 by kotov - RooTeando - http://rooteando.com Configuración de sarg Crearemos un fichero sarg.conf y añadiremos las siguientes opciones. 1 La primera opción nos permite decidir cuantos informes se guardaran (10 informes) y cuando llegue a ese valor se borraran los informes mas antiguos,si especificamos el valor cero se guardaran todos los informes. La segunda línea especifica donde se almacenan el fichero log de Squid, sarg utiliza este fichero para generar los diferentes informes, con lo que hay que indicar donde se encuentra. La tercera línea indica la ruta donde se almacenaran los informes que se generen de forma manual, Nota: En este artículo solo se generaran informes de forma manual, para generar informes de forma periódica, mediante una tarea en cron, la configuración es diferente,en la sección de enlaces se pondrán ver varias direcciones web que explican esa configuración. La cuarta línea escoge el formato horario de fecha en los reportes; e formato europeo(dd/mm/yy), u americano (mm/dd/yy) y w semanal(ww.yy). La quinta línea indica que se genera un fichero index.html La sexta línea indica que se crea un informe donde aparezcan las 20 web mas visitadas. La séptima línea indica el tipo de caracteres escogido, en los informes que se generaban tuve problemas con los acentos que no los mostraba correctamente, por ese motivo escogí UTF-8. Es muy recomendable mirar el archivo de configuración sarg.conf que viene incluido en sarg, se explican todas las opciones que podemos incluir en el archivo de configuración Como sarg genera los informes mediante una página web, para ver los informes debemos configurar apache. Es muy aconsejable que los informes solo los vea el usuario administrador, por lo que se va a configurar para acceder a los informes mediante nombre usuario y contraseña. Creamos el fichero “/etc/apache2/conf.d/sarg” y añadimos el siguiente contenido . 1 En este fichero se indica donde se almacenan los informes que se ejecutan de forma manual y se crea una alias para esa ruta. También se especifica que solo las direcciones 127.0.0.1 y 192.168.3.10 tiene acceso a los informes. Se especifica un fichero donde se almacenara la clave y el usuario autorizados para los informes. Se crea el fichero, se le asigna los permisos adecuados y se asigna como propietario el usuario de apache. 5/9 Servidor proxy Squid, Sarg y DansGuardian - 10-19-2012 by kotov - RooTeando - http://rooteando.com 1 Por último, se genera la clave y usuario, se reinicia apache para aplicar la configuración. 1 Ahora nos pedirá una usuario y contraseña para acceder a los informes que genere sarg. Para comprobar que todo funciona, se genera un informe de forma manual en sarg. Con el usuario root tecleamos en un terminal . 1 Leerá el fichero access.log de Squid y generara un informe. Este informe puede estar compuesto de la información de varios días, si queremos un informe de los accesos web en un día determinado, entonces debemos utilizar la opción -d. 1 Para poder acceder a los informes, abrimos un navegador y escribimos la siguiente dirección 1 Sustituyendo ip_servidor por la dirección donde se encuentre Squid instalado. Filtros web con DansGuardian Cuando se instala Squid, podemos controlar las páginas web que se conectan los usuarios de una red local, podemos bloquear ciertas páginas web que no nos interesa que los usuarios puedan acceder. Cuando se requiere un control mas exhaustivo del contenido web ,la configuración de Squid puede ser mas compleja e ineficiente. DansGuardian es un programa que actúa como filtro de contenido web, estos filtros pueden seguir varios criterios como; URL, palabras o frases contenidas en una página web, tipos de ficheros,mime…etc. Tenemos un servidor Debian,con squeeze, donde se ha instalado Squid y sarg, en este mismo servidor instalaremos DansGuardian, en los repositorios de Debian esta disponible y utilizando apt-get podremos 6/9 Servidor proxy Squid, Sarg y DansGuardian - 10-19-2012 by kotov - RooTeando - http://rooteando.com instalarlo. 1 La versión instalada para este articulo es la versión 2.10.1.1. Configuración de DansGuardian En nuestro servidor Debian el trafico web (puerto 80) esta redireccionado al puerto 3128 donde se encuentra Squid a la escucha. DansGuardian escucha por el puerto 8080, con lo que deberemos redireccionar el tráfico del puerto 80 al 8080, para que DansGuardian puede trabajar como filtro de contenido web, y borrar la regla que redirecciona el puerto 80 al 3128, para que ningún usuario se salte los filtros. Utilizando iptables podemos realizar la redirección del puerto 80 al 8080. 1 Ahora puede controlar el tráfico web para poder aplicar los filtros que configuremos. El archivo de configuración de DansGuardian se se encuentra en /etc/dansguardian/dansguardian.conf, este archivo contiene muchos comentarios explicando las opciones que podemos incluir. Este archivo necesita algunas modificaciones para un correcto de funcionamiento, para el servidor Debian he modificado lo siguiente,algunas opciones solo requieren descomentar la opción. 1 Esta opción sirve para configurar el fichero log. 1 Especifica que los mensajes de DansGuardian aparezcan en el español, por ejemplo la páginas de acceso denegado. 1 Indica la IP que DansGuardian aplicara el filtrado, si esta en blanco se aplicara todas las direcciones IP. 1 Puerto donde esta a la escucha DansGuardian. 1 Dirección IP donde se encuentra el proxy. 1 7/9 Servidor proxy Squid, Sarg y DansGuardian - 10-19-2012 by kotov - RooTeando - http://rooteando.com Puerto donde esta a la escucha el proxy. Recargamos la nueva configuración de DansGuardian. 1 El resto de las opciones se dejan por defecto, con estas modificaciones ya esta listo para funcionar. DansGuardian examina el contenido de cada página web que accedemos buscando determinada palabras que consideran “malas palabras”, cada vez que encuentra una de estas palabras le asigna una puntuación, cada página web tiene una puntuación que es la suma de puntos de las “malas palabras” encontradas. Esta puntuación se compara con el valor de una opción de DansGuardian que se denomina “limite de ponderación de frases”, si la puntuación de la página supera al valor del límite de ponderación de frase, Dansguardian bloquea la página porque considera que no es adecuada para el usuario. Por defecto este límite es muy restrictivo, por ejemplo a mi me bloqueaba determinadas páginas de ebay, es aconsejable modificarlo. Para modificar este límite, en Debian abrimos el fichero “/etc/dansguardian/dansguardianf1.conf”. 1 Por defecto el límite es para un niño, dependiendo del usuario es aconsejable aumentar el límite para evitar bloqueos de páginas. 1 DansGuardian considera el valor anterior que es el mínimo para un usuario adulto. Configuración de filtros DansGuardian su principal uso es como filtro web para controlar el acceso a contenido web, la creación de filtro es relativamente fácil. Dentro del directorio “/etc/dansguardian/lists” contiene una serie de directorios y ficheros donde podremos configurar los filtros. Todos los ficheros que se encuentran en el directorio están comentados explicando a que filtro corresponde y como se crea un filtro.En la wiki de DansGuardian ,aquí, podemos encontrar un descripción de cada uno de los ficheros. Otra forma de controlar el contenido web es mediante una Blacklist (lista negra) que un fichero con un lista de sitio de Internet que se consideran peligrosos. DansGuardian proporciona una lista negra, aunque un poco antigua, si queremos una lista negra mas actualizada en el siguiente enlace podemos conseguirla, aquí. Con los tres programa descritos Squid,Sarg y DansGuardian, tendremos una control total sobre el acceso a contenido web de los usuario de una red local, quedan muchas opciones por explicar en los tres programa, pero artículo es un punto de partida para la configuración de los tres programas. Ver el apartado de enlaces para ampliar información. Enlaces http://www.squid-cache.org/ : Página oficial de Squid. http://wiki.squid-cache.org/ : Wiki de Squid, encontraras mucha información sobre la configuración 8/9 Servidor proxy Squid, Sarg y DansGuardian - 10-19-2012 by kotov - RooTeando - http://rooteando.com (ingles). http://recursostic.educacion.es/observatorio/web/es/software/servidores/589-elvira-mifsud : Manual de Squid en español. http://sarg.sourceforge.net/sarg.php: Página de sarg http://cord.de/tools/squid/calamaris/ : Calamaris, alternativa a Sarg. http://debianyderivadas.blogspot.com.es/2011/02/instacion-y-configuracion-de-sarg-en.html Instalación y configuración de Sarg en debian. Explicación como se genera un informe de sarg con cron. Tutorial de generación de informes de Sarg con cron http://dansguardian.org/: Página oficial de DansGuardian. http://contentfilter.futuragts.com/wiki/doku.php?id=main_index : Wiki de DansGuardian(ingles). http://www.punto-libre.org/2010/10/guia-de-instalacion-y-configuracion-de_16.html Configuración de DansGuardian (español) http://www.squidguard.org/: Alternativa a DansGuardian. _______________________________________________ PDF generated by Kalin's PDF Creation Station 9/9 Powered by TCPDF (www.tcpdf.org)