Instalación de Squid Proxy
Introducción
La principal función del servidor proxy, es la de recibir los requirimientos de los equipos cliente, accede al servodor de destino, por ejemplo http://www.google.com, descarga la página, imagen, plantilla de estilos, script u otros elementos para luego reenviarlo al equipo que lo solicitó. Como una característica adicional, muchos servidores proxy almacenan temporalmente el archivo descargado, con lo que pueden re-utilizarlo si es solicitado nuevamente, lo que se conoce como caché.
El uso de los servidores proxy, fue muy popular a mediados los años 90, donde empezó a notarse la escases de IPs públicas, con lo que se optaba por el uso IPs privadas (192.168.1.0/24 por ejemplo) utilizando el proxy conectado a Internet. No era muy común (ni económico) el uso de los router NAT de hoy, y ni soñar con Wi-Fi.
Sin embargo, existen algunas otras características que aun lo hacen útil al día de hoy, centrándonos en Squid, uno de los servidores Proxy más populares en ambiente Linux:
- Cache: Puede guardar localmente algunos contenidos, por lo que la siguiente vez que se solicite dicha URL, no necesita traerla de Internet, lo que puede ahorra del órden de un 10% del tráfico.
- Restricciones: Se pueden definir reglas de acceso, prohibiendo algunos sitios (dominios) o perfilar permisos por usuario.
Instalación
Para la instalación, y posteriormente dejar como servicio permanente, nos basta ejecutar
yum install squid
chkconfig squid on
Configuración
En principio, la configuración bastante limitada, para evitar problemas de acceso no autorizados por "accidente". por defecto, la configuración se encuentra en el archivo /etc/squid/squid.conf
. Comencemos por autorizar el acceso para nuestra red local, por ejemplo 172.16.0.0/16, mediante las acl (access list) que definen las condiciones:
...
#
# Recommended minimum configuration:
#
acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
# Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where browsing
# should be allowed
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl localnet src fc00::/7 # RFC 4193 local private network range
acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines
...
En las primeras líneas se definen acl simples manage, utilizada para administración, localhost, para los requerimientos internos del servidor y to_localhost que identifica los requerimientos hacia (dst) el equipo local por su interface loopback.
Las siguientes líneas definen en conjunto, la acl de nombre localnet que asocia los equipos cuyo ip de origen (src) corresponde a las redes privadas utilizadas, incluyendo las IP Versión 6, probablemente se debe limitar a la red en uso internamente en su oficina como acl localnet src 192.168.1.0/24
. Éstas reglas originalmente vienen comentadas al instalar Squid.
Una vez que se tiene definida la acl (condidiones) se debe indicar que permiso tendrá: allow (permitir) o deny (denegar). En este caso, autorizaremos a nuestros equipos locales, y por convención, se niega acceso a todo lo demás. El órden es relevante dado que las reglas se aplican en el órden en que ellas aparecen:
...
# Example rule allowing access from your local networks.
# Adapt localnet in the ACL section to list your (internal) IP networks
# from where browsing should be allowed
http_access allow localnet
http_access allow localhost
# And finally deny all other access to this proxy
http_access deny all
...
El puerto por defecto utilizado es el 3128, definido por la línea "port 3128
", deberemos asegurarnos de incluir dicho puerto en las reglas de iptables como:
iptables -I INPUT 5 -s 192.168.1.0/24 -p tcp --dport 3128 -j ACCEPT
Deberá tener cuidado de la posición donde se incluye la regla (-I INPUT 5), ajustándola a la configuración de su servidor, como también la red de origen (-s 192.168.1.0/24).
Con ello, ya estamos en condiciones de probar nuestro servidor Squid. Podemos analizar su log en /var/log/squid/access.log
.
Generado por Sistema y almacenado en cache
Wyzer Luis Hernán de la Barra |
|
Teléfono: | +56995451689 |
WhatsApp: | +56995451689 |
E-Mail: | info@wyzer.cl |
Web: | www.wyzer.cl |