GNU/Linux >> Tutoriales Linux >  >> Panels >> Webmin

Servidor proxy de calamar

Este artículo explica qué es un servidor proxy HTTP o FTP y luego explica cómo se puede usar Webmin para configurar el popular servidor proxy Squid.

Contenido

Introducción a Proxying y Squid

Un servidor proxy HTTP es básicamente un programa que acepta solicitudes de direcciones URL de los clientes, las obtiene en nombre del cliente y devuelve los resultados al cliente. Los proxies se utilizan en redes donde los clientes no tienen acceso directo a Internet pero aún necesitan poder ver páginas web. También se usa un proxy para almacenar en caché las páginas más solicitadas, de modo que si más de un cliente quiere ver la misma página, solo tiene que descargarla una vez.

Muchas empresas y organizaciones tienen sus cortafuegos configurados para bloquear todo el tráfico entrante y saliente de los sistemas en las LAN internas. Esto se puede hacer por razones de seguridad o para limitar a lo que los empleados pueden acceder en Internet. Debido a que poder ver páginas web es extremadamente útil, a menudo se configura un proxy para que se pueda acceder a los sitios web a través de él.

Las grandes organizaciones y los ISP con muchas PC cliente que acceden a la web también pueden querer ejecutar un servidor proxy para reducir la carga en sus redes. Debido a que una de las tareas principales de un proxy es almacenar en caché las páginas solicitadas por los clientes, cualquier página solicitada más de una vez se devolverá del caché en lugar de obtenerse del servidor de origen. Por esta razón, los sistemas de los clientes a menudo se configuran o se les obliga a usar un proxy de almacenamiento en caché para acceder a la web.

Un proxy solo es útil si los navegadores de los clientes están configurados para usarlo en lugar de conectarse directamente a los sitios web. Afortunadamente, todos los navegadores web existentes y casi todos los programas que descargan archivos a través de HTTP para varios propósitos pueden configurarse para usar un proxy. Esto les indica que, en su lugar, realicen una conexión HTTP proxy especial al servidor proxy, especificando la URL completa para descargar.

Los proxies no son solo para HTTP:también pueden admitir solicitudes de protocolo FTP y Gopher de los clientes, a las que atienden mediante una conexión FTP o Gopher al servidor solicitado real. Incluso las conexiones SSL cifradas pueden ser manejadas por un proxy, aunque no pueda descifrar la solicitud. En su lugar, el proxy simplemente reenvía todos los datos del cliente al servidor de destino y viceversa.

Squid es el servidor proxy más popular para sistemas Unix/Linux. Es de código abierto y está disponible gratuitamente para su descarga desde www.squid-cache.org, y se incluye como paquete estándar con todas las distribuciones de Linux y muchos otros sistemas operativos. Squid admite el uso de proxy, el almacenamiento en caché y la aceleración de HTTP, y tiene una gran cantidad de opciones de configuración para controlar el comportamiento de estas funciones.

Squid lee su configuración del archivo de texto squid.conf, que generalmente se encuentra en o debajo del directorio /etc. Este archivo consta de una serie de directivas, una por línea, cada una de las cuales tiene un nombre y un valor. Cada directiva establece alguna opción, como el puerto TCP para escuchar o un directorio para almacenar archivos en caché. El módulo Squid de Webmin edita este archivo directamente, ignorando cualquier comentario o directiva que no entienda.

Se han lanzado muchas versiones de Squid a lo largo de los años, cada una de las cuales ha admitido diferentes directivas de configuración o ha asignado diferentes significados a las mismas directivas. Esto significa que un archivo squid.conf de la versión 2.0 puede no ser compatible con Squid 2.5, y uno de Squid 2.5 ciertamente no funcionará con la versión 2.0. Afortunadamente, Webmin sabe qué directivas admite cada versión y solo permite editar aquellas que son conocidas por la versión en ejecución de Squid.

Las páginas web almacenadas en caché se almacenan en archivos en una estructura de directorios de varios niveles para aumentar el rendimiento del sistema de archivos. Squid se puede configurar para usar varios directorios de caché separados, de modo que pueda distribuir archivos en diferentes discos para mejorar el rendimiento. Cada vez que se solicita una página almacenable en caché, se almacena en un archivo, de modo que cuando llega una solicitud posterior para la misma página, el archivo se puede leer y los datos se entregan a partir de él. Debido a que algunas páginas web cambian con el tiempo (o incluso se generan dinámicamente), Squid realiza un seguimiento de las fechas de última modificación y caducidad de las páginas web para que pueda borrar los datos del caché cuando no estén actualizados.

El programa real que maneja las solicitudes de los clientes es un proceso de servidor en ejecución permanente llamado squid. También puede iniciar varios otros subprocesos para tareas como búsquedas de DNS o autenticación de clientes, pero todo el procesamiento real del protocolo HTTP se realiza en el proceso maestro único. A diferencia de otros servidores similares como Apache o Sendmail, Squid no inicia ni utiliza subprocesos para gestionar las solicitudes de los clientes.

