2. ¿Qué el proxy?
intermediario en inglés.
Un proxy, en una red informática, es un programa o
dispositivo que realiza una acción en representación
de otro, esto es, si una hipotética máquina A solicita
un recurso a una C, lo hará mediante una petición a
B; C entonces no sabrá que la petición procedió
originalmente de A.
3. Está situación estratégica de punto intermedio suele
ser aprovechada para soportar una serie de
funcionalidades: proporcionar caché, control de
acceso, registro del tráfico, prohibir cierto tipo de
tráfico etcétera.
De ellos, el más famoso es el servidor proxy web
(comúnmente conocido solamente como
«proxy»).Intercepta la navegación de los clientes por
páginas web, por varios motivos posibles: seguridad,
rendimiento, anonimato, etc.
4. proxy local:
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).
5. Proxy externo:
Se suelen usar para implementar cacheos, bloquear
contenidos, control del tráfico, compartir IP, etc.
7. Creación de usuarios
Desde la línea de comandos, creamos un archivo en
el directorio /etc/squid/claves: #touch
/etc/squid/claves y luego los usuarios:
# htpasswd2 /etc/squid/claves usuario1
Luego se solicitaría la clave y la confirmación de la
misma. Hay que tener en cuenta que htpasswd2
Debe estar instalado (pertenece a Apache2).
8. Configuración
En el archivo /etc/squid/squid.conf se debe configurar el tipo de autenticación (basic), la
ruta del modulo NCSA y la ruta del archivo que contiene los usuarios y sus passwords.
auth_param basic program /usr/sbin/ncsa_auth /etc/squid/claves
Luego se debe crear una acl que al ser invocada en una regla de control de acceso
solicitara el usuario y la clave: acl con_clave proxy_auth REQUIRED Para comprender
como se utiliza la acl que definimos veremos un ejemplo. Si se desea que todas las
Personas que accedan al sitio www.ociosos.com ingresen un usuario y clave, y que para el
resto de las paginas no haya restricción alguna:
acl all src 0.0.0.0/0.0.0.0
acl ocio dstdomain www.ociosos.com
acl con_clave proxy_auth REQUIRED
http_access allow ocio con_clave
http_access allow all
Si en cambio, quisieramos que para navergar por el proxy todos los usuarios de la red
tengan que ingresar usuario y clave, dentro de las reglas de control de accesso basta con
poner:
http_access allow all con_clave
9. La combinación de diferentes acl nos otorga gran
flexibilidad, teniendo en cuenta que agregando a cualquier
regla de control de accesso la acl con_clave obligamos a
validar contra SQUID para permitir el acceso a un
determinado sitio, ip, en alg´un rango horario, etc.
Autenticación por grupos La autenticación que vimos en el
punto anterior tiene una deficiencia, supongamos que
quisiéramos subdividir un cierto grupo de usuarios para que
tengan diferentes permisos de acceso a sitios web. Por
ejemplo, el grupo de comunicación deberá poder acceder a
leer los diarios, no así el grupo de desarrollo que solo tiene
permitido ingresar al sitio www.lawebdelprogramador.com.
Con lo visto anteriormente no podríamos hacerlo ya que
tenemos todos los usuarios y sus correspondientes claves en
un mismo archivo. Para solucionar este inconveniente
deberíamos realizar pequeñas modificaciones a las listas de
Control de acceso
10. claves
La definición de los usuarios con sus claves ser´a exactamente
igual que en el punto anterior, a diferencia que ahora
podremos definir en un nuevo archivo los usuarios que
pertenecen a un determinado grupo. Con el siguiente ejemplo
quedaría mas claro.
acl all src 0.0.0.0/0.0.0.0
acl diario dstdomain www.litoral.com.ar
acl web_programar dstdomain
www.lawebdelprogramador.com
acl con_clave proxy_auth REQUIRED
acl comunicacion proxy_auth ‘‘/etc/squid/comunicacion’’
acl desarrolladores proxy_auth ‘‘/etc/squid/desarrolladores’’
http_access allow desarrolladores web_programar
11. Claves
http_access allow comunicación diario
Cada usuario que pertenezca a un grupo debera encontrarse
en una ´unica linea ya sea para el grupo de comunicación (
/etc/squid/comunicacion) como para el grupo de
desarrolladores (/etc/squid/desarrolladores
). Y también debería estar creado mediante el comando
htpasswd2 al igual que en el punto anterior
en /etc/squid/claves.
En conclusion, todos los usuarios por mas que pertenezcan a
diferentes grupos deben ser creados en un archivo utilizando
htpasswd2, la division de grupos se realizara guardando los
nombres de los usuarios en diferentes archivos, uno por línea
y luego se aplicaran como se vio en el ejemplo mediante las acl
y las reglas de control de acceso (http_access ).
12. Verificación de logs
SQUID almacena en el directorio /var/log/squid
informaci´on sobre los accesos, di´alogos con otros
servidores SQUID, etc. Existen varios archivos de logs, el que
nos brinda informaci´on sobre el acceso al servidor es
access.log. Cuando se entrega a un cliente un objeto que se
encontraba almacenado, se produce un HIT y si el objeto debe
ser consultado hacia internet entonces es un MISS.El analisis
de los logs por lo general se realiza con herramientas de
software independientes de SQUID.
Dos de las m´as utilizadas son SARG (Squid Analysis Report
Grpahics) y Webalizer, las mismas generan reportes gráficos
con estadísticas en un archivo html. Son una excelente
herramienta para llevar un control detallado sobre la
utilización de la navegación web.
13. ejemplo
Una servidor proxy simple podr´ıa definirse de la siguiente manera:
Listas de control de acceso:
#---parametros globales---#
visible_hostname squid1
http_port 3128
icp_port 3130
cache_dir ufs /var/cache/squid 400 16 256
#---consulta de cach´es---#
#cache_peer <host> <type> <http_port> <icp_port> <options>
cache_peer 192.168.1.252 parent 3128 7 no-query default
cache_peer 192.168.1.108 sibling 3128 3130 proxy-only
#--- ACL---#
14. ejemplo
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl webserver dst 192.168.1.10/255.255.255.255
acl todalared src 192.168.1.0/255.255.255.0
#--- Reglas de control de acceso---#
http_access allow manager localhost
http_access deny manager
never_direct allow !webserver
http_access allow todalared
http_access deny all
icp_access allow all