Está en la página 1de 5

CONFIGURACIÓN DE PROXY: SQUID

En sistemas GNU/Linux Squid es el servidor proxy por excelencia, debido a su potencia y


estabilidad.

Características principales:
- Proxy con caché de HTTP, FTP, y otros protocolos de Internet

Squid proporciona un servicio de proxy que soporta peticiones HTTP, HTTPS y FTP a
equipos que necesitan acceder a Internet y a su vez provee la funcionalidad de caché
especializado en el cual almacena de forma local las páginas consultadas recientemente por
los usuarios. De esta forma, incrementa la rapidez de acceso a los servidores de información
Web y FTP que se encuentran fuera de la red interna.

- Proxy para SSL

Squid también es compatible con SSL (Secure Socket Layer) con lo que también acelera las
transacciones cifradas, y es capaz de ser configurado con amplios controles de acceso sobre
las peticiones de usuarios.

- Caché transparente

Squid se puede configurar para ser usado como proxy transparente empleando un cortafuegos
que intercepte y redirija las conexiones sin configuración por parte del cliente, e incluso sin
que el propio usuario conozca de su existencia.

- Puerto 3128

De modo predefinido Squid utiliza el puerto 3128 para atender peticiones, sin embargo se
puede especificar que lo haga en cualquier otro puerto disponible o bien que lo haga en varios
puertos disponibles a la vez.

- Gestión de tráfico

Permite categorizar el tráfico y limitarlo de manera individual o agrupada para conseguir un


mejor aprovechamiento del ancho de banda disponible en la conexión a Internet.

- Control de acceso
Ofrece la posibilidad de establecer reglas de control de acceso. Esto permite establecer
políticas de acceso en forma centralizada, simplificando la administración de una red.

Sintaxis de las ACL's (acces control list) (vamos a ver las opciones más utilizadas)

- Tipo src: Especifican una o varias direcciones IP de origen o un segmento de red con su máscara:
acl [nombre] src [contenido]

Ejemplos:
acl redlocal src 192.168.1.0/24
acl usuarios_VIP src 192.168.1.10 192.168.1.20
- Tipo dst: Especifican una IP de destino y máscara.
acl [Nombre] dst [contenido]

(igual que lo anterior pero con IP de destino)

- Tipo dstdomain: Establecen permisos sobre dominios web de destino:


acl [Nombre] dstdomain [Contenido]

Ejemplo:
acl denegados dstdomain www.youtube.com www.as.com www.marca.com

- Tipo time: Establece límites relacionados con franjas horarias dentro de una semana, de esta
forma hasta podemos habilitar o deshabilitar la navegación externa a nuestro antojo.
acl [Nombre] time [días][Horas]

Ejemplo:
acl horario time MTWHF 09:00-18:00

- Tipo url_regex: permite especificar expresiones regulares para comprobar una url, de esta forma
podemos deshabilitar páginas con un contenido temático.
acl [Nombre] url_regex "path"

De esta forma ponemos un fichero.txt con varias palabras como “deporte, futbol, baloncesto,
deportivo” y controlamos el acceso a páginas que salgan en búsquedas de google, con estas palabras.
acl deporte url_regex "/etc/squid/listas/deporte.txt"

- Tipo urlpath_regex: permite la administración de descargas por extensiones de ficheros.


acl [Nombre] urlpath_regex "path"

Ejemplo con extensiones.txt: .avi$ .mpg$ .mpeg$ .exe$ .bat$ .mp3$


acl multimedia urlpath_regex "/etc/squid/listas/extensiones.txt"

Configuración de control de acceso:


Así definimos si una regla se permite o se deniega y configuramos toda la estructura
http_access allow/deny regla

Ejemplo práctico:
De las ACL que hemos creado anteriormente cogemos la usuarios_VIP les vamos a permitir el
acceso a Internet.
http_access allow usuarios_VIP

Los demás usuarios se lo denegamos:


http_access deny redlocal
Todavía podemos complicarlo un poco más, ya que como algunas configuraciones el http_access
admite “!” para indicar lo contrario precediendo una ACL
http_access deny redlocal !horario !allowed

De esta forma los usuarios permitidos podrán navegar sólo a las páginas permitidas por el
administrador en el horario de oficina.

Ejemplo de una configuración real.


– Los equipos de nuestra red están en el segmento 192.168.1.0/24
– Los jefes de los departamentos tienen salida sin restricción a Internet y sus IPs están en el rango
192.168.1.10 – 192.168.1.20
– El resto de la red solamente tiene acceso a la página de la empresa en horario de oficina de 08:00
a 19:00 horas y no pueden bajarse contenido multimedia.

1 – Creamos las ACL


acl redlocal src 192.168.1.0/24

acl jefes src 192.168.1.10 192.168.1.20

acl permitidas dstdomain "/etc/squid/permitidas"