Squid se puede compilar en todas las versiones de Unix compatibles con Webmin y funciona casi de manera idéntica en todas ellas. Esto significa que la interfaz de usuario del módulo Webmin también es la misma en todos los sistemas operativos, con la excepción de las rutas predeterminadas que utiliza para los programas y archivos de configuración de Squid.

El módulo del servidor proxy Squid

Si desea instalar o configurar Squid desde Webmin, deberá usar el módulo Squid Proxy Server, que se encuentra en la categoría Servidores. Cuando se hace clic en su icono, aparecerá la página que se muestra en la siguiente captura de pantalla, suponiendo que Squid esté instalado y configurado correctamente. Como puede ver, la página principal consta solo de una tabla de iconos, en cada uno de los cuales se puede hacer clic para abrir un formulario para editar la configuración en esa categoría.


La página principal del módulo Squid

Si no ha configurado o iniciado Squid en su sistema antes, es probable que el directorio de caché aún no se haya configurado. El módulo detectará esto y mostrará un mensaje como *Su directorio de caché de Squid /var/spool/squid no se ha inicializado* encima de la tabla de iconos. Para inicializar el caché, sigue estos pasos  :

  1. Si no está satisfecho con el directorio de caché que se muestra, ahora es el momento de cambiarlo. Siga las instrucciones de la sección *Agregar directorios de caché* para definir sus propios directorios antes de continuar.
  2. En el como usuario de Unix ingrese el nombre del usuario que será el propietario de los archivos de caché y con el que se ejecutará el proceso del daemon. Por lo general, este será un usuario especial de squid creado para el propósito (y el campo se establecerá de forma predeterminada en squid si existe tal usuario), pero de hecho, cualquier usuario lo hará. Sin embargo, recomiendo usar el módulo Usuarios y grupos (cubierto en el capítulo 4) para crear un usuario llamado squid cuyo directorio de inicio sea el directorio de caché si es necesario.
  3. Haga clic en Inicializar caché botón. La configuración de Squid se actualizará para usar el nombre de usuario elegido y el comando squid -z se ejecutará para configurar los directorios de caché. Todos los resultados que produzca se mostrarán para que pueda ver cómo progresa la inicialización.
  4. Cuando se complete el proceso, regrese a la página principal del módulo y el mensaje de error debería haber desaparecido.

Si Squid no está instalado en su sistema (o está instalado en una ubicación diferente a la que espera Webmin), aparecerá un mensaje de error como El archivo de configuración de Squid /etc/squid.conf no existe aparecerá en la página principal en lugar de la tabla de iconos. Si realmente lo tiene instalado, lea la sección *Configuración del módulo Squid Proxy Server* para obtener instrucciones sobre cómo cambiar las rutas que utiliza el módulo. Por otro lado, si realmente no está instalado, debe usar el módulo Paquetes de software (cubierto en SoftwarePackages) para instalar el paquete squid desde su sitio web o CD de distribución de Linux.

Si no existe dicho paquete para su sistema operativo, deberá descargar, compilar e instalar la última versión de Squid desde www.squid-cache.org. Mientras tenga un compilador instalado en su sistema, este es un proceso relativamente simple sin dependencias.

Una vez que el servidor está instalado, si desea utilizarlo a largo plazo, debe hacer arreglos para que se inicie en el momento del arranque, utilizando el módulo Bootup and Shutdown (cuyo capítulo 9 explica cómo usarlo). Todos los paquetes de Linux incluyen un script de acción de arranque para Squid, aunque puede estar deshabilitado de forma predeterminada, lo que requiere que lo habilites en ese módulo. De lo contrario, deberá crear una acción que ejecute un comando como
/usr/local/squid/bin/squid  -sY
, asumiendo que tiene Squid instalado en /usr/local/squid.

Una vez que se haya instalado e inicializado Squid, puede comenzar a usar este módulo. Cuando se ejecuta Squid, cada página tiene dos enlaces en la parte superior:Aplicar cambios lo que obliga a volver a leer la configuración actual y Stop Squid que cierra el servidor proxy. Si el servidor no se está ejecutando, esos enlaces se reemplazan con *Start Squid*, que como su nombre indica intenta iniciarlo. Si aún no se está ejecutando, probablemente desee iniciarlo ahora.

Debido a que cada versión de Squid ha introducido nuevas directivas de configuración, la interfaz de usuario de este módulo aparecerá de manera diferente según la versión de Squid que detecte en su sistema. Todas las instrucciones de este capítulo están escritas para Squid 2.4, ya que actualmente es la versión más implementada. Si está ejecutando una versión más antigua o más nueva, pueden aparecer diferentes campos en los formularios o tener más o menos opciones. Por ejemplo, cada nueva versión ha introducido diferentes tipos de ACL y la autenticación se ha manejado de tres maneras diferentes a lo largo de la historia del programa. Sin embargo, los conceptos básicos siempre han sido los mismos.

