Configuración de Squid Proxy Server con acceso restringido y configuración de clientes para usar proxy-Parte 5

Configuración de Squid Proxy Server con acceso restringido y configuración de clientes para usar proxy-Parte 5

Un ingeniero certificado por Linux Foundation es un profesional capacitado que tiene la experiencia para instalar, administrar y solucionar problemas de servicios de red en sistemas Linux, y está a cargo del diseño, implementación y mantenimiento continuo de la arquitectura de todo el sistema.

 Configurando Squid Proxy Server  Configuración del servidor proxy Squid Ingeniero certificado por Linux Foundation-Parte 5

Presentación del programa de certificación Linux Foundation.

En la Parte 1 de esta serie, mostramos cómo instalar squid, un servidor de caché proxy para clientes web. Consulte esa publicación (enlace a continuación) antes de continuar si aún no ha instalado squid en su sistema.

  1. Parte 1: Instalar servicios de red y configurar el inicio automático en el arranque

En este artículo, le mostraremos cómo configurar el servidor proxy Squid para otorgar o restringir el acceso a Internet, y cómo configurar un cliente http, o navegador web, para usar ese servidor proxy.

Configuración de mi entorno de prueba Sistema operativo del servidor Squid: Debian Wheezy 7.5 Dirección IP: 192.168.0.15 Nombre de host: dev2.gabrielcanepa.com.ar Cliente Máquina 1 Sistema operativo: Ubuntu 12.04 Dirección IP: 192.168.0.104 Nombre de host: ubuntuOS.gabrielcanepa. com.ar Cliente Máquina 2 Sistema operativo: CentOS-7.0-1406 Dirección IP: 192.168.0.17 Nombre de host: dev1.gabrielcanepa.com.ar

Recordemos que, en términos simples, un servidor proxy web es un intermediario entre uno (o más) equipos cliente y un determinado recurso de red, siendo el más común el acceso al Internet. En otras palabras, el servidor proxy está conectado por un lado directamente a Internet (o a un enrutador que está conectado a Internet) y por el otro lado a una red de computadoras cliente que accederán a la World Wide Web a través de él.

freestar.config.enabled_slots.push

Quizás se esté preguntando, ¿por qué querría agregar otra pieza de software a mi infraestructura de red?

Estas son las 3 razones principales:

1. Squid almacena archivos de solicitudes anteriores para acelerar futuras transferencias . Por ejemplo, supongamos que client1 descarga CentOS-7.0-1406-x86_64-DVD.iso de Internet. Cuando client2 solicita acceso al mismo archivo, squid puede transferir el archivo desde su caché en lugar de descargarlo nuevamente de Internet. Como puede adivinar, puede usar esta función para acelerar las transferencias de datos en una red de computadoras que requieren actualizaciones frecuentes de algún tipo.

2. Las ACL ( Listas de control de acceso ) nos permiten restringir el acceso a sitios web y/o monitorear el acceso por usuario. Puede restringir el acceso según el día de la semana, la hora del día o el dominio, por ejemplo.

3. Eludir los filtros web es posible mediante el uso de un proxy web al que se realizan solicitudes y que devuelve el contenido solicitado a un cliente, en lugar de que el cliente lo solicite directamente a Internet.

Por ejemplo, suponga que ha iniciado sesión en cliente1 y desea acceder a www.facebook.com a través del enrutador de su empresa. Dado que el sitio puede estar bloqueado por las políticas de su empresa, puede conectarse a un servidor proxy web y hacer que solicite acceso a www.facebook.com . Luego, el contenido remoto se le devuelve a través del servidor proxy web nuevamente, sin pasar por las políticas de bloqueo del enrutador de su empresa.

Configuración de Squid-Conceptos básicos

El esquema de control de acceso del servidor proxy web Squid consta de dos componentes diferentes:

  1. Los elementos ACL son líneas directivas que comienzan con la palabra “ acl ” y representan tipos de pruebas que se realizan contra cualquier transacción de solicitud. .
  2. Las reglas de la lista de acceso consisten en una acción de permitir o denegar seguida de una serie de elementos de ACL, y se utilizan para indicar qué acción o limitación debe aplicarse para una determinada pedido. Se verifican en orden y la búsqueda de listas termina tan pronto como una de las reglas coincide. Si una regla tiene varios elementos de ACL, se implementa como una operación booleana AND (todos los elementos de ACL de la regla deben coincidir para que la regla coincida).

