logotux

Información y servicios en Linux y Open Source

Inicio :: Información ::
Linuxtotal en: LinkedIn linuxtotal rss feed RSS [ Añadir a favoritos ]

SQUID Y LAS LISTAS DE CONTROL DE ACCESO (1ra. Parte)

ACL - Access Control List

Copyright 2005-2012 Sergio González Durán
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.

autor: sergio.gonzalez.duran@gmail.com


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.


Estableciendo las reglas o políticas del negocio

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.


Crear archivos para cada grupo de usuarios, equipos, sitios y demás

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 , 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:

  • EQUIPOS_01
  • EQUIPOS_02
  • EQUIPOS_03
  • EQUIPOS_04
  • EQUIPOS_05
  • EQUIPOS_06
  • EXTENSIONES
  • PORNOS
  • PROHIBIDOS
  • NO_PROHIBIDOS
  • SITIOS_EQUIPOS_04
  • USUARIOS

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.


AÑADIR ESTE ARTÍCULO A MIS FAVORITOS



COMENTARIOS






Búsqueda en LinuxTotal

Manual de sudo, visudo y sudoers

(más)

Ejecuta WindowsXP lado a lado con Linux usando SeamlessRDP

(más)

(más)

Comando date, sus usos y respaldo de archivos

(más)

Secretos del comando man

(más)

Cinco Tips para convertir documentos de MSDOS/Windows a Linux

(más)

LinuxTotal.com.mx · Información y servicios en Linux y Open Source · info@linuxtotal.com.mx · sergio.gonzalez.duran@gmail.com