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

A Ingeniero certificado de la Fundación Linux es un profesional calificado que tiene la experiencia para instalar, administrar y solucionar problemas de redes en sistemas Linux, y está a cargo del diseño, implementación y mantenimiento continuo de la arquitectura de todo el sistema.

Ingeniero certificado de la Fundación Linux - Parte 5

Presentación del programa de certificación de la Fundación Linux.

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

  1. Parte 1 - Instale los servicios de red y la configuración del 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 un navegador web, para usar ese servidor proxy.

Mi configuración de entorno de prueba

Servidor de calamar
Sistema operativo: Debian Wheezy 7.5 Dirección IP: 192.168.0.15 Nombre de host: Dev2.Gabrielcanepa.comunicarse.Arkansas 
Máquina cliente 1
Sistema operativo: Ubuntu 12.04 Dirección IP: 192.168.0.104 nombre de host: ubuntuos.Gabrielcanepa.comunicarse.Arkansas 
Máquina del cliente 2
Sistema operativo: CentOS-7.0-1406 Dirección IP: 192.168.0.17 Nombre de host: dev1.Gabrielcanepa.comunicarse.Arkansas 

Recordemos que, en términos simples, un servidor de proxy web es un intermediario entre una (o más) computadoras clientes y un cierto recurso de red, el más común es el acceso a Internet. En otras palabras, el servidor proxy está conectado en un lado directamente a Internet (o a un enrutador que está conectado a Internet) y, por otro lado.

Quizás se pregunte, ¿por qué querría agregar otro software más a mi infraestructura de red??

Aquí están las 3 principales razones:

1. SQUID TRORDE ARCHIVOS DE SOLICIONES PRERIVADAS PARA ACETAR FUTURAS TRANSFERES. Por ejemplo, supongamos cliente1 descargas CENTOS-7.0-1406-X86_64-DVD.Yo asi desde Internet. Cuando cliente2 Solicita acceso al mismo archivo, Squid puede transferir el archivo desde su caché en lugar de descargarlo nuevamente desde 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. ACLS (Listas de control de acceso) Permítanos restringir el acceso a los sitios web y / o monitorear el acceso por usuario. Puede restringir el acceso en función del día de la semana o la hora del día, o el dominio, por ejemplo.

3. Omitiendo filtros web se hace posible mediante el uso de un proxy web al que se realizan las solicitudes y que devuelve 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 quiero acceder www.Facebook.comunicarse a través del enrutador de su empresa. Dado que el sitio puede ser bloqueado por las políticas de su empresa, puede conectarse a un servidor proxy web y hacer que solicite acceso a www.Facebook.comunicarse. Luego se le devuelve el contenido remoto a través del servidor de proxy web, evitando las políticas de bloqueo del enrutador de su empresa.

Configuración de calamares: lo básico

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

  1. El Elementos de ACL son líneas directivas que comienzan con la palabra "LCA"Y representar tipos de pruebas que se realizan en cualquier transacción de solicitud.
  2. El Reglas de la lista de acceso consiste en un permitir o denegar Acción seguida de una serie de elementos de ACL, y se utilizan para indicar qué acción o limitación debe aplicarse para una solicitud determinada. Se revisan en orden y la búsqueda de listas termina tan pronto como una de las reglas es una coincidencia. Si una regla tiene múltiples elementos de ACL, se implementa como un booleano y operación (todos los elementos de ACL de la regla deben ser una coincidencia para que la regla sea una coincidencia).

El archivo de configuración principal de Squid es /etc/calamar/calamar.confusión, cual es ~ 5000 líneas hace mucho tiempo que incluye directivas de configuración y documentación. Por esa razón, crearemos un nuevo calamar.confusión Archivo con solo las líneas que incluyen directivas de configuración para nuestra comodidad, dejando de lado las líneas vacías o comentadas. Para hacerlo, usaremos los siguientes comandos.

# mv/etc/calamar/calamar.conf/etc/calamar/calamar.confusión.BKP 

Y luego,

# grep -eiv '(^# |^$)'/etc/calamar/calamar.confusión.bkp o # grep -ve ^ # -ve ^$/etc/calamar/calamar.confusión.bkp>/etc/calamar/calamar.confusión 
Archivo de configuración de calamar de respaldo

Ahora, abra el recién creado calamar.confusión archivo, y busque (o agregue) lo siguiente LCA elementos y listas de acceso.

ACL Localhost SRC 127.0.0.1/32 ACL Localnet SRC 192.168.0.24/04 

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

  1. La primera palabra, LCA, indica que esta es una línea de directiva de elementos ACL.
  2. La segunda palabra, hostil o billete local, especificar un nombre para la directiva.
  3. La tercera palabra, SRC En este caso, es un tipo de elemento ACL que se utiliza para representar una dirección IP del cliente o una gama de direcciones, respectivamente. Puede especificar un solo host por IP (o nombre de host, si tiene algún tipo de resolución DNS implementada) o por dirección de red.
  4. El cuarto parámetro es un argumento filtrante que es "alimentado"A la directiva.