Squid’s El archivo de configuración principal es /etc/squid/squid.conf , que tiene ~ 5000 líneas ya que incluye tanto las directivas de configuración como la documentación. Por esa razón, crearemos un nuevo archivo squid.conf con solo las líneas que incluyen directivas de configuración para nuestra conveniencia, dejando fuera las líneas vacías o comentadas. Para hacerlo, usaremos los siguientes comandos.

# mv/etc/squid/squid.conf/etc/squid/squid.conf.bkp

Y luego,

# grep-Eiv ‘ (^ # | ^ $) ‘/etc/squid/squid.conf.bkp O # grep-ve ^ #-ve ^ $/etc/squid/squid.conf.bkp>/etc/squid/squid.conf  Copia de seguridad del archivo de configuración de Squid  Archivo de configuración de Squid de respaldo Archivo de configuración de Squid de respaldo

Ahora, abra el archivo squid.conf recién creado y busque (o agregue) los siguientes elementos ACL y listas de acceso.

acl localhost src 127.0.0.1/32 acl localnet src 192.168.0.0/24

Las dos líneas anteriores representan un ejemplo básico del uso de elementos ACL .

  1. La primera palabra, acl , indica que esta es una línea de directiva de elemento ACL.
  2. La segunda palabra, localhost o localnet , especifique un nombre para la directiva.
  3. La tercera palabra, src en este caso, es un tipo de elemento ACL que se utiliza para representar la dirección IP de un cliente o un rango de direcciones, respectivamente. Puede especificar un solo host por IP (o nombre de host, si tiene algún tipo de resolución de DNS implementada) o por dirección de red.
  4. El cuarto parámetro es un argumento de filtrado que es “ alimentado ”a la directiva.

Las dos líneas siguientes son reglas de lista de acceso y representan una implementación explícita de las directivas ACL mencionadas más temprano. En pocas palabras, indican que se debe otorgar acceso http si la solicitud proviene de la red local ( localnet ) o de localhost . Específicamente, ¿cuál es la red local permitida o las direcciones de host locales? La respuesta es: las especificadas en las directivas localhost y localnet.

http_access allow localnet http_access allow localhost Squid ACL Permitir acceso  Squid ACL Permitir acceso Squid ACL Allow Access List

En este punto, puede reiniciar Squid para aplicar los cambios pendientes.

# service squid restart [Upstart/distribuciones basadas en sysvinit] # systemctl restart squid.service [distribuciones basadas en systemd]

y luego configurar un navegador cliente en la red local ( 192.168.0.104 en nuestro caso) para acceder a Internet a través de su proxy de la siguiente manera.

En Firefox

1.. Vaya al menú Editar y elija la opción opción Preferencias .

2.. Haga clic en Avanzado , luego en la pestaña Red y finalmente en Configuración

3.. Verifique la Configuración manual del proxy e ingrese la dirección IP del servidor proxy y el puerto donde está escuchando conexiones.

Configurar proxy en Firefox  Configurar Proxy en Firefox Configurar Proxy en Firefox

Nota. que de forma predeterminada, Squid escucha en el puerto 3128 , pero puede anular este comportamiento editando la regla de la lista de acceso que comienza con http_port (de forma predeterminada, dice http_port 3128 ).

4.. Haga clic en Aceptar para aplicar los cambios y estará listo.

Verificar que un cliente está accediendo Internet

Ahora puede verificar que su cliente de red local está accediendo a Internet a través de su proxy de la siguiente manera.

1.. En su cliente, abra una terminal y escriba

# ip address show eth0 | grep-Ei ‘(inet. * eth0)’

Ese comando mostrará la dirección IP actual de su cliente ( 192.168.0.104 en la siguiente imagen).

2.. En su cliente, utilice un navegador web para abrir cualquier sitio web ( www.tecmint.com en este caso).

3.. En el servidor, ejecute.

# tail-f/var/log/squid/access.log

y obtendrá una vista en vivo de las solicitudes siendo servido a través de Squid .

 Comprobar la navegación del proxy Squid  Comprobar la navegación del proxy Squid Check Proxy Browsing

Restricción del acceso del cliente

Ahora suponga que desea denegar explícitamente el acceso a esa dirección IP de cliente en particular, mientras mantiene el acceso para el resto de la red local.

1.. Defina una nueva ACL directiva de la siguiente manera (la he llamado ubuntuOS pero puedes nombrarla como quieras).

acl ubuntuOS src 192.168.0.104