Cuando utilice este módulo, asegúrese de que su navegador esté configurado para no utilizar el proxy Squid para acceder a su servidor Webmin. De lo contrario, corre el riesgo de cortar su propio acceso al módulo si comete un error de configuración o apaga el proceso del servidor. Todos los navegadores que pueden usar un proxy tienen un campo para enumerar hosts a los que conectarse directamente, en el que puede ingresar el nombre de host de su servidor Webmin.

Cambiar los puertos y direcciones proxy

De forma predeterminada, Squid escucha las solicitudes de proxy en el puerto TCP 3128 en todas las direcciones IP de su sistema. Debido a que este no es el puerto habitual en el que se ejecutan los servidores proxy (8000 y 8080 parecen ser los más comunes), es posible que desee cambiarlo. También es posible que desee editar la dirección de escucha para que solo los clientes de su red interna puedan conectarse, si su sistema tiene más de una interfaz de red.

Para especificar los puertos que utiliza Squid, siga estos pasos :

  1. En la página principal del módulo, haga clic en Puertos y redes para abrir el formulario que se muestra en la Figura 44-2.
  2. En las Direcciones y puertos de proxy seleccione la opción *Enumerados a continuación*. En la siguiente tabla, cada fila define un puerto de escucha y, opcionalmente, una dirección a la que vincularse. Se enumerarán todos los puertos y direcciones existentes, seguidos de una sola fila en blanco para agregar uno nuevo. En el primer campo vacío del Puerto columna, ingrese un número de puerto como 8000 o 8080 . En la columna *Nombre de host/dirección IP*, seleccione Todos para aceptar conexiones en cualquiera de las interfaces de su sistema, o la segunda opción para ingresar una dirección IP en el cuadro de texto adyacente. Usando esta tabla, Squid se puede configurar para escuchar en tantos puertos como desee. Sin embargo, debido a que solo aparece una fila en blanco a la vez, deberá guardar y volver a abrir el formulario para agregar más de un nuevo puerto.
  3. ICP es un protocolo utilizado por Squid para comunicarse con otros servidores proxy en un clúster. Para escuchar en un puerto que no sea el predeterminado 3130 para ICP, complete el puerto ICP campo. Sin embargo, esto generalmente no es necesario, ya que solo otros proxies usan este protocolo.
  4. Squid normalmente aceptará conexiones ICP en cualquier dirección IP. Para cambiar esto, seleccione el segundo botón de radio en el campo *Dirección UDP entrante* e ingrese una de las IP de la interfaz de su sistema en su campo de texto. Esto puede ser útil si todos los otros proxies con los que su servidor podría querer comunicarse están en una sola LAN interna.
  5. Haga clic en Guardar en la parte inferior de la página para actualizar el archivo de configuración con su nueva configuración, luego haga clic en el enlace *Aplicar cambios* en la página principal para activarlos.


El formulario de puertos y redes

Agregar directorios de caché

En su configuración predeterminada habitual, Squid utiliza un solo directorio para almacenar páginas en caché. Como máximo, se almacenarán 100 MB de datos en este directorio, lo que probablemente no sea suficiente si se atiende a una gran cantidad de clientes activos. Si su sistema tiene más de un disco duro, tiene sentido distribuir el caché en varios discos para mejorar el rendimiento. Esto se puede hacer especificando varios directorios, cada uno con su propio tamaño máximo.

En un sistema dedicado a ejecutar un servidor proxy, la cantidad máxima de caché en cada directorio debe ser de aproximadamente el 90 % del espacio disponible. No es aconsejable configurar o permitir que Squid use todo el espacio libre en disco, ya que muchos sistemas de archivos sufren un rendimiento reducido cuando están casi llenos. Además, el espacio en disco también puede ser utilizado por archivos de registro y datos de usuario. Si Squid llena todo su disco duro, pueden ocurrir problemas porque otros programas no pueden crear archivos temporales o escribir en los registros.