Las dos líneas a continuación son lista de acceso reglas y representar una implementación explícita del LCA Directivas mencionadas anteriormente. En pocas palabras, indican que acceso http debe otorgarse si la solicitud proviene de la red local (billete local), o de hostil. Específicamente, ¿cuál es la red local permitida o las direcciones host locales?? La respuesta es: los especificados en las directivas LocalHost y Localnet.

http_access Permitir localnet http_access permitir localhost 
Squid ACL Permitir la lista de acceso

En este punto puedes reiniciar Calamar Para aplicar cualquier cambio pendiente.

# Service Squid Reint [Upstart / Sysvinit Based Distributions] # SystemCTL Reiniciar calamar.Servicio [distribuciones basadas en Systemd] 

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

En Firefox

1. Ve a la Editar menú y elija el Preferencias opción.

2. Haga clic en Avanzado, luego en el Red pestaña, y finalmente en Ajustes

3. Controlar Configuración de proxy manual e ingresa el dirección IP del servidor proxy y el puerto donde está escuchando las conexiones.

Configurar proxy en Firefox

Nota Que de forma predeterminada, Squid escucha en el puerto 3128, Pero puede anular este comportamiento editando el lista de acceso regla que comienza con http_port (por defecto se lee http_port 3128).

4. Hacer clic DE ACUERDO Para aplicar los cambios y listo.

Verificar que un cliente está accediendo a 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 un Terminal y escribir,

# Dirección IP Mostrar eth0 | grep -ei '(inet.*eth0) ' 

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

2. En su cliente, use un navegador web para abrir cualquier sitio web dado (www.tecmenta.comunicarse en este caso).

3. En el servidor, ejecute.

# cola -f/var/log/squid/access.registro 

y obtendrá una vista en vivo de las solicitudes que se atienden a través de Calamar.

Verifique la navegación de proxy

Restringir el acceso por el cliente

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

1. Definir un nuevo LCA directiva de la siguiente manera (lo he llamado ubuntuos Pero puedes nombrarlo como quieras).

ACL Ubuntuos SRC 192.168.0.104 

2. Añade el LCA directiva al acceso local Lista que ya está en su lugar, pero prefachándola con un signo de exclamación. Esto significa, "Permitir el acceso a Internet a los clientes que coinciden con la Directiva LocalNet ACL, excepto con la que coincide con la Directiva Ubuntuos".

http_access permitir localnet !ubuntuos 

3. Ahora necesitamos reiniciar calamares para aplicar cambios. Entonces, si intentamos navegar en cualquier sitio, encontraremos que el acceso se niega ahora.

Bloquear el acceso a Internet

Configuración de calamares - ajuste fino

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

Para restringir el acceso al calamar por dominio, usaremos el ddominio palabra clave en un LCA Directiva, como sigue.

ACL Prohibido ddomain "/etc/squid/prohibidden_domains" 

Dónde Prohibido_domains es un archivo de texto sin formato que contiene los dominios a los que deseamos negar el acceso.

Bloquear el acceso a los dominios

Finalmente, debemos otorgar acceso a Squid para solicitudes que no coinciden con la Directiva anterior.

http_access permitir localnet !prohibido 

O tal vez solo queremos permitir el acceso a esos sitios durante una cierta hora del día (10:00 hasta 11:00 am) sólo en Lunes (M), Miércoles (W), y Viernes (f).

ACL TIEMPO TIEMPO MWF 10: 00-11: 00 HTTP_ACCESS Permitir prohibidos algunos días http_access negar prohibido 

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

Restringir el acceso por autenticación del usuario

Soporte de calamar varios mecanismos de autenticación (Basic, NTLM, Digest, Spnego y Oauth) y ayudantes (SQL Database, LDAP, NIS, NCSA, por nombrar algunos). En este tutorial utilizaremos la autenticación básica con NCSA.

Agregue las siguientes líneas a su /etc/calamar/calamar.confusión archivo.

Auth_param Programa básico/usr/lib/squid/ncsa_auth/etc/squid/passwd auth_param CredentialStttl 30 minutos Auth_param Cases básicos sensibles en Auth_param Básico Realm Squid Proxy Caching Servidor web para la serie LFCE de TecMint ACL ACL NCSA Proxy_Auth requerido HTTP_ACCESS Permitir NCSACSACSA 

Nota: En Centos 7, El complemento NCSA para calamar se puede encontrar en /usr/lib64/squid/básico_nsca_auth, Así que cambia en consecuencia en la línea anterior.

