| EliasRobl | Buenas tardes, acá Elías Robles desde Santo Domingo |
|---|---|
| ismak | hola ELias |
| ismak | Comenzamnos? |
| Raimondi | Buenas tardes Eloa ;) |
| EliasRobl | El tema de esta noche ( para ustedes ) es acera de como lograr filtrar contenido http a partir de squidGuard |
| ismak | La proxima charla es "Content filtering using SquidGuard" |
| ismak | a cargo de Daniel Eli'as Robles |
| ismak | Security Admin, Linux Evangelist, Leader of Linux |
| ismak | SIn mas vamos a "leer" esta interesante charla |
| EliasRobl | Estaré haciendo copy paste desde un texto que he preparado, por lo que luego de cada párrafo habrá una pausa para cualquier pregunta, si acaso el protocolo es diferente el moderador me lo hará saber |
| ismak | Os recordmos que las preguntas se realizan en #qc y la traduccion en redes |
| EliasRobl | Por favor de confirmar el protocolo a seguir |
| ismak | FOr the people taht doesnt understand Spanish, the traslatios is in #redes |
| EliasRobl | Uno de los mayores retos que como administradores enfrentamos es el de que nuestros usuarios hagan las cosas que están supuestas a hacer y no más, por lo menos tenerlos tan en control como sea posible. |
| EliasRobl | En particular uno de los recursos más abusados y conflictivos es el de acceso a Internet, o como bien se conoce navegar. |
| EliasRobl | A fin de eficientizar el uso de tan apreciado recurso, ancho de banda, se implementar lo que se conoce como aceleradores o cache http, que en pocos palabras toman nuestra petición de alguna página, la almacenan en disco o memoria para así servirlas localmente y no tener que generar otra solicitud al servidor de web remoto, disminuyendo así el uso de la conexión y entregando una respuesta mucho más rápida. |
| EliasRobl | Aunque las virtudes de los http cache son conocidas, siendo uno de los más famosos squid, no representan la solución a todos los requerimientos que se presentan en un red corporativa, es especial atención lo amigable de la administración y la capacidad de reaccionar en función a ciertas características del url solicitado. |
| EliasRobl | Aunque la experiencia se comenta más a nivel corporativo ( por las dimensiones y políticas) bien que para pequeñas redes y uso casero se pueden lograr resultados similares con la configuración propuesta |
| EliasRobl | En el mundo unix el http cache mas utilizado es squid, y se supone un conocimiento y manejo de squid para este tema |
| EliasRobl | En este caso vamos a considerar el caso del redirector más usado para squid, que se llama squidGuard, que junto con las funciones de redirección permite también filtrar y crear listas de acceso basadas en direcciones de origen |
| EliasRobl | Con squidGuard podemos |
| root | hola DANIEL |
| EliasRobl | ·Limitar el acceso al web para algunos usuarios basados en ciertos dominios o lugares establecidos. |
| EliasRobl | ·Bloquear el acceso a ciertos lugares definidos, los cuales se les llama blacklists ( listas negras ) |
| EliasRobl | Como pueden ver en los dos puntos anteriores es posible limitar el acceso a tan solo ciertos lugares o por el contrario negar el acceso a ciertos lugares |
| EliasRobl | En el caso de cuando se niega el acceso se les llama blacklists y estas listas de direcciones bien pueden ser recopiladas por un robot o manualmente |
| EliasRobl | Los blacklists se pueden obtener de diversas fuentes, e individuos e instituciones la proveen grátis |
| EliasRobl | ·Bloquear el acceso a ciertos lugares URLs que contengan ciertas expresiones, ya sea para todos los usuarios o para una parte de estos. |
| EliasRobl | Mientras en los casos anteriores teníamos listas badas en nombres de dominios o direcciones, ahora podemos crear expresiones regulares que nos evalúen la existencia de ciertos strings dentro del url |
| EliasRobl | Esta funcionalidad es muy importante, pues si queremos restringir que ciertos usuarios no tengan acceso a lugares donde se bajen archivos mp3 solo tenemos que indicar en un expresion regular que se verifique la existencia de .mp3 y negar su acceso en los acl |
| EliasRobl | Muchas veces los usuarios gustan saber las direcciones ip de lugares prohibidos y tienden a violar las restricciones indicando la dirección ip en vez del fqdn, pero squidguard tiene una función que puede restringir esta práctica, de manera que se refuerze el uso de nombres de dominios en vez de direcciones ip |
| EliasRobl | ·Redireccionar las páginas bloquedas hacia un CGI inteligente que provee un formulario de registro para estos eventos |
| EliasRobl | Muchos archivos son utilizados con frecuencia por los usuarios de la red, por lo que pudiéramos decir que siempre que alguien busque winzip.exe sea dirigido a una copia local y así evitar una transferencia considerable de información |
| EliasRobl | ·Se puede hacer desaparecer los gráficos de los banners GIF, se imaginan que gran cosa poder eliminar por siempre el anuncio de la camarita y los molestosos anuncios de doubleclick? |
| EliasRobl | ·Listas de acceso personalizadas basadas en la hora del día, día de la semana, fecha, etc. |
| EliasRobl | ·Reglas diferentes para cada grupo en particular |
| EliasRobl | ·Mucho, mucho más |
| EliasRobl | Cuando se compara la combinación squid/squidguard con otras soluciones de Windows es posible lograr la autenticación basada en nombre de usuario y no tan solo en dirección. Para esto es necesario utilizar unos helpers en squid, pero traigo esto a colación porque de manera concreta squidguard crea sus listas de acceso basadas en las direcciones ip de origen |
| EliasRobl | Luego de esta breve introducción me gustaría pasar al canal de preguntas para dar la oportunidad a algún participante que quisiera saber algo de lo hasta ahora tratado |
| EliasRobl | Si este no es el protocolo, por favor me lo informa |
| roger | una pregunta: cuanto mas recursos consume la instalacion/implementacion de squidguard al servidor que proxea ? |
| EliasRobl | Como dije anteriormente, squidGuard es un proceso hijo de squid, quien por inicia tantos subprocesos como se le indique, en este caso 4 es lo recomendado |
| EliasRobl | Bueno, una de los puntos fuertes de squidGuard es que utiliza bases de datos de las berkeley, lo cual permite manejar una buena canidad de record con un minimo de uso de recursos, para esto entremos en la proxima sección, la de configuración, para poder ver esto con unpoco más de claridad |
| EliasRobl | Instalando squidGuard |
| EliasRobl | Lamentablemente no he visto distribuciones binarias de este paquete, pero si alguien quisiera hacerlo y ponerlo a la disposición del grupo sería de mucha ayuda, por lo que el procedimiento más común se basa en un archivo *.tar |
| EliasRobl | ** aunque soy amante de los paquetes tipo rpm, recomiendo que se adquiera primero destreza en la instalación de paquetes a partir de los fuentes para entonces aprovechar las facilidades de instalación de las diferentes distribuciones |
| EliasRobl | El procedimiento es bastante claro, por lo que solo comentaré los aspectos más importantes para que en su momento no tropiecen con la misma piedra. |
| EliasRobl | Copiar el archico *.tar un directorio y desde allí ejecutar la descompresión, entonces procedemos al clasico ./configure;make, etc, Pero antes estas recomedaciones |
| EliasRobl | Crear la estructura de directorios en /usr/local |
| EliasRobl | Los diretorios son /usr/local/squidGuard |
| EliasRobl | Los diretorios son /usr/local/squidGuard/db |
| EliasRobl | y /usr/local/squidGuard/log |
| EliasRobl | Todos estos directorios deben tener permiso de lectura y escritura por el mismo usuario con que corre squid, recuerden que squidGuard en un child de squid |
| EliasRobl | Deben tener instalado una base de datos Berkeley DB 2.x |
| EliasRobl | make |
| EliasRobl | make install |
| EliasRobl | Con esto se copiaran el binario en /usr/local/bin |
| EliasRobl | Ahora necesitamos decirle a squid que va a usar a squidGuard como redirector, al cual habrá de pasar todas las peticiones para su evaluación |
| EliasRobl | redirect_children 4 |
| EliasRobl | redirect_program /usr/local/bin/squidGuard -c /usr/local/squidGuard/squidGuard.conf |
| EliasRobl | Como pueden ver el archivo de configuración es un parámetro que se le pasa en la linea de redirect_program , por lo que squidGuard.conf puede estar en cualquier lugar de tu filesyste, siempre que tenga los permisos adecuados |
| EliasRobl | Yo recomiendo que siempre que se pueda se pongan los archivos de configuración en /etc/squidGuard, para este y todos los demás programas, pues así podemos hacer backup a /etc/ sin tener que estar pensando que existe una configuración en algún lugar remoto |
| EliasRobl | redirect_program /usr/local/bin/squidGuard -c /usr/local/squidGuard/squidGuard.conf |
| EliasRobl | Eventualemente lo ideal sería -c /etc/squidguard/squidguard.c onf, para no trotar tanto con las mayúsculas, direcotrios raros y cosas asi |
| EliasRobl | Luego creamos el archivo de configuración /usr/local/squidGuard/squidGuard.conf, que para fines de prueba podemos hacer algo como sigue |
| EliasRobl | logdir /usr/local/squidGuard/log |
| EliasRobl | acl { |
| EliasRobl | default { |
| EliasRobl | pass all |
| EliasRobl | } |
| EliasRobl | } |
| EliasRobl | |
| EliasRobl | La primera linea especifica donde residirá el log, que tambien para fines futuros podemos ponerlo en /var/log |
| EliasRobl | Luego la próxima sección es un acl, que es donde se especifican las acciones a tomar |
| EliasRobl | Este ejemplo simplmente deja pasar todo, es para fines de prueba |
| EliasRobl | Si quisieras probar lo contrario solo tienes que poner deny all, para que nadie pueda navegar |
| EliasRobl | El acl default debe existir siempre |
| EliasRobl | Recuerda dar los permisos necesarios para que el usuario de squid pueda leer este archivo de configuración |
| EliasRobl | Atención, mucha atención |
| EliasRobl | Cuando existe algún problema de configuración, ya sea en la formulación del archivo o en los permisos, squidGuard se irá al modo de emergencia, que en pocas palabras lo deja pasar todo. |
| EliasRobl | Por lo tanto es necesario que siempre que se reinicie squid, y por consiguiente squidGuard, se haga un tail /usr/local/squidGuard/log/squidG uard.log para ver que no está en el modo de emergencia, pues de lo contrario puedes pensar que todo está bien mienstras los usuarios hacen fiesta con la conexión a Internet |
| EliasRobl | Me gustaría pasar al cana de preguntas para tomar alguna, si la hay |
| EliasRobl | decía en el canal de preguntas que para que los cambios en la base de datos apliquen es necesario hacer squid -k reconfigure o simplemente service squid restart, para que los procesos de squidGuard vuelvan a crearse y actualizarse las bases de datos |
| EliasRobl | Siempre, siempre, siempre, tail /usr/lcoal/squidGuard/log/squ idGuard.conf -f para ver el resultado de los cambios |
| EliasRobl | Si dice que está en emergency mode debes revisar el error que te reporta, que afortunadamente es muy específico |
| EliasRobl | Por otro lado. Vamos a considerar algo más de la configuración de squid/squidGuard. |
| EliasRobl | ya que en ambos se pueden crear listas de acceso basadas en direcciones de origen, es mi recomendación que para mejor administración solo se creen listas en un solo sitio, preferiblemente en squidGuard.conf, y autorizar a toda nuestra red local a que tenga permiso de navegación, pero los sources creados en squidGuard entrarán en acción y evaluarán la peticiación |
| EliasRobl | Esto nos evitar tener que hacer cambios en dos lugares, también tener que corregir errores en dos lugares |
| EliasRobl | Esto se hace regularmente usando la sentencia http_access allow all en squid.conf |
| EliasRobl | Con tan solo este cambio ya nos podemos olvidar para siempre de squid.conf y dedicarnos a ser maestros de squidGuard.conf |
| EliasRobl | veamos como se crean las listas negras |
| EliasRobl | Si alguien ha tratado de usar un módulo para webmin, las listas negras no funcionan correctamente, hay que manejarlas manualmente |
| EliasRobl | dbhome /usr/local/squidGuard/db |
| EliasRobl | para especificar donde estarán las tablas |
| EliasRobl | copiamos en /usr/local/squidGuard/db http://ftp.teledanmark.n o/pub/www/proxy/squidGuard/contrib/blacklists.tar.gz |
| EliasRobl | Que es la última colección de listas negras |
| EliasRobl | como ya se imagina tar zxvf blacklists.tar.gz y tendremos la estructura de /usr/local/squidGuard/db/blacklists con todos los archivos |
| EliasRobl | Editamos /usr/local/squidGuard/squidGuard.conf para especificar las listas negras |
| EliasRobl | Creemos una entrada de destino para los sitios de porn |
| EliasRobl | destination bl_porn { |
| EliasRobl | domainlist blacklists/porn/domains |
| EliasRobl | urllist blacklists/porn/urls |
| EliasRobl | expressionlist blacklists/porn/expressions |
| EliasRobl | } |
| EliasRobl | Y así para todas las que nos interesen |
| EliasRobl | Tomen tiempo y vean el contenido de estos archivos |
| EliasRobl | Luego consideremos como crear listar de direcciones de origen |
| EliasRobl | source infosec { |
| EliasRobl | ip 192.168.0.0/24 |
| EliasRobl | ip 192.168.1.1-192.168.1.20 |
| EliasRobl | } |
| EliasRobl | Siempre tener en cuenta las llaves al inicio y final de cada declaración |
| EliasRobl | Como medida de seguridad hacemos que el default acl se deny all |
| EliasRobl | y creamos un acl para el source infosec |
| EliasRobl | acl { |
| EliasRobl | infosec { |
| EliasRobl | pass ! bl_porn all |
| EliasRobl | } |
| EliasRobl | default { |
| EliasRobl | pass none |
| EliasRobl | } |
| EliasRobl | Con esto básicamente tenemos controlado el acceso a porn en todos los usuarios de infosec |
| EliasRobl | Con esto ya hemos creado un archivo de configuración bastante sencillo, conteniendo los elementos básicos para nuestro ejemplo |
| EliasRobl | Una seccion de direcciones de origen source {} |
| EliasRobl | Una seccion de lugares a evaluar destination {} |
| EliasRobl | Una accion a tomar acl { infosec { pass ! bl_porn } default { pass none }} |
| EliasRobl | La idea es que squidguard nos provee una forma sencilla de evaluar cientos de miles de condiciones los lugares de destino de nuestros usuarios |
| EliasRobl | Todo este potencial se puede expandir muchísimo si junto con squid utilizamos algun sistema de autorización de usuarios, para que estos tengan que poner sus credenciales para tener acceso |
| EliasRobl | Solo piensen en los congestinamientos que suceden cuando algun genio de la red decide compartir su 'máquina con kaaza para que medio mundo baje películas y canciones. No hay ancho de banda que valga |
| EliasRobl | El tiempo que se puede recuperar limitando a las personas a que no usen messenger |
| EliasRobl | poder redireccionar ciertas peticiones a copias locales para mayor rapidez |
| EliasRobl | Tengo ya varios años utilizando esta combinación y realmente me siento muy satisfecho, lo he implementado en varias redes de cientos de usuarios y me funciona perfectamente |
| EliasRobl | El reto acá es entender estos conceptos, que son los mismos sin importar que tipo de interface tengas |
| EliasRobl | Bien, ahora me gustaría que hicieran preguntas |
| EliasRobl | Otras notas en lo que alguien escribe |
| EliasRobl | en la sección de acl el valor por defecto es pass all, de manera que aunque no lo escribas todo pasara, dependiendo del contenido despues de la expresión pass |
| EliasRobl | si squidguard es un redirector, ¿puede aplicarse un proceso filtrado para la deteccion de virus en las descargas, como con "virulator"? |
| EliasRobl | En el otro canal alguien pregunto: |
| EliasRobl | La respuesta a esto es que no, ya que squidGuard no evalúa el contenido de los archivos, solo la sentencia que pasa el browser |
| EliasRobl | Es deci, el url |
| EliasRobl | Bueno señores, creo que se me ha agotado el tiempo. Espero que esta introducción les haya sido útil |
| ismak | muy interesante!!!! |
| ismak | plas plas plas plas plas |
| ismak | plas plas plas plas plas |
| ismak | plas plas plas plas plas |
| ismak | plas plas plas plas plas |
| ismak | plas plas plas plas plas |
| ismak | muchas gracias por la conferencia Elias |
| ismak | y podemos continuar con las preguntas en qc, si alguien quiere aclarar ideas |
| EliasRobl | Como les dije anteriormente tengo un pequeño foro de sysadmins al cual pueden subscribirse , si desean, |
| EliasRobl | mailto:linuxsd-subscribe@yahoogroups.com |
| EliasRobl | Bueno, gracias a ustedes por la oportunidad, grata experiencia esta la de compartir |
| Ston | plas plas plas plas plas plas plas plas plas plas |
| EliasRobl | Manana estare hablando sobre filtrado de paquetes usando iptables |
| roger | plas plas plas |
| jaikercit | g |
| roger | muy bien elias |
| jaikercit | gracias |
| Ston | xD |
| EliasRobl | Con esta me despido |
| EliasRobl | "Porque de tal manera amó Dios al mundo, que ha dado a su Hijo unigénito, para que todo aquel que en él cree, no se pierda, mas tenga vida eterna" |
| EliasRobl | |
| EliasRobl | Juan 3:16 |
| ismak | plas plas plas plas plas |
| ismak | plas plas plas plas plas |
| ismak | plas plas plas plas plas |
| ismak | plas plas plas plas plas |
| Ston | for(;;) { printf("plas "); |
| Ston | } |