Para agregar un nuevo directorio de caché y especificar el tamaño máximo para el existente, sigue estos pasos :

  1. Haga clic en Opciones de caché en la página principal del módulo para que aparezca el formulario que se muestra en la siguiente captura de pantalla.
  2. En los directorios de caché campo, seleccione el Enumerado opción. Si Predeterminado fue elegido antes, Squid habrá estado usando el único directorio de caché predeterminado compilado que se muestra entre paréntesis. Si desea continuar usando este directorio, debe ingresarlo explícitamente en la tabla. El tamaño predeterminado es de 100 MB y utiliza 16 directorios de primer nivel y 256 de segundo nivel. Cada fila de la tabla especifica un solo directorio de caché. Todos los directorios existentes (aparte del predeterminado) se enumerarán para que pueda editarlos, seguidos de una sola fila en blanco. Cada fila tiene campos debajo de las siguientes columnas :
    • Directorio La ruta completa al directorio de caché de nivel superior, como /var/spool/squid o /disco2/caché . Este directorio ya debe existir y ser propiedad del usuario que ejecuta Squid (generalmente llamado squid); el módulo no lo creará por usted.
    • Tipo El tipo de almacenamiento utilizado en el directorio. Siempre debe seleccionar UFS aquí.
    • Tamaño (MB) La cantidad máxima de datos que contendrá, en megabytes. Una vez que se alcance este límite, los archivos más antiguos no solicitados serán reemplazados por otros nuevos.
    • Directorios de primer nivel El número de subdirectorios que se crearán bajo el directorio de caché. El valor predeterminado de 16 suele estar bien, pero es posible que desee aumentarlo para cachés muy grandes.
    • Directorios de segundo nivel El número de subdirectorios que se crearán en cada directorio de primer nivel. Solo debe ingresar 256 a menos que su caché sea muy grande.
    • Opciones Deje este campo en blanco; solo se usa para otros tipos de directorio. Si se pregunta por qué Squid necesita crear dos niveles de subdirectorios debajo de cada directorio de caché, la razón es el bajo rendimiento de muchos sistemas de archivos cuando un directorio contiene una gran cantidad de archivos. Debido a que cada página o imagen HTML almacenada en caché se almacena en un archivo separado, la cantidad de archivos en un sistema proxy ocupado puede ser enorme. Distribuirlos en varios directorios resuelve este problema.
  1. Después de agregar un directorio, haga clic en Guardar botón en la parte inferior de la página. Si desea agregar más de uno, deberá hacer clic en Opciones de caché icono de nuevo para volver a mostrar la tabla con una nueva fila vacía.
  2. Cuando haya terminado de definir los directorios, regrese a la página principal del módulo. Si se ha agregado uno nuevo, aparecerá un mensaje de error como Sus directorios de caché de Squid no se han inicializado será mostrado. Haga clic en Inicializar caché para que Squid cree todos los subdirectorios en cualquier nuevo directorio de caché. El servidor se apagará durante el proceso y

se reinicia cuando se completa.

  1. Una vez completada la inicialización, haga clic en Aplicar cambios enlace en cualquier página para comenzar a usar sus nuevos directorios.


El formulario de opciones de caché

Edición de opciones de caché y proxy

Squid tiene numerosas configuraciones que limitan el tamaño de los objetos almacenados en caché, el tamaño de las solicitudes de los clientes y los tipos de páginas para almacenar en caché. Se pueden usar para evitar que el servidor almacene archivos enormes (como imágenes ISO descargadas), para limitar el tamaño de los archivos que los clientes pueden cargar o descargar y para evitar la caché de páginas que cambian con frecuencia (como las generadas por secuencias de comandos CGI). ). Sin embargo, los valores predeterminados generalmente funcionarán bien, con la posible excepción del tamaño máximo de carga, que es de solo 1 MB.

Para editar las opciones de almacenamiento en caché, sigue estos pasos :

  1. Haga clic en Opciones de caché icono en la página principal para mostrar el formulario que se muestra arriba nuevamente.
  2. Para establecer el número máximo de archivos subidos, seleccione la segunda opción en Tamaño máximo del cuerpo de la solicitud campo, introduzca un número en el cuadro de texto y seleccione algunas unidades del menú. 10 o 100 MB deberían ser más que suficientes para cualquiera.
  3. Para evitar que los clientes descarguen archivos grandes, complete el campo *Tamaño máximo del cuerpo de respuesta* de la misma manera. Esto se puede usar para evitar el abuso de su red por parte de los clientes que descargan películas grandes o archivos ISO, pero a menudo se puede subvertir descargando un archivo grande en partes.
  4. Si desea establecer un límite superior en el archivo que se puede almacenar una página en el caché, complete el Tiempo máximo de caché campo en lugar de dejarlo establecido en Predeterminado . De lo contrario, los datos se almacenarán en caché hasta por un año, o hasta la fecha de vencimiento establecida por el servidor de origen.
  5. Además de almacenar en caché los archivos descargados, Squid recordará los mensajes de error de los servidores y los devolverá a los clientes que soliciten la misma página. Puede cambiar la cantidad de tiempo que los errores se almacenan en caché ingresando un número y seleccionando unidades en Tiempo de caché de solicitud fallida campo. Si Predeterminado se elige, los errores se almacenarán en caché durante 5 minutos. Incluso esto puede ser irritantemente largo si acaba de corregir un error en un sitio web.
  6. Squid almacenará en caché las respuestas a las búsquedas de nombres de host para reducir la cantidad de actividad de DNS, independientemente de los TTL que proporcionen los servidores DNS. Si Predeterminado está seleccionado en el campo *Tiempo de caché de búsqueda de DNS*, las respuestas se recordarán durante 6 horas. Si esto parece demasiado para usted, seleccione el segundo botón de opción e ingrese su propio tiempo de caché en su lugar.
  7. No almacenar URL en caché para ACL El campo se puede usar para evitar completamente el almacenamiento en caché de ciertas URL, servidores web o clientes. Cualquier solicitud que coincida con una de las ACL marcadas en este campo nunca se almacenará en caché y, por lo tanto, siempre se obtendrá directamente. Puede usar esta función para bloquear el almacenamiento en caché de páginas generadas dinámicamente creando una URL Path Regexp ACL para .cgi o cgi-bin y seleccionándolo aquí. Consulte la sección *Uso de listas de control de acceso* para obtener más detalles sobre cómo funcionan y se pueden definir las ACL.
  8. Presiona Guardar en la parte inferior de la página para volver al menú principal. Debido a que algunas opciones adicionales de almacenamiento en caché se encuentran en el formulario de uso de memoria y disco, haga clic en Uso de memoria icono para mostrarlo.
  9. Para limitar la cantidad de memoria que utilizará Squid, complete el Límite de uso de memoria campo. Tenga en cuenta que este límite solo afecta la memoria máxima utilizada para almacenar archivos en tránsito y de acceso frecuente, y respuestas negativas. Debido a que Squid usa la memoria para otros fines, ciertamente consumirá más de lo que ingrese aquí. Si Predeterminado se selecciona, se aplicará un límite de 8 MB, que probablemente sea demasiado bajo para un servidor ocupado.
  10. Para evitar el almacenamiento en caché de archivos de gran tamaño, complete el campo *Tamaño máximo de objeto almacenado en caché*. El valor predeterminado es solo 4 MB, por lo que si tiene mucho espacio en disco, definitivamente debería aumentarlo.
  11. Presiona Guardar en la parte inferior del formulario y luego Aplicar cambios enlace en la página principal para activar todas sus nuevas configuraciones.

