Configuración de Squid: Restricción de acceso a contenido por extensión.

Autor:dark Joel Barrios Dueñas
Correo electrónico: darkshram en gmail punto com
Sitio de Red: http://www.alcancelibre.org/
Jabber ID: darkshram@jabber.org

Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1

© 1999-2011 Joel Barrios Dueñas. 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 (incluyendo su publicación, a través de cualquier medio, por entidades con fines de lucro). 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. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector, hace mal uso de éstos.

Introducción.

Denegar el acceso a ciertos tipos de extensiones de archivo permite hacer un uso más racional del ancho de banda con el que se dispone. El funcionamiento es verdaderamente simple y consiste en denegar el acceso a ciertos tipos de extensiones que coincidan con lo establecido en una Lista de Control de Acceso.

Este documento considera que se ha leído previamente, a detalle y en su totalidad el documento titulado «Configuración de Squid: Servidor Proxy,» y que ha configurado exitosamente Squid como servidor proxy.

Definiendo elementos de la Lista de Control de Acceso.

Lo primero será generar una lista la cual contendrá direcciones de Internet y palabras usualmente utilizadas en nombres de ciertos dominios. Ejemplos:

\.avi$
\.mp4$
\.mp3$
\.mp4$
\.mpg$
\.mpeg$
\.mov$
\.ra$
\.ram$
\.rm$
\.rpm$
\.vob$
\.wma$
\.wmv$
\.wav$
\.doc$
\.xls$
\.mbd$
\.ppt$
\.pps$
\.ace$
\.bat$
\.exe$
\.lnk$
\.pif$
\.scr$
\.sys$
\.zip$
\.rar$

Esta lista, la cual deberá ser completada con todas las extensiones de archivo que el administrador considere pertinentes, la guardaremos como /etc/squid/listas/extensiones.

Edite el archivo /etc/squid/squid.conf:

vim /etc/squid/squid.conf

Se debe definir una Lista de Control de Acceso que a su vez defina al archivo /etc/squid/listas/extensiones. Esta lista la denominaremos como "extensiones". De modo tal, la línea correspondiente quedaría del siguiente modo:

acl extensiones urlpath_regex "/etc/squid/listas/extensiones"

Habiendo hecho lo anterior, se debe añadir en la sección de Listas de Control de Acceso algo similar a lo siguiente:

#
# Recommended minimum configuration:
acl all src 0.0.0.0/0

acl manager proto cache_object
acl localhost src 127.0.0.1/8
acl localnet src 192.168.1.0/24
acl password proxy_auth REQUIRED

acl expregs url_regex "/etc/squid/listas/expregs"
acl extensiones urlpath_regex "/etc/squid/listas/extensiones"

A continuación especificaremos modificaremos una Regla de Control de Acceso existente agregando con un símbolo de ! que se denegará el acceso a la Lista de Control de Acceso denominada extensiones:

http_access allow localnet !extensiones

La regla anterior permite el acceso a la Lista de Control de Acceso denominada localnet, pero le niega el acceso a todo lo que coincida con lo especificado en la Lista de Control de Acceso denominada extensiones.

Ejemplo aplicado a una Regla de Control de Acceso combinando el método de autenticación explicado en el documento Cómo configurar Squid: Acceso por Autenticación y el de denegación hacia Sitio de Red explicado en el documento Cómo configurar Squid: Restricción de acceso a Sitio de Red:

Reglas de control de acceso: denegación de extensiones.
#
# INSERT YOUR OWN RULE(S) HERE TO allow ACCESS FROM YOUR CLIENTS
#
http_access allow localhost

http_access allow localnet password !expregs !extensiones
http_access deny all

Finalizando procedimiento.

Finalmente, sólo bastará recargar la configuración de Squid para que tomen efecto los cambios y se puedan realizar pruebas.

service squid reload