Mi Blog
Cómo configurar proxy SQUID en modo NO transparente

Cómo configurar proxy SQUID en modo NO transparente

(6 votos)

Un proxy, o servidor proxy, en una red informática, es un servidor —programa o dispositivo—, que hace de intermediario en las peticiones de recursos que realiza un cliente (A) a otro servidor (C). Por ejemplo, si una hipotética máquina A solicita un recurso a C, lo hará mediante una petición a B, que a su vez trasladará la petición a C; de esta forma C no sabrá que la petición procedió originalmente de A. Esta situación estratégica de punto intermedio le permite ofrecer diversas funcionalidades: control de acceso, registro del tráfico, restricción a determinados tipos de tráfico, mejora de rendimiento, anonimato de la comunicación, caché web, etc.

⬇️ Compra en Amazon el hardware que utilizo ⬇️

🔥 ¡DESCÚBRELOS! 🔥

 

 

1.- CARACTERÍSTICAS

La palabra inglesa proxy significa procurador en español.

  • Comúnmente un servidor proxy, es un equipo informático que intercepta conexiones de red hechas desde un cliente a un servidor de destino.
    • El más popular es el servidor proxy de web. Interviene en la navegación por la web, con distintos fines: seguridad, rendimiento, anonimato, etc.
    • Existen proxys específicos para otros protocolos, como el proxy de FTP.
    • El proxy ARP puede hacer de enrutador en una red, ya que hace de intermediario entre ordenadores.
  • Proxy (patrón de diseño) también es un patrón de diseño (programación) con el mismo esquema que el proxy de red.
  • Un componente hardware también puede actuar como intermediario para otros.


Como se ve, proxy tiene un significado muy general, aunque siempre es sinónimo de intermediario. Cuando un equipo de la red desea acceder a una información o recurso, es realmente el proxy quien realiza la comunicación y a continuación traslada el resultado al equipo que la solicitó.

Hay dos tipos de proxys atendiendo a quién es el que quiere implementar la política del proxy:

  • Proxy local: En este caso el que quiere implementar la política es el mismo que hace la petición. Por eso se le llama local. Suelen estar en la misma máquina que el cliente que hace las peticiones. Son muy usados para que el cliente pueda controlar el tráfico y pueda establecer reglas de filtrado que por ejemplo pueden asegurar que no se revela información privada (Proxys de filtrado para mejora de la privacidad).
  • Proxy de red o proxy externo: El que quiere implementar la política del proxy es una entidad externa. Por eso se le llama externo. Se suelen usar para implementar cacheos, bloquear contenidos, control del tráfico, compartir IP, etc.

 

 

2.- VENTAJAS

En general, no solamente en informática, los proxys hacen posible:

  • Control: solamente el intermediario hace el trabajo real, por tanto se pueden limitar y restringir los derechos de los usuarios, y dar permisos únicamente al proxy.
  • Ahorro: solamente uno de los usuarios (el proxy) ha de estar preparado para hacer el trabajo real. Con estar preparado queremos decir que es el único que necesita los recursos necesarios para hacer esa funcionalidad. Ejemplos de recursos necesarios para hacer la función pueden ser la capacidad y lógica de cómputo o la dirección de red externa (IP).
  • Velocidad: si varios clientes van a pedir el mismo recurso, el proxy puede hacer caché: guardar la respuesta de una petición para darla directamente cuando otro usuario la pida. Así no tiene que volver a contactar con el destino, y acaba más rápido.
  • Filtrado: el proxy puede negarse a responder algunas peticiones si detecta que están prohibidas.
  • Modificación: como intermediario que es, un proxy puede falsificar información, o modificarla siguiendo un algoritmo.

 

 

3.- INCONVENIENTES

En general, el uso de un intermediario puede provocar:

  • Anonimato: si todos los usuarios se identifican como uno solo, es difícil que el recurso accedido pueda diferenciarlos. Pero esto puede ser malo, por ejemplo cuando hay que hacer necesariamente la identificación.
  • Abuso: al estar dispuesto a recibir peticiones de muchos usuarios y responderlas, es posible que haga algún trabajo que no toque. Por tanto, ha de controlar quién tiene acceso y quién no a sus servicios, cosa que normalmente es muy difícil.
  • Carga: un proxy tiene que hacer el trabajo de muchos usuarios.
  • Intromisión: es un paso más entre origen y destino, y algunos usuarios pueden no querer pasar por el proxy. Y menos si hace de caché y guarda copias de los datos.
  • Incoherencia: si hace de caché, es posible que se equivoque y dé una respuesta antigua cuando hay una más reciente en el recurso de destino. En realidad este problema no existe con los servidores proxy actuales, ya que se conectan con el servidor remoto para comprobar que la versión que tiene en caché sigue siendo la misma que la existente en el servidor remoto.
  • Irregularidad: el hecho de que el proxy represente a más de un usuario da problemas en muchos escenarios, en concreto los que presuponen una comunicación directa entre 1 emisor y 1 receptor (como TCP/IP).

4.- REQUISITOS

Para montar el proxy Squid3, necesitamos una serie de requisitos que detallaré a continuación:

  • Equipo con GNU/Linux Debian ( u otra distribución) y 2 interfaces de red. (Aunque podemos hacerlo con una sola interfaz, recomiendo aprender con 2 interfaces).
  • Instalar SQUID en el servidor GNU/Linux.
  • Disponer de equipos clientes con los que probar.