Introducción a las listas de control de acceso

Las ACL (listas de control de acceso) son posiblemente la característica más poderosa de Squid. Una ACL es simplemente una prueba que se aplica a la solicitud de un cliente para ver si coincide o no. Luego, en función de las ACL con las que coincida cada solicitud, puede optar por bloquearla, evitar el almacenamiento en caché, forzarla a un grupo de retraso o transferirla a otro servidor proxy. Existen muchos tipos diferentes de ACL; por ejemplo, un tipo verifica la dirección IP de un cliente, otro coincide con la URL solicitada, mientras que otros verifican el puerto de destino, el nombre de host del servidor web, el usuario autenticado, etc.

El uso más común de las ACL es bloquear conexiones de clientes fuera de su red. Si ejecuta un servidor proxy que está conectado y accesible desde Internet, los hosts fuera de su red local no deberían poder usarlo. Las personas malintencionadas a menudo usan otros servidores proxy para lavar las conexiones utilizadas para piratear, enviar spam o acceder a sitios web a los que no se les debería permitir.

Debido a que la solicitud de proxy especial CONNECT se puede usar para conectarse a cualquier puerto, a menudo se usa una ACL para bloquear su uso para cualquier puerto que no sea 443 (el valor predeterminado de SSL). Esto evita que los usuarios usen su proxy para conectarse a servidores que no sean servidores web, como AIM, ICQ o MSN. De manera similar, se puede configurar una ACL para bloquear solicitudes HTTP normales a puertos como 22, 23 y 25, que normalmente se usan para SSH, telnet y SMTP.

Simplemente definir una ACL en la configuración de Squid en realidad no hace nada; debe aplicarse de alguna manera para que tenga algún efecto. Esta sección explica cómo usarlos para controlar qué solicitudes a su servidor están permitidas o denegadas. Otras secciones explican cómo se relacionan con el almacenamiento en caché y el acceso a otros servidores.

Cuando recibe una solicitud, Squid primero determina qué ACL coincide. Luego compara esta lista de coincidencias con una lista de restricciones de proxy, cada una de las cuales contiene una o más ACL y una acción para realizar (ya sea Permitir o Denegar). Tan pronto como se encuentra una restricción que coincide con las ACL de la solicitud, su acción determina si la solicitud se permite o se deniega. Si no coincide ninguna restricción, se aplica lo contrario de la última acción de la lista. Por esta razón, la acción final en la mayoría de las configuraciones de Squid es Permitir todo. o Rechazar todo .

Las solicitudes de ICP de otros proxies también se verifican para ver qué ACL coinciden y se comparan con una lista similar pero diferente de restricciones de ICP para ver si se permitirán o no. Consulte Conexión a otros proxies más adelante para obtener una explicación más compleja de qué es ICP y cuándo se usa.

La configuración predeterminada típica de Squid incluye varias ACL y restricciones de proxy. Por razones de seguridad, todas las solicitudes desde cualquier lugar se rechazan de forma predeterminada. Esto significa que deberá cambiar la lista de restricciones antes de que alguien pueda usar su proxy. Siga leyendo para descubrir cómo.

