Copyright © 2005-2024 LinuxTotal.com.mx
Se concede permiso para copiar, distribuir y/o modificar este documento siempre y cuando se cite al autor y la fuente de linuxtotal.com.mx y según los términos de la GNU Free Documentation License, Versión 1.2 o cualquiera posterior publicada por la Free Software Foundation.
En este tutorial sobre listas de control de acceso en squid, aprenderás lo básico de como configurarlas y establecerlas en la configuración de squid. Este manual asume que ya tienes un servidor squid funcionando adecuadamente, asi que no entraré en detalles sobre la configuración de squid como un servidor proxy y sus múltiples características de control que permite. (Espero en un futuro no lejano escribir un artículo al respecto)
Como varios otros manuales y artículos escritos para LinuxTotal.com.mx, realizaré el presente manual basado en un hipotético ejemplo de una empresa que desea controlar el uso que sus empleados hacen del Internet en cuanto a navegación se refiere. Estoy seguro que muchos lectores encontrarán este "hipotético" ejemplo no tan alejado de la vida real y espero lo puedan adaptar sus propios entornos sin mucho esfuerzo. Empezemos sin más preámbulo.
La empresa cuenta con 15 empleados que tienen asignada individualmente una PC para sus labores, además de otros 2 empleados que comparten entre ellos (a ratos) una PC. El dueño de la empresa está continuamente "furioso" (muy de la vida real) ya que considera que todos, absolutamente todos los empelados, pierden mucho el tiempo navegando, que sin embargo esta consciente que ayuda al negocio, pero necesita control sobre todos, además de que ya han tenido más de un susto por archivos (con virus) que descargan más a menudo de lo que el piensa.
Lo primero que establecemos es "grupos" de usuarios de acuerdo a las polítcias o reglas que el dueño o director o gerente nos establece: (claro, hay que sentarse con él o ellos y ayudarlos a realizar esta primera importantísima parte)
La siguiente información se "extrae" de platicas con la(s) persona(s) responsable de administrar el uso del Internet, que no necesiaremente es algún técnico en informática, asi que seguramente tendrás que asistirlo en ubicar los IP de cada equipo, asi como ayudarlo a comprender los alcances de cada uno de los grupos de uso que se crearán o formarán. Esto puede ser tan sencillo como dos grupos: Los que pueden usar Internet y los que no. O algo más elaborado, como lo que a continuación presento: *** SE BUSCA DIVIDIR EN GRUPOS BIEN IDENTIFICADOS EL USO QUE SE LE QUIERE DAR A INTERNET *** ** USUARIOS CON ACCESO TOTAL SIN NINGUNA LIMITACIÓN O RESTRICCIÓN A INTERNET ** 192.168.10.10 Ana Cristina (la hija del dueño, se entiende) 192.168.10.11 Checo (el "encargado de sistemas" y que necesita poder descar archivos y otros al dueño) ** USUARIOS CON ACCESO CONTROLADO A INTERNET SIN LIMITACIÓN DE HORARIO ** NO pueden descargar archivos con extensiones como '.exe', '.zip', '.msi', '.mp3', etc. de hecho, se trata de que solo descarguen .xls, .doc, .ppt, .pdf (Office, archivos de adobe y otros "inofensivos" como .jpg, .gif, etc.) NO pueden acceder a sitios porno, o al menos controlar lo más que se pueda sobre este aspecto NO pueden acceder a sitios de descargas de programas de cualquier tipo o sitios de juegos, sitios de radio, etc. o al menos lo más que se pueda controlar 192.168.10.12 Andrea 192.168.10.13 Marcela 192.168.10.14 Juan 192.168.10.15 Daniela ** USUARIOS CON ACCESO CONTROLADO A INTERNET EN HORARIO DE 9:00 A 12:00 LUNES A VIERNES ** Las mismas reglas que lo anterior más la restricción del horario, ya que el dueño considera que con este tiempo (3 horas) tienen para ver checar sus correos y alguna otra consulta que tengan que realizar, el resto del día no podrán navegar. 192.168.10.16 Fabían 192.168.10.17 Guillermo 192.168.10.18 Luis Adrián 192.168.10.19 Alejandra ** USUARIOS CON ACCESO TOTAL SIN NINGUNA LIMITACIÓN DE DESCARGAS Y HORARIO PERO SOLO A CIERTOS SITIOS** Estos usuarios son responsables de hacer trámites y pagos de impuestos ante algunas dependencias del gobierno y realizan transferencias y pagos en un par de bancos con los que la empresa trabaja. Necesitan acceso total a estos sitios pero NO pueden navegar en absolutamente ningún otro sitio 192.168.10.20 María José 192.168.10.21 Valeria 192.168.10.22 Regina Sitios a los que deben poder acceder sin ninguna limitación de descargas o horarios: www.bancoimportante.com www.banusura.com www.pagatusimpuestos.gob www.socialseguridadpagaaqui.gob ** USUARIOS CON ACCESO CONTROLADO A INTERNET SIN LIMITACIÓN DE HORARIO, PERO NECESITAN AUTENTIFICARSE** Estos usuarios pueden usar la PC común pero necesitan autentificarse cada vez que abren el navegador (solo en este equipo), para saber quien navegó en que sitios. PC de uso común para dos empleados 192.168.10.23 Usuarios que requieren autentificación Fernanda Gerardo ** USUARIOS BLOQUEADOS, NO PUEDEN USAR INTERNET ** 192.168.10.25 David 192.168.10.26 Samuel
Se supone que los usuarios de cada equipo son los únicos que usan su PC, nadie más la usa, asi que todo lo que suceda en una PC es responsabilidad del usuario al que esta asignada, por esta razón solo usaremos la autentificación de usuarios en la PC 192.168.10.23 que la comparten dos usuarios. Y solo en este equipo el navegador cada vez que lo abran pedirá usuario y contraseña.
De acuerdo a lo anterior crearemos un archivo de texto para cada uno de los grupos de equipos, usuarios, sitios, extensiones, etc. que encontremos en las listas, es conveniente guardar o crear estos archivos en el directorio de configuración de squid /etc/squid, o crear en este, un subdirectorio que contenga los siguientes archivos:
archivo: EQUIPOS_01 # acceso total 192.168.10.10 192.168.10.11 archivo: EQUIPOS_02 # ACCESO CONTROLADO A INTERNET SIN LIMITACIÓN DE HORARIO 192.168.10.12 192.168.10.13 192.168.10.14 192.168.10.15 archivo: EQUIPOS_03 # USUARIOS CON ACCESO CONTROLADO A INTERNET EN HORARIO DE 9:00 A 11:00 LUNES A VIERNES 192.168.10.16 192.168.10.17 192.168.10.18 192.168.10.19 archivo: EQUIPOS_04 # USUARIOS CON ACCESO TOTAL SIN NINGUNA LIMITACIÓN DE DESCARGAS Y HORARIO # PERO SOLO A CIERTOS SITIOS 192.168.10.20 192.168.10.21 192.168.10.22 archivo: EQUIPOS_05 # EQUIPOS CON ACCESO CONTROLADO A INTERNET SIN LIMITACIÓN DE HORARIO # CON AUTENTIFICACIÓN DE USUARIOS 192.168.10.23 archivo: EQUIPOS_06 # USUARIOS BLOQUEADOS, NO PUEDEN USAR INTERNET 192.168.10.25 192.168.10.26 archivo: EXTENSIONES # la siguiente lista son extensiones de archivos prohibidos para su descarga # cualquier otro archivo que su extensión no este en este archivo podrá ser # descargado: .jpg, .gif, .png, .swf, .xls, .doc, .ppt, .pps, .pdf, etc. # esta lista aplica con: EQUIPOS_02, EQUIPOS_03 Y EQUIPOS_05 \.avi$ \.mp4$ \.mp3$ \.exe$ \.mov$ \.wma$ \.rpm$ \.tar$ \.bat$ \.pif$ \.zip$ \.rar$ \.gz$ \.msi$ \.wmv$ \.mpeg$ \.scr$ \.wav$ \.cab$ \.dll$ \.wmv$ \.iso$ #... AGREGA TODAS LAS EXTENSIONES QUE CONSIDERES APROPIADAS archivo: PORNOS # la siguiente lista contiene palabras que si se encuentran en cualquier parte # de la url serán bloqueados # esta lista aplica con: EQUIPOS_02, EQUIPOS_03 Y EQUIPOS_05 sex xxx lesbian gay porn erotic hentai # ... un largo etc, de todas las palabras que se te ocurran. archivo: PROHIBIDOS # la siguiente lista contiene palabras que si se encuentran en cualquier parte # de la url serán bloqueaados # esta lista aplica con: EQUIPOS_02, EQUIPOS_03 Y EQUIPOS_05 ftp games juego radio estaciondemusica.com # ... un largo etc, de todas las palabras que se te ocurran, o vayas encontrando # que tus usuarios usan. archivo: NO_PROHIBIDOS # la siguiente lista contiene palabras que son excepciones de la lista PROHIBIDOS # ejemplo: la palabra 'sex' bloqueará el url http://www.psicologiaysexualidad.com # que no es pornográfica, pero sin embargo contiene la cadena 'sex'. psicologiaysexualidad computadora deportesexxxtremos.com sitiodejuegos.com archivo: SITIOS_EQUIPOS_04 # sitios que la lista de EQUIPOS_04 pueden acceder ilimitadamente bancoimportante banusura pagatusimpuestos socialseguridadpagaaqui taxespayorjail archivo: USUARIOS # usuarios que puedan usar la lista en EQUIPOS_05 gerardo fernanda
En resumen, he creado los siguientes archivos de texto que contienen las reglas o políticas que la empresa desea aplicar:
Nótese que los archivos llevan comentarios '#' para clarificarlo. Se creativo, aumenta todos los comentarios que necesites, fecha, autor, explicación, a quien aplica, etc. Después de los comentarios, muy importante, es una línea por dirección IP, o por sitio, etc.
Es importante clarificar aun más este importante paso de la creación de archivos de acuerdo a grupos que equipos, sitios, etc. ya que todavía debemos aplicar estos archivos a las listas de control de acceso propiamente en el archivo de configuración de squid.
EQUIPOS_01 a EQUIPOS_06 creo que se explican sin mayor problema, ya que contienen una línea por cada PC (previamente identificada a que usuario le pertenece) que aplique. Si en unos cuantos días o semanas,el dueño de la empresa decide hacer cambios en la forma en que sus empleados usan el Internet, es fácil modificar los archivos respectivos. Si se enoja con su hija (PC 192.168.10.10 y que está en la lista EQUIPOS_01) y decide bloquearle totalmente el Internet, bastará con eliminarla de la lista EQUIPOS_01 y agregarla a EQUIPOS_06, reiniciar squid y listo.
EXTENSIONES requiere un poco de comprensión. Debido a la enorme cantidad de extensiones que se pueden utilizar en el internet. Si nos limitamos a crear un pequeño archivo con solo las extensiones válidad (.xls, .doc, .ppt, .pdf) nos encontraremos con la desagradable sorpresa que las páginas no mostrarán archivos .jpg, .gif, .png y demás imágenes, asi como tampoco archivos flash (.swf), etc. Asi que es mejor, crear este archivo con las extensiones de archivo más conocidas en cuanto a posibles archivos que se sabe pueden contener virus o ser ejecutados y que después, en su momento, las bloquearemos, dejando libres todas las demás extensiones "inocentes". Si más adelante conoces de otra extensión "peligrosa", es cuestión de añadirla.
PORNOS y PROHIBIDOS resultan obvios. Solo entender que lo que se bloqueará son las palabras de la lista que se encuentren en cualquier parte del url del sitio a visitar. Si www.ejemplo.com resulta ser un sitio pornográfico, el usuario podrá perfectamente visitarlo, ya que 'ejemplo' es una cadena que no se encuentra en la lista de PORNOS o PROHIBIDOS. Por experiencia propia he encontrado que una lista de palabras 'porno' muy amplia es suficiente para detener la enorme mayoría de sitios de este tipo, si lo que buscas es un bloqueador más efectivo, entonces el proyecto squidguard te puede interesar y ser más útil, sobre todo si por ejemplo, se trata de bloquear pornografía y otros sitios indeseables en una escuela.
NO_PROHIBIDOS se autoexplica con los comentarios del mismo archivo. Es un archivo donde se guardan las excepciones de las cadenas de PORNOS y PROHIBIDOS.
En la segunda parte de esta serie, veremos como aplicar estos archivos dentro de la configuración de squid.
Si encuentras útil la información que proveé LinuxTotal, considera realizar un donativo que estimule a seguir proporcionando contenido de calidad y utilidad. Gracias.
Dona a través de paypal::
O a través de bitcoins:
Hay ocasiones que cuando busco un archivo dentro del listado de un directorio con varios archivos, usando ls, deseo ver solamente ....
SSH (Secure SHell), www.openssh.com, es la herramienta de conexión segura mas usada en el mundo Linux, no hay nada como ssh para ....
Hay múltiples maneras de cometer errores (algunos muy graves y desastrosos) cuando se administran servidores GNU/Linux, conócelo....
Una buena contraseña o password, todos lo sabemos, es esencial para dificultar la entrada a nuestro sistema, sobre todo si se es ....
El comando find de Linux es extremadamente potente. No hay nada mejor para hacer todo tipo de búsquedas de archivos y carpetas qu....
Observa la imagen siguiente, que corresponde a uno de los sitios de descargas de MySQL y notarás que todos los archivos que puede....
Ya son varios los lectores que me preguntan que CMS (content management system) utilizo para este sitio. Ejemplos de CMS son mambo....
Ya no es nada raro que un centro de cómputo o en un site se encuentren varios sistemas Linux actuando como servidores de archivos....
Una de las dificultades con una base de datos MySQL grande y activa es la de realizar respaldos limpios sin tener que desconectar ....
Hay ocasiones que los usuarios insisten en poner contraseñas muy débiles de 5 o 6 caracteres a lo más. Y el argumento que dan e....