Para este tutorial he usado VMWARE WORKSTATION (puedes usar VirtualBOX) para virtualizar el servidor GNU/Linux con 2 interfaces de 2 y dos subredes y un Windows 7 a modo de cliente en la VLAN de la LAN. Tú puedes hacer lo mismo y probar sin miedo antes de montar el servidor físico.

 

 

5.- ESQUEMA DE RED

Nuestro esquema de red será muy sencillo y podrá trasladarse a la realidad tanto en un ámbito doméstico como en un ámbito de PYMES. Nuestra red estará "segmentada" en 3 zonas:

  • Internet: Comprenderá el tramo entre Internet y nuestra interfaz pública de Internet. Podremos usar tanto DHCP como IP estática.
  • Tramo Router-Servidor Proxy: Tramos de red que une la interfaz "externa" de nuestro servidor Proxy y una de las bocas del Router que nos da acceso a Internet
  • LAN Clientes: Utilizaremos un direccionamiento diferente al que hemos puesto en el tramo entre el Router-Proxy.

Proxy Squid No Transparente

Esquema de Red

 

 

6.- INSTALACIÓN DE SQUID3

El software que usaremos como Proxy será el archiconocido SQUID-CACHE. Actualmente, se encuentra en la versión 3 y lo tenemos disponible en los repositorios oficiales GNU/Linux Debian. Instalaremos el programa con el siguiente comando:

apt-get -y update && apt-get -y install squid3

 

 

7.- CONFIGURACIÓN DE SQUID

Lo primero será realizar un backup de nuestro fichero de configuración de Squid por si lo necesitamos restaurar. Para hacer el backup simplemente lo copiamos:

cp /etc/squid3/squid.conf /etc/squid3/squid.conf.backup

Vamos a configurar nuestro Proxy con las siguientes políticas:

  • Puerto Squid: http_port 8080
  • Memoria asignada: cache_mem 64 MB
  • Directorio de storage: cache_dir aufs /var/spool/squid3 500 16 256
  • Declaramos nuestra red local: acl mired src 172.27.1.0/24
  • Declaramos nuestro localhost: acl localhost src 127.0.0.1/32
  • Prohibimos ciertas palabras: acl def_prohibidas url_regex "/etc/squid3/bloqueos/prohibidas"
  • Permitimos accesos desde mired y bloqueamos palabras: http_access allow mired !def_prohibidas
  • Permitimos accesos desde localhost: http_access allow localhost
  • Denegamos todo lo que no se haya permitido previamente: http_access deny all

Proxy Squid No Transparente

Fichero squid.conf

Para que nos funcione el HTTPs será necesario añadir estas 2 líneas al fichero de squid.conf:

acl https port 443
http_access allow https

Hay que tener en cuenta que nuestro equipo cuenta con 2 interfaces de red: eth0 192.168.1.10/24 (Internet) y eth1 172.27.1.1/24 (LAN).

Proxy Squid No Transparente

Direcciones IP de las interfaces del Proxy

En el fichero de "prohibidas" se irán poniendo las palabras que serán bloqueadas por el proxy. Cada palabra en una línea. (pej: sex, porn, fake, casino..)

Ahora lo único que tenemos que hacer es reiniciar/arrancar squid:

/etc/init.d/squid3 restart

 

 

8.- CONFIGURACIÓN DE LOS CLIENTES

En los equipos clientes, debemos configurar en nuestro navegador Web, la dirección IP y el puerto del proxy. En nuestro ejemplo pondremos IP: 172.27.1.1 y el puerto 8080. Accedemos en Firefox desde el menú: Herramientas -> Opciones -> Avanzado -> Red -> Configuración y configuramos la IP y el puerto como vemos en la siguiente ilustración:

Proxy Squid No Transparente

Configuración Proxy en los Clientes

 

 

9.- COMPROBACIONES

Desde Firefox, instalamos el componente Firebug (Chrome trae el suyo propio instalado) y una vez instalado y reiniciado Firefox abriremos una Web cualquiera y pulsaremos F12. Se nos abrirá Firebug y debemos ir a la pestaña de RED->Todos. Pulsamos CTROL+F5 para recargar la página y veremos en la columna IP REMOTA quíen es el servidor que nos está entregando la página web. Si tu configuaación es correcta, deberá salir la IP:PUERTO de tu servidor Proxy como en la ilustración siguiente:

Proxy Squid No Transparente

Firebug en Firefox

Para comprobar si estamos usando la caché del proxy, podemos mirar en los logs de SQUID con tail -f /var/log/squid/access.log donde podremos ver principalmente los TCP_HIT y TCP_MISS de las peticiones realizadas por los clientes de la LAN.

Proxy Squid No Transparente

Logs de SQUID

Y con esto ya tenemos configurado nuestro servidor Proxy en modo NO transparente.

ENJOY!


Acerca de Mi

RPF

Soy Ingeniero Téc. Industrial Mecánico, Administrador de Sistemas Informáticos, Desarrollador de Aplicaciones Informaticas Web, Técnico Superior en PRL, Experto en Energías Renovables... y trabajo actualmente como Senior DevOPS en HP SCDS.

Contactar conmigo

Dirección: León, España

E-Mail: Contactar

Web: https://www.raulprietofernandez.net

Skype: raul.lnx

APÚNTATE GRATIS

VIP RPF
Entra en la Comunidad VIP y consigue acceso a las descargas en PDF, Trucos y Videotutoriales ocultos y mucho más... ¡Muy Pronto!