Para ver las listas de ACL definidas, restricciones de proxy y restricciones de ICP, haga clic en Control de acceso icono en la página principal del módulo. Como muestra la siguiente imagen, a la izquierda se muestra una tabla de ACL que muestra sus nombres, tipos y coincidencias. A la derecha hay tablas de restricciones de proxy e ICP que muestran sus acciones y las ACL con las que coinciden. Las tablas de restricciones tienen flechas hacia arriba y hacia abajo junto a cada entrada para moverlas en la lista, porque su orden es importante.


La página de listas de control de acceso

Antes de que los clientes puedan usar su proxy, deberá configurarlo para permitir el acceso desde algunas direcciones. Los pasos para hacerlo son :

  1. En la página de control de acceso, seleccione Dirección del cliente en el menú debajo de la lista de ACL existentes. Al hacer clic en Crear nueva ACL aparecerá un formulario para ingresar direcciones coincidentes.
  2. En el nombre de ACL campo ingrese un nombre corto como su red .
  3. En el campo vacío bajo De IP ingrese la dirección IP inicial en el rango para permitir, como 192.168.1.1.
  4. Si el campo debajo de A IP ingrese la dirección final en el rango, como 192.168.1.100 . Solo los clientes que se encuentren dentro de este rango coincidirán con la ACL. NO ingrese nada en la Máscara de red campo.
  5. Como alternativa, puede especificar una red IP ingresando la dirección de red en De IP y la máscara de red (como 255.255.255.0 ) en la máscara de red campo. Para ingresar más de uno, deberá guardar y volver a editar esta ACL para que aparezcan nuevos campos en blanco.
  6. Haga clic en Guardar para agregar la ACL y volver a la página de control de acceso en la que aparecerá su nueva ACL.
  7. Haga clic en Agregar restricción de proxy debajo de las restricciones de proxy mesa.
  8. En el formulario que aparece, seleccione Permitir de la Acción campo.
  9. En Coincidir ACL lista, seleccione su nueva su red LCA.
  10. Haga clic en Guardar en este formulario para volver a la página de control de acceso nuevamente. La nueva restricción se mostrará en la parte inferior de la tabla, muy probablemente debajo de Denegar todo. entrada.
  11. Haga clic en la flecha hacia arriba junto a su nueva restricción para moverla arriba de Denegar todo . Esto le dice a Squid que permita conexiones desde su red y rechace a todos los demás.
  12. Finalmente, haga clic en Aplicar cambios enlace en la parte superior de la página. El proxy ahora podrá ser utilizado por clientes en su red interna, ¡pero nadie más!

Estas instrucciones asumen que está comenzando con la configuración predeterminada de Squid. Si el proxy ya se ha configurado para permitir el acceso desde cualquier lugar (cambiando la opción Denegar todo restricción para Permitir todo ), debe volver a cambiarlo para bloquear clientes fuera de su red. Para obtener más información sobre los tipos de ACL disponibles y cómo usarlos, lea las siguientes dos secciones.

Creación y edición de ACL

Antes de que pueda bloquear o permitir solicitudes de alguna dirección, a algún servidor o para alguna página, deberá crear una ACL adecuada. Los pasos básicos para hacerlo son :

  1. Seleccione el tipo de ACL que desea crear en el menú desplegable debajo de la tabla *Listas de control de acceso* y haga clic en el botón* Crear nueva ACL*.
  2. En el formulario que aparece, ingrese un nombre para su nueva ACL en Nombre de ACL campo. Si más de uno tiene el mismo nombre, se tratará como coincidente si alguna ACL con ese nombre coincide. El nombre debe constar únicamente de letras y números, sin espacios ni caracteres especiales.
  3. Complete el resto del formulario como se explica en la siguiente tabla.
  4. En la URL fallida ingrese una URL completa a la que se redirigirá a los clientes a los que esta ACL les deniegue. Esto le permite definir páginas de error personalizadas que se mostrarán en lugar de las respuestas predeterminadas de Squid.
  5. Haga clic en Guardar botón en la parte inferior del formulario.

Una vez que se ha creado una ACL, puede editarla haciendo clic en su nombre en la lista, cambiando los campos y haciendo clic en Guardar . O puede eliminarlo (si no está en uso por algún proxy o restricción de ICP) con Eliminar botón. Como de costumbre, la opción Aplicar cambios El enlace debe usarse para activar cualquier cambio que realice.

Squid tiene una cantidad asombrosa de tipos de ACL, aunque no todos están disponibles en todas las versiones del servidor. La siguiente tabla enumera las que puede crear para Squid 2.4 y explica qué hacen y qué significan los campos en el formulario de creación para una ACL de cada tipo :

Muchos tipos de ACL son inapropiados para ciertas situaciones. Por ejemplo, si un cliente envía una solicitud CONNECT, la ruta de URL no está disponible y, por lo tanto, una URL Path Regexp ACL no funcionará. En casos como este, se asume automáticamente que la ACL no coincide.

Crear y editar restricciones de proxy