2.. Agregue la directiva ACL a la lista de acceso a la red local que ya está en su lugar, pero precediéndola con un signo de exclamación. Esto significa, “ Permita el acceso a Internet a los clientes que coincidan con la directiva ACL localnet, excepto al que coincida con la directiva ubuntuOS “.

http_access allow localnet! UbuntuOS

3.. Ahora necesitamos reiniciar Squid para poder aplicar los cambios. Entonces, si intentamos navegar a cualquier sitio, encontraremos que el acceso está denegado ahora.

 Bloquear acceso a Internet  Bloquear el acceso a Internet Bloquear el acceso a Internet

Configuración de Squid-Ajuste fino

Restringir el acceso por dominio y/o por hora del día/día de la semana

Para restringir el acceso a Squid por dominio usaremos la palabra clave dstdomain en una directiva ACL , como sigue.

acl forbidden dstdomain “/etc/squid/forbidden_domains”

Donde forbidden_domains es un archivo de texto sin formato que contiene los dominios a los que deseamos denegar el acceso.

 Bloquear dominios en Squid  Bloquear dominios en Squid Bloquear el acceso a los dominios

Finalmente, debemos otorgar acceso a Squid para las solicitudes que no coincidan directiva anterior.

http_access allow localnet! forbidden

O tal vez solo queremos permitir el acceso a esos sitios durante una determinada hora del día ( 10:00 a 11:00 am ) solo el lunes (M) , Miércoles (W) y Viernes (F) .

acl someDays time MWF 10: 00-11: 00 http_access allow forbidden someDays http_access deny forbidden

De lo contrario, se bloqueará el acceso a esos dominios.

Restringir el acceso mediante autenticación de usuario

Squid admite varios mecanismos de autenticación (Basic, NTLM, Digest, SPNEGO y Oauth) y ayudantes (base de datos SQL, LDAP, NIS, NCSA, por nombrar algunos). En este tutorial usaremos la autenticación básica con NCSA .

Agregue las siguientes líneas a su archivo /etc/squid/squid.conf .

auth_param basic program/usr/lib/squid/ncsa_auth/etc/squid/passwd auth_param basic credentialsttl 30 minutos auth_param basic caseensitive on auth_param basic realm Servidor web de almacenamiento en caché de proxy Squid para la serie LFCE de Tecmint acl ncsaccess_auth Permitido> Nota. en CentOS 7. el complemento NCSA para squid se puede encontrar en /usr/lib64/squid/basic_nsca_auth. así que cambie en consecuencia en la línea anterior.

 Autenticación de Squid NCSA  Autenticación de Squid NCSA Habilitar la autenticación NCSA

Algunas aclaraciones:

 Configurar Squid Caching en Linux Configurar Squid Caching en Linux Habilitar el almacenamiento en caché en Squid

Segundo c lient ( IP 192.168.0.17 ) descarga el mismo archivo en 1,4 segundos.

 Verificar el almacenamiento en caché de Squid  Verificar el almacenamiento en caché de Squid Verificar el almacenamiento en caché de Squid

Esto se debe a que el archivo se entregó desde el caché de Squid (indicado por TCP_HIT/200 ) en el segundo caso, a diferencia de la primera instancia, cuando se descargó directamente de Internet (representado por TCP_MISS/200 ).

Las palabras clave HIT y MISS , junto con el código de respuesta 200 http , indican que el archivo se entregó correctamente en ambas ocasiones, pero la caché fue HIT y Perdida respectivamente. Cuando el caché no puede atender una solicitud por algún motivo, Squid intenta hacerlo desde Internet.

 Códigos HTTP de Squid  Códigos HTTP de Squid Códigos HTTP de Squid

Conclusión

En este artículo hemos discutido cómo configurar un proxy de caché web Squid . Puede utilizar el servidor proxy para filtrar el contenido utilizando un criterio elegido, y también para reducir la latencia (ya que las solicitudes entrantes idénticas se atienden desde la caché, que está más cerca del cliente que el servidor web que en realidad está sirviendo el contenido, lo que resulta en un proceso más rápido transferencias de datos) y el tráfico de red (reduciendo la cantidad de ancho de banda utilizado, lo que le permite ahorrar dinero si paga por el tráfico).

Es posible que desee consultar el sitio web de Squid para obtener más documentación ( asegúrese de consultar también la wiki), pero no dude en ponerse en contacto con nosotros si tiene alguna pregunta o comentario. ¡Estaremos más que encantados de saber de usted!