RESUMEN PROXY Y SQUID
¿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.
 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.
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).
Proxy externo:

 Se suelen usar para implementar cacheos, bloquear
 contenidos, control del tráfico, compartir IP, etc.
ventajas

• Control.
• Ahorro.
• Velocidad.
• Filtrado.
• Modificación
• Anonimato.
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).
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
 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
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
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 ).
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.
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---#
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

RESUMEN PROXY

  • 1.
  • 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ónestraté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:  estaren 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:  Sesuelen usar para implementar cacheos, bloquear contenidos, control del tráfico, compartir IP, etc.
  • 6.
    ventajas • Control. • Ahorro. •Velocidad. • Filtrado. • Modificación • Anonimato.
  • 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ónde 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 allowcomunicació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