Una vez que haya creado algunas ACL, puede ponerlas en uso creando, editando y moviendo las restricciones de proxy. Squid comparará cada solicitud con todas las restricciones definidas en orden, y se detendrá cuando encuentre una que coincida. La acción establecida para esa restricción determina si la solicitud se permite o se deniega. Este sistema de procesamiento combinado con el poder de las ACL le permite configurar algunas reglas de control de acceso increíblemente complejas; por ejemplo, podría denegar todo acceso a sitios con terremoto en la URL entre las 9 a. m. y las 5 p. m. de lunes a viernes, excepto para ciertas direcciones de clientes.

Para crear una restricción de proxy, sigue estos pasos :

  1. Haga clic en el Control de acceso en la página principal del módulo para abrir la página que se muestra en la captura de pantalla anterior.
  2. Haga clic en Agregar restricción de proxy debajo de la lista de restricciones existentes para ir al formulario de creación.
  3. De la Acción seleccione el campo Permitir o Denegar dependiendo de si desea que se procesen o no las solicitudes coincidentes.
  4. Las coincidencias de ACL La lista se puede utilizar para seleccionar varias ACL que, si todas coinciden, activarán la acción. Del mismo modo, No coincide con las ACL El campo se puede usar para seleccionar ACL que no deben coincidir para que se active la acción. Es perfectamente válido hacer selecciones de ambas listas para indicar que la acción debe activarse solo si todas las ACL de la izquierda coinciden y las de la derecha no. En su configuración predeterminada, Squid tiene una ACL llamada todos que coincide con todas las solicitudes. Puede ser útil para crear restricciones que permitan o denieguen a todos, una de las cuales suele existir por defecto.
  5. Haga clic en Guardar para crear la nueva restricción y volver a la página de control de acceso.
  6. Use las flechas junto a él en las Restricciones de proxy mesa para moverla a la ubicación correcta. Si su lista termina con un Denegar todo entrada, tendrá que moverlo de la parte inferior para que tenga algún efecto. Si la lista tiene una entrada que permite a todos los clientes de su red y acaba de agregar una restricción para denegar el acceso a algunos sitios, deberá moverla arriba de Permitir entrada también para que sea utilizada.
  7. Cuando haya terminado de crear y colocar restricciones, presione Aplicar cambios enlace en la parte superior de la

página para activarlos.

Después de que se haya creado una restricción de proxy, puede editarla haciendo clic en el enlace en la Acción columna para su fila en la tabla. Aparecerá un formulario de edición idéntico al utilizado para crear la restricción, pero con Guardar y Eliminar botones en la parte inferior. El primero guardará los cambios que realice en la acción o las ACL coincidentes, mientras que el segundo eliminará la restricción por completo. De nuevo, Aplicar cambios El enlace debe usarse después de actualizar o eliminar una restricción para que el cambio esté activo. Si por algún motivo elimina todas las restricciones de proxy, Squid permitirá todas las solicitudes de todos los clientes, lo que probablemente no sea una buena idea.

También en la página de control de acceso hay una tabla para editar y crear restricciones que se aplican a las solicitudes de ICP. As the *Connecting to other proxies* section explains, ICP is a protocol used by Squid proxies in a cluster or hierarchy to determine what URLs other servers have cached. You can add to and edit entries in the ICP restrictions table in exactly the same way as you would for proxy restrictions. If you really are running a cluster of proxies, it may make sense to block ICP requests from sources other than your own network. If not, the default setup that allows all ICP packets is fine.

Setting up proxy authentication

Even though it is possible to configure Squid to allow access only from certain IP addresses, you may want to force clients to authenticate themselves to the proxy as well. This might make sense if you want to give only certain people access to the web, and cannot use IP address validation due to the use of dynamically assigned addresses on your network. It is also handy for keeping track of who has requested what through the proxy, as usernames are recorded in the Squid logs.

All browsers and programs that can make use of a proxy also support proxy authentication. Browsers will pop up a login window for entering a username and password to be sent to the proxy the first time it requests them, and automatically send the same information for all subsequent requests. Other programs (such as wget or rpm) require the username and password to be specified on the command line.

Each login and password received by Squid is passed to an external authentication program which either approves or denies it. Typically this program checks against a separate users file, but it is possible to write your own programs that use all sorts of methods of validating users - for example, they might be looked up in a database, or an LDAP server, or the Unix user list. Webmin comes with a simple program that reads users from a text file in the same format as is used by Apache, and this module allows you to edit users in such a file.

