Servidor proxy Squid, Sarg y DansGuardian - 10-19-2012

Anuncio
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)
Descargar