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.

13 Respuestas a “Restricción de acceso a contenido por extensión (MIME)”
  1. harocas dice:

    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

  2. Leo_On dice:

    harocas la verdad no he tenido oportunidad de experimentar con Squid 3.

  3. cesar dice:

    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

  4. Leo_On dice:

    Con delay pools…

  5. cesar dice:

    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

  6. Leo_On dice:

    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…

  7. Leo_On dice:

    Para Cesar… estas usando squid con opcion para delay pools?

  8. edwin dice:

    no se como quitar el acceso de contenido

  9. Leo_on dice:

    No entiendo tu pregunta.

  10. leonardo dice:

    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.

  11. Leo_on dice:

    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

  12. Jose dice:

    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.

  13. Leo_on dice:

    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.

  14.  
Deja una Respuesta

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Subir Archivos

Aqui puedes subir tus archivos .conf para analizarlos, o pantallas con los errores que se te presenten, ten en cuenta que cualquiera podra verlos, asi que elimina o oculta los datos privados.