The steps to turn on authentication for your Squid proxy are :

  1. On the module's main page, click on the Access Control icon to bring up the form shown in Figure 44-4.
  2. Select External Auth from the menu below the ACL table and hit the Create new ACL botón.
  3. In the form that appears, enter auth for the ACL name and select All users in the External auth users campo. Then, hit the Save button.
  4. Click on Add proxy restriction below proxy restrictions table.
  5. Select Deny in the Action field and choose your new auth ACL from the Don’t match ACLs lista. This will block any proxy requests that are not authenticated, thus forcing clients to log in.
    Selecting Allow and then choosing auth from the Match ACLs field can be used for a slightly different purpose. This creates a proxy restriction that allows access to all authenticated clients, which can be positioned to force clients outside your network to log in while not requiring it for those inside the network.
  6. Haga clic en Guardar button to return to the access control page again.
  7. Use the up arrow next to the new restriction to move it above any entry in the table that allows all access from your own network. If it is below this entry, clients from the network will be able to use the proxy without needing to log in at all. Of course, this may be what you want in some cases.
  8. Click on the Authentication Programs icon back on the main page.
  9. From the Authentication program field, select Webmin default . This tells the module to use the simple text-file authenticator that comes with the module so that you don’t have to write your own. Of course, you can specify your own custom program by selecting the last radio button and entering the full path to a script with some parameters in the adjacent text box. This program must continually read lines containing a username and password (separated by a space) as input, and for each output either the line OK or ERR for success or failure, respectively. Squid will run several instances of the program as permanent daemon processes when it is started.
  10. The login window that appears in browsers includes a description of the proxy server that the user is logging into. By default, this is Squid proxy-caching web server, but you can enter your own (such as Example Corporation Proxy) by filling in the Proxy authentication realm field.
  11. Normally, Squid will cache valid logins for one hour to avoid calling on the authentication program for every single request. This means that password changes may take up to an hour to take effect, which can be confusing. To lower this limit, at the cost of increased system load and slightly slower request processing, edit the Time to cache passwords for field.
  12. Hit the Save button and then click on Apply Changes on the main page.

Now that authentication is enabled, any attempts to use your proxy from a web browser will cause a login window to appear. Because no valid users have been defined yet, no logins will be accepted, which is not particularly useful! To create some users for authentication, follow these steps:

  1. Click on the Proxy Authentication icon on the module’s main page to bring up a table listing proxy users. At first, this will be empty.
  2. Click on the Add a new proxy user link above or below the table to display the user creation form. Configuring Logging 595
  3. Enter a login name into the Username field and a password for the user in the Password field.
  4. To temporarily disable this user without deleting him, change the Enabled? field to No.
  5. Hit the Create button to add the user and then click the Apply Changes link. This last step is necessary after creating a user for the changes to take effect, as Webmin’s Squid authentication program only reads the user file when first started.

A user can be edited by clicking on its name in the proxy users list, changing the username, password, or enabled status, and hitting the Save botón. You can also completely remove a user with the Delete en su formulario de edición. Again, Apply Changes must be clicked to make anymodifications or deletions active. Squid will also cache valid passwords (as explained above) to reduce the load on theauthentication program, so a password change may take some time to take effect.

The module’s user management feature will only work if you choose Webmin default in the Authentication program field or if your own custom program takes the full path to an Apache-style users file as a parameter. If your program validates users against some other database or server, or if the module cannot figure out which file contains users from the command, the Proxy Authentication icon will not appear. Sometimes you may want to allow normal UNIX users to log in to your program with the same passwords that they use for telnet and FTP. Even though it is possible to write a program that does proxy authentication against the UNIX user database, there is another solution—configuring the module to add, delete, and update proxy users whenever a UNIX user is created, removed, or renamed. This is most useful for keeping usernames and passwords in sync without needing to grant access to every single UNIX user. Once you have normal authentication set up as explained above, synchronization can be turned on by following these steps:

  1. On the module’s main page, click on the Module Config link in the top-left corner.
  2. As their names suggest, the Create proxy users when creating system users, Update proxy users when updating system users, and Delete proxy users when deleting system users fields control the automatic creation, modification, and deletion of proxy users when the same thing happens to a UNIX user. For each one, you can either select Yes or No. You should probably turn on synchronization for updates and deletions, but leave it off for creations so that you can explicitly control who gets access to the proxy.
  3. Hit the Save button at the bottom of the form to activate the new settings. From now on, actions performed in Webmin’s Users and Groups module will also affect the Squid user list in the ways you have chosen. Adding a user at the command line with useradd or changing a password with the passwd command, however, will not.

Webmin
  1. Cómo instalar y configurar Squid Proxy en Ubuntu 20.04

  2. Cómo instalar y configurar Squid Proxy en Debian 11

  3. Cómo instalar y configurar Squid Proxy en Rocky Linux/Alma Linux 8

  4. Cómo instalar Squid Proxy en AlmaLinux 8

  5. Cómo instalar el servidor proxy Squid en Ubuntu 18.04 LTS

Cómo configurar Squid Proxy Server en Ubuntu 20.04 LTS

Cómo instalar el último Squid Proxy Server en Linux

Instale Squid Proxy Server en Ubuntu 20.04 LTS Linux

Instale Squid Proxy Server en Rocky Linux 8 y AlmaLinux 8

Cómo crear un proxy HTTP usando Squid en CentOS 8

Cómo instalar el servidor proxy Squid en Ubuntu 18.04