Restricción de acceso a contenido por extensión (MIME)
Esta obra está bajo una
licencia de Creative Commons.
Autor: Francisco Leonel Rubio Quintanilla (rubioq)
Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales. c) Si altera o transforma esta obra, o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra.
Veremos la restricción de acceso a contenido por extensiones, para esto usaremos el método mime, el
motivo de hacerlo por este método es meramente personal, pues es el que mejor resultados me ha dado.
MIME (Multipurpose Internet Mail
Extensiones), (Extensiones de Correo Internet Multipropósito), son una serie de convenciones o especificaciones dirigidas a que se puedan intercambiar a través de Internet todo tipo de archivos (texto, audio, vídeo, etc.) de forma transparente para el usuario.
Una parte importante del MIME está dedicada a mejorar las posibilidades de transferencia de texto en distintos idiomas y alfabetos.
Para mas información visita la wikipedia.
Ejemplo practico – Restricción de extensiones ejecutables
1.- Buscas en tu instalación de SquidNT el archivo mime.conf (suponemos que tu instalación de SquidNT esta funcionando sin problemas, si no es así, revisa el HOWTO SquidNT).
Típicamente…
| C:squidetcmime.conf |
Allí veras una lista de extensiones ya catalogadas, en este caso evitaremos que nuestros usuarios puedan bajar ejecutables, así de este modo les complicamos que instalen malware, virus y una buena cantidad de programas que nos afectan en el rendimiento de los equipos.
En este caso los ejecutables son los archivos con extensiones .com, .exe, .msi, .scr, etc…
Si le das una mirada a la lista veras lo siguiente respecto a este tipo de archivos.
| .exe$ application/octet-stream anthony-unknown.gif - image +download .com$ application/octet-stream anthony-unknown.gif - image +download .pif$ application/octet-stream anthony-unknown.gif - image +download .bat$ application/octet-stream anthony-unknown.gif - image +download .scr$ application/octet-stream anthony-unknown.gif - image +download |
Como podrás ver el archivo mime.conf cataloga a los ejecutables como
application/octet-stream.
Están casi todas las extensiones que necesitamos bloquear y algunas mas que ni sabíamos que existían así que pasamos al siguiente paso.
2.- Abrimos nuestro archivo de configuración squid.conf y agregamos la acl que se encargara de controlar las extensiones que deseamos bloquear.
| acl banext rep_mime_type ^application/octet-stream |
Aquí con esta acl le estamos diciendo al squid que ponga atención a los ejecutables (application/octet-stream) que se descargan. Y a esa instrucción le estamos dando el nombre de banext, que puede ser cualquier nombre alfanumérico, procura no usar caracteres extraños.
3.- Buscamos dentro del archivo squid.conf
| http_reply_access allow all |
Justo arriba de esa regla ponemos.
| http_reply_access deny banext |
Lo que le estamos diciendo allí es que restrinja las extensiones reconocidas por squid como ejecutables.
Te vas al administrador de servicios y recetas SquidNT. (Inicio>Panel de Control>Herramientas administrativas>Servicios)
4.- Ahora si a divertirte mientras observas a los usuarios intentar descargar ejecutables una y otra vez.
Bloqueo de otro tipo de archivos
Si revisas a detalle el contenido del archivo mime.conf veras que en el se encuentran casi todas las extensiones que necesitamos controlar, así que si deseas controlar la descarga por ejemplo de pdf’s o zip’s
solo debes buscar su catalogación dentro de este archivo.
Por ejemplo application/pdf para pdf’s y application/zip parazip’s.así que en caso de que desees restringirlos solo crea la acl necesaria y luego la regla de acceso.
En caso de que no exista la extensión que desees bloquear puedes añadirla, como en el ejemplo anterior no esta bloqueando las extecniones msi porque esta extensión no esta en el archivo mime.conf, así que procedemos a añadirla justo debajo de las demás.
| .exe$ application/octet-stream anthony-unknown.gif - image +download .com$ application/octet-stream anthony-unknown.gif - image +download .pif$ application/octet-stream anthony-unknown.gif - image +download .bat$ application/octet-stream anthony-unknown.gif - image +download .scr$ application/octet-stream anthony-unknown.gif - image +download .msi$ application/octet-stream anthony-unknown.gif – image +download |
Como podrás ver fue un copy & paste y solo le tecleamos el msi.
Nota: antes de añadir extensiones a diestra y siniestra revisa bien el archivo para que no la dupliques.

Entradas (RSS)
saludos
estoy leyendo tu manual,interesante para aplicarlo,
lo hice pero no me esta restringiendo, estoy utilizando squid 3
y este ya no usa varias lineas, asi coloque esto
acl noext rep_mime_type ^application/octet-stream
http_access deny noext
pero no me esta restringiendo bajar las .exe
si te paso y vez que puede ser te agradezco la ayuda
harocas la verdad no he tenido oportunidad de experimentar con Squid 3.
a toda madre tu tutorial, hora si que ya esta jalando todo bien solo que tengo internet satelital y tengo un limite de descargas y quiero limitar el anco de banda solo de youtube, alguna idea o sugerencia, no quiero bloquear youtube solo bajarle la velocidad a la descarga de los .flv
Con delay pools…
ya tengo mi delay pools asi:
–enable-delay-pools option
#No queremos limitar las descargas en nuestra red local.
acl magic_words1 url_regex -i 192.168
#Queremos limitar la descarga de este tipo de archivos
acl magic_words2 url_regex -i ftp .exe .mp3 .vqf .tar.gz .gz .rpm .zip .rar .avi .mpeg .mpe .mpg .qt .rm .iso .raw .wav .mov .flv
#Queremos limitar el ancho de banda durante el día permitiendo
#el ancho de banda completo durante la noche.
acl day time 07:00-23:59
delay_pools 2
#Primer delay pool
delay_class 1 2
#-1/-1 significa que no hay límites.
delay_parameters 1 -1/-1 -1/-1
#magic_words1: 192.168 que ya hemos puesto antes
delay_access 1 allow magic_words1
#Segundo delay pool.
#Queremos retrasar la descarga de los archivos mencionados en magic_words2.
#Segunda clase de retraso (2) de segundo tipo (2).
delay_class 2 2
#Los números siguientes son valores en bytes;
#Debemos recordar que Squid no tiene en cuenta los bits de inicio/parada
#5000/150000 son valores para la red al completo
#5000/120000 son valores para la IP independiente
#una vez los archivos descargados exceden los 150000 bytes,
#las descargas proseguirán a 5000 bytes/s
delay_parameters 2 5000/150000
#Ya hemos configurado antes el día de 09:00 a 23:59.
delay_access 2 allow day
delay_access 2 deny !day
delay_access 2 allow magic_words2
y al hacer squid -z me muestra los siguientes errores
parseConfigFile: squid.conf: unrecognized: ´–enabled-delay-pools´
y asi una lista de errores similares
se agradece la ayuda
Les informo que el manual de restriccion por autenticacion ha sido actualizado.
SquidNT restricción por autenticación
Gracias de antemano por sus comentarios, dudas, criticas, mentadas, etc…
Para Cesar… estas usando squid con opcion para delay pools?
no se como quitar el acceso de contenido
No entiendo tu pregunta.
le comento tengo en la red un problema tengo que dejar habilitado youtube solo para 4 ip que corresponden a la sala de profesores
yo las cree hacy :::
acl salaprofes src 192.168.5.205-192.168.5.208/32
acl permitir_you url_regex “/etc/squid/acl/permitir_you.acl”
http_access allow permitir_you
esas son mis lineas que e creado pero el problema esta que cuando reinicio el servicio todos pueden ver youtube.
acl salaprofes src 192.168.5.205-192.168.5.208/32
Seberia de ir de esta forma
acl salaprofes src 192.168.5.205-192.168.5.208
Y la regla debe de ir asi…
http_access deny permitir_you !salaprofes
Muy bueno este tutorial, Tengo instalado Squid en Windows 2003, necesito saber como puedo limitar la navegacion de los usuarios por dias y como puedo configurarlo para que cuando la navegacion llegue a 80 KB por semana, el usuario no pueda navegar mas en esa semana.
Eso se hace con Delay Pools, hay un manual muy bueno en alcancelibre.org, es parsa squid para linux, pero funciona en el de linux, solo asegurate bajar la compilacion de squid compatible con delay pools.