Dentro del archivo /etc/squid/permitidas escribiríamos las páginas web permitidas. Por ejemplo:
www.juntadeandalucia.es …

2 - Configuramos el control de accesos


http_access allow jefes

http_access deny redlocal !permitidas !horario multimedia

En esta última regla, establecemos que se le negará el acceso a Internet a los usuarios, excepto en el
horario permitido y a las páginas permitidas, así como las descargas de ficheros multimedia.

PRÁCTICA: INSTALACIÓN Y CONFIGURACIÓN DE SQUID

1. Para instalarlo:

# apt-get install squid

2. Cuando instalamos squid se crea un archivo llamado /etc/squid/squid.conf (o


/etc/squid3/squid.conf). En este fichero podemos configurar cualquier parámetro del proxy. No
obstante, vamos a hacer un nuevo archivo de configuración (y dejaremos una copia de seguridad del
antiguo)

#cp /etc/squid3/squid.conf /etc/squid3/squid.conf.old

3. Ejecutamos:

#gedit /etc/squid3/squid.conf
Y el contenido de dicho archivo será el siguiente:

#parametros generales

#nombre del proxy


visible_hostname servidor_proxy

#puerto de escucha del proxy


http_port 3128

#direccion del archivo de log de los accesos y de la caché


access_log /var/log/squid3/access.log
cache_log /var/log/squid3/cache.log

#listas de control de acceso


acl acceso src 0.0.0.0/0.0.0.0
acl nopermitidas url_regex "/etc/squid3/nopermitidas"
acl nowebs dstdomain "/etc/squid3/nowebs"

#control de acceso
http_access deny nopermitidas
http_access deny nowebs
http_access allow acceso

ARCHIVO nopermitidas

twitter

ARCHIVO nowebs

www.youtube.com
www.youtube.es
http://youtube.com

4. Reiniciamos el servicio

# /etc/init.d/squid restart

5. Configuramos el navegador para acceder a Internet a través de proxy

Por ejemplo en Firefox en: Editar-Preferencias-Avanzado-Red

Si configuramos un proxy transparente, tenemos que poner en la configuración IP del cliente como
puerta de enlace la dirección IP del proxy
En iptables del servidor tenemos que añadir:
iptables -t nat -A PREROUTING -o eth0 -p tcp –dport 80 -j REDIRECT –to-port 3128
APLICACIÓN PRÁCTICA SERVIDOR SQUID

También podemos usar un web proxy en nuestro ordenador o nuestro navegador web,
enmascarando nuestra IP, para acceder a ciertos contenidos bloqueados por país, hacer más difícil
que puedan localizar el lugar desde donde estamos conectados, etc.
Mi caso
En mi caso la necesidad era poder acceder al contenido bloqueado en España de NBA League
Pass. Cansado de tener que buscar streamings todos los años y de no poder disfrutar debido a los
cortes, mala calidad y demás problemas, este año me decidí a comprar por 10 € la oferta del NBA
League Pass para ver los Playoffs de esta temporada sin ningún tipo de problema. Para solucionar el
tema del blackout en España estuve probando unos cuantos proxys gratuitos, pero ninguno llegó a
funcionar correctamente, y sabiendo que muchos de estos proxys guardan la información que pasa
por ellos, no tenía ganas de seguir probando suerte y comprometiendo la seguridad de mi equipo,
así que aprovechando la disponibilidad de una máquina con Ubuntu en otro país decidí montarme
mi propio proxy…
modifiqué algunas lineas y añadí otras del archivo de configuración, que está en
/etc/squid/squid.conf, voy explicando paso a paso:
 Después de la línea acl CONNECT method CONNECT añadí la siguiente línea con mi di-
rección IP externa (en el ejemplo cambiado por X todos los números):
acl mired src XX.XX.XX.XX
 Antes de la linea http_access allow manager localhost añadí la siguiente línea, para que
Squid tuviese en cuenta la IP escrita anteriormente y le diese acceso:
http_access allow mired
 Fui buscando las propiedades que necesitaba cambiar, algunas estaban comentadas (las li-
neas comentadas aparecen con # delante), las descomenté, y las fui modificando para que
quedasen del siguiente modo:
http_port 3128
cache_mem 64 MB
cache_dir ufs /var/spool/squid 256 16 256
error_directory /usr/share/squid/errors/Spanish
forwarded_for off
Por último sólo quedaba reiniciar Squid con el siguiente comando:
sudo /etc/init.d/squid restart
Y ya tenía el Proxy configurado y funcionando. En mi máquina tuve que configurar el proxy en
Firefox y con eso ya accedía con la IP enmascarada.
Con estos sencillos pasos he conseguido saltar el bloqueo de contenido en España, lo malo es la
necesidad de un servidor o una máquina a la que tengamos acceso en otro país o lugar que no sufra
este bloqueo

También podría gustarte