Habilitar la autenticación de NCSA

Algunas aclaraciones:

  1. Necesitamos decirle a Squid qué programa de autenticación auxiliar utilizar con el auth_param Directiva especificando el nombre del programa (probablemente, /usr/lib/squid/ncsa_auth o /usr/lib64/squid/básico_nsca_auth), más cualquier opción de línea de comando (/etc/calamar/passwd en este caso) si es necesario.
  2. El /etc/calamar/passwd el archivo se crea a través de htpasswd, una herramienta para administrar la autenticación básica a través de archivos. Nos permitirá agregar una lista de nombres de usuario (y sus contraseñas correspondientes) que se permitirá usar calamares.
  3. credencialsttl 30 minutos Requerirá ingresar su nombre de usuario y contraseña cada 30 minutos (puede especificar este intervalo de tiempo con horas también).
  4. distingue mayúsculas y minúsculas ON indica que los nombres de usuario y las contraseñas son confidenciales.
  5. reino representa el texto del diálogo de autenticación que se utilizará para autenticarse en calamar.
  6. Finalmente, el acceso se otorga solo cuando la autenticación proxy (requerido proxy_auth) tiene éxito.

Ejecute el siguiente comando para crear el archivo y agregar credenciales para el usuario gacanepa (omitir el -C indicando si el archivo ya existe).

# htpasswd -c/etc/squid/passwd gacanepa 
Restringir el acceso de calamares a los usuarios

Abra un navegador web en la máquina del cliente e intente navegar a cualquier sitio dado.

Habilitar autenticación de calamares

Si la autenticación tiene éxito, el acceso se otorga al recurso solicitado. De lo contrario, el acceso será denegado.

Uso de caché para acelerar la transferencia de datos

Una de las características distintivas de Squid es la posibilidad de almacenar en caché los recursos solicitados de la web al disco para acelerar las solicitudes futuras de esos objetos, ya sea por el mismo cliente u otros.

Agregue las siguientes directivas en su calamar.confusión archivo.

cache_dir UFS/var/cache/squid 1000 16 256 maximum_object_size 100 mb refresh_pattern .*\.(MP4 | ISO) 2880 

Algunas aclaraciones de las directivas anteriores.

  1. UFS es el formato de almacenamiento de calamar.
  2. /var/caché/calamar es un directorio de nivel superior donde se almacenarán los archivos de caché. Este directorio debe existir y ser escrito por Squid (Squid no creará este directorio para usted).
  3. 1000 es la cantidad (en MB) para usar en este directorio.
  4. dieciséis es el número de subdirectorios de primer nivel, mientras que 256 es el número de subdirectorios de segundo nivel dentro /var/spool/calamar.
  5. El máximo_object_size La directiva especifica el tamaño máximo de los objetos permitidos en el caché.
  6. refresh_pattern le dice a Squid cómo lidiar con tipos de archivos específicos (.mp4 y .Yo asi en este caso) y por cuánto tiempo debe almacenar los objetos solicitados en caché (2880 minutos = 2 días).

El primero y el segundo 2880 son límites inferiores y superiores, respectivamente, en cuánto tiempo los objetos sin un tiempo de vencimiento explícito serán considerados recientes y, por lo tanto, serán atendidos por el caché, mientras que 0% es el porcentaje de la edad de los objetos (tiempo desde la última modificación) que cada objeto sin tiempo de vencimiento explícito se considerará reciente.

Estudio de caso: descargar un .archivo mp4 de 2 clientes diferentes y probar el caché

Primer cliente (IP 192.168.0.104) descarga un 71 MB .mp4 Archivo en 2 minutos y 52 segundos.

Habilitar almacenado en caché en calamares

Segundo cliente (IP 192.168.0.17) descarga el mismo archivo en 1.4 segundos!

Verificar el almacenamiento en caché de los calamares

Eso es porque el archivo fue servido desde el Caché (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).

El GOLPEAR y EXTRAÑAR Palabras clave, junto con el 200 http Código de respuesta, indique que el archivo se sirvió con éxito las dos veces, pero el caché fue golpeado y perdido respectivamente. Cuando la memoria caché no puede ser atendida por alguna razón, entonces SQUID intenta servirla desde Internet.

Códigos HTTP de calamar

Conclusión

En este artículo hemos discutido cómo configurar un Proxy de almacenamiento en caché de calamar. Puede usar 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 el caché, que está más cerca del cliente que el servidor web que realmente sirve al contenido, lo que resulta en más rápido Transferencias de datos) y tráfico de red también (reduciendo la cantidad de ancho de banda usado, que le ahorra dinero si está pagando 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 el wiki), pero no dude en contactarnos si tiene alguna pregunta o comentario. Estaremos más que contentos de saber de ti!

Convertirse en ingeniero certificado de Linux