En nuestra publicación anterior Cómo instalar Squid Proxy Server en Linux, le proporcionamos la introducción básica del servidor Squid y su instalación en el sistema Linux. En esta publicación, haremos un seguimiento para configurar el servidor proxy Squid. Cubriremos los siguientes temas:
- Configurar Squid para escuchar en un puerto diferente
- Configuración del nombre de host para el servidor proxy Squid
- Configurar el tamaño de la memoria caché de Squid
- Especificación de servidores de nombres DNS para usar
- Denegar el acceso a ciertos sitios web en el servidor proxy Squid
- Configurar la autenticación del cliente Squid Proxy
- Configuración de clientes para conectarse a través del servidor proxy Squid
Requisitos
- Máquina con Ubuntu o Debian instalado
- Usuario de Sudo
Configuración de Squid Proxy Server en Linux
El archivo de configuración del servidor proxy Squid se encuentra en /etc/squid/squid.conf .lista. Este archivo contiene directivas a través de las cuales se configura el servidor proxy Squid.
Configurar Squid para escuchar en un puerto diferente
De manera predeterminada, el servidor proxy Squid escucha en el puerto 3128 el tráfico proveniente de las máquinas cliente. Sin embargo, puede configurarlo para escuchar en un puerto diferente al puerto predeterminado usando http_port directiva.
Edite la configuración de squid usando el siguiente comando:
$ sudo nano /etc/squid/squid.conf
Ahora busque la siguiente entrada en el archivo de configuración.
http_port 3128
Ahora reemplaza 3128 con el número de puerto que desea que escuche el servidor proxy Squid, digamos 3155 :
http_port 3155
Ahora, reinicie el servicio del servidor proxy squid para que los cambios surtan efecto:
$ sudo service squid restart
Configuración del nombre de host para el servidor proxy Squid
Puede configurar el nombre de host para el servidor proxy Squid si no puede determinar el nombre de host de la máquina por sí solo. Para configurar el nombre de host, puede usar el visible_hostname directiva. Squid utiliza este nombre en mensajes de error, URL internas, listados de directorios FTP, etc.
Edite la configuración de squid usando el siguiente comando:
$ sudo nano /etc/squid/squid.conf
Ahora agregue la siguiente entrada en el archivo de configuración reemplazando
visible_hostname <host_name>
Por ejemplo, para configurar “linuxways ” como el nombre de host del servidor proxy Squid, la entrada sería:
visible_hostname linuxways
Una vez que haya terminado con las configuraciones, guarde y salga del archivo de configuración.
Ahora, reinicie el servicio de proxy Squid para que los cambios de configuración surtan efecto.
$ sudo service squid restart
En caso de que el cliente de Squid reciba una página de error, verá el nombre de host en la parte inferior de la página web.
Configurar el tamaño de la memoria caché de Squid
Squid almacena en caché el contenido visitado con frecuencia en la memoria. El tamaño predeterminado de la memoria caché de Squid es de 256 MB. Para cambiar el tamaño de la memoria caché de Squid, cache_mem se utiliza la directiva.
Edite el archivo de configuración usando el siguiente comando:
$ sudo nano /etc/squid/squid.conf
Luego busque la siguiente entrada en el archivo de configuración y reemplace 256 por la cantidad a establecer para el tamaño de la memoria caché.
cache_mem 256 MB
Por ejemplo, para establecer el tamaño de caché en 512 MB, la entrada se cambiaría a:
cache_mem 512 MB
Una vez que haya terminado con las configuraciones, guarde y salga del archivo de configuración.
Ahora, reinicie el servicio squid para aplicar los cambios:
$ sudo service squid restart
Especificación de servidores de nombres DNS para usar
Por defecto, Squid usa /etc/resolv.conf para resolver nombres de dominio. Si desea que Squid use un servidor de nombres diferente, puede hacerlo usando dns_nameservers directiva. Edite la configuración de squid usando el siguiente comando:
$ sudo nano /etc/squid/squid.conf
Ahora agregue la siguiente entrada en el archivo de configuración reemplazando:
dns_nameservers <IP address of DNS server>
Por ejemplo, para configurar 8.8.4.4 como servidores de nombres, la entrada sería:
dns_nameservers 8.8.8.8 8.8.4.4
Una vez que haya terminado con las configuraciones, guarde y salga del archivo.
Ahora, reinicie el servicio squid para aplicar los cambios:
$ sudo service squid restart
Controlar el acceso al servidor proxy
Cómo funciona Squid ACL
Para el control de acceso, las ACL se utilizan en combinación con la directiva de control de acceso. ACL solo no sirve, solo ayudan a identificar las solicitudes de los usuarios según varias reglas. Para permitir o denegar el acceso, se combinan con el http_access directiva.
Para definir ACL, la sintaxis es:
acl NAME TYPE value
Ejemplo: Permitir tráfico LAN a través del servidor proxy Squid
Para hacer coincidir el tráfico procedente de LAN 192.168.5.0/24 , necesitaremos crear una regla ACL en el archivo de configuración de Squid:
acl myacl src 192.168.5.0/24
Una vez que se define la ACL, puede usar el http_access directiva para permitir/denegar el acceso. Esta es la sintaxis para http_access directiva:
http_access allow|deny NAME
Donde NOMBRE identifica el tráfico al que desea permitir/denegar el acceso.
Para permitir el tráfico identificado en la ACL, deberá agregar el siguiente http_access directiva en el archivo de configuración de Squid:
http_access allow myacl
Configuración de fuentes proxy para acceder a Internet
En primer lugar, configuraremos las fuentes a las que queremos permitir el acceso a Internet a través del servidor proxy. Por ejemplo, es posible que desee permitir el acceso al servidor proxy solo desde la red interna.
1. Para configurar las fuentes permitidas, edite el archivo de configuración de squid:
$ sudo nano /etc/squid/squid.conf
2. Ahora, busque la entrada acl localnet src .
3. Aquí verá la cantidad de entradas para diferentes rangos de direcciones IP. Aquí, agregue una entrada para su red de la siguiente manera:
acl localnet src subnet_ID/subnet_mask
Por ejemplo, su red local se ejecuta en 192.168.72.0/24 subred. En este caso, la entrada sería:
acl localnet src 192.168.72.0/255.255.255.0
4. Ahora usando el http_access directiva, permita las fuentes identificadas por la acl denominada localnet definido anteriormente. La directiva http_access ya está definida en la configurada, solo necesitas encontrarla y descomentarla.
Busque la entrada #http_access allow localnet y luego descoméntelo eliminando el # personaje.
http_access allow localnet
Ahora guarde y salga del archivo de configuración de squid.
3. Ahora, reinicie el servicio squid usando el siguiente comando:
$ sudo service squid restart
Denegar el acceso a ciertos sitios web en el servidor proxy Squid
Para denegar el acceso a algunos sitios web en el servidor proxy Squid, cree un archivo y enumere todos los sitios web a los que desea denegar el acceso.
$ sudo nano /etc/squid/deniedsites.acl
Ahora enumere los sitios a los que desea denegar el acceso y luego guarde y salga del archivo.
…
.msn.com
.yahoo.com
.bbc.com
…
Luego edite el archivo de configuración de squid usando el siguiente comando:
$ sudo nano /etc/squid/squid.conf
Ahora cree una regla de ACL para los sitios web denegados y mencione el archivo que contiene la lista de sitios web denegados.
acl denied_sites dstdomain “/etc/squid/deniedsites.acl”
La regla ACL denegados_sitios coincidirá con todas las solicitudes destinadas a los sitios web enumerados en "/etc/squid/deniedsites.acl ” archivo.
Ahora deberá agregar el http_access directiva para denegar los sitios web identificados por la regla de ACL anterior llamada denieed_sites . Agregue la siguiente línea en el archivo de configuración de Squid:
http_access deny denied_sites
Una vez que haya terminado con las configuraciones, guarde y salga del archivo.
Ahora, reinicie el servicio de squid usando el siguiente comando:
$ sudo service squid restart
Configuración de la autenticación del cliente Squid Proxy
Con el servidor proxy Squid, podemos agregar autenticación básica basada en el usuario para mayor seguridad. Para ello, utilizaremos el htpasswd programa que viene con el servidor Apache HTTP. Luego crearemos un archivo que contendrá nombres de usuario y contraseñas para la autenticación.
1. Primero, tendremos que instalar Apache2-utils. Use el siguiente comando para hacerlo:
$ apt install -y apache2-utils
2. Ahora cree el archivo passwd en /etc/squid directorio para almacenar contraseñas:
$ touch /etc/squid/passwd
3. Utilice el siguiente comando para establecer la propiedad del usuario "proxy":
$ chown proxy: /etc/squid/passwd
4. Ahora agregue un usuario en /etc/squid/passwd archivo:
htpasswd /etc/squid/passwd tin
Escriba una contraseña y luego confírmela volviendo a ingresarla. Ahora el usuario y su contraseña cifrada se guardarán en /etc/squid/passwd archivo.
5. Edite el /etc/squid/squid.conf archivo usando el siguiente comando:
$ sudo nano /etc/squid/squid.conf
Ahora agregue las siguientes líneas en el archivo:
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwdauth_param basic children 5
auth_param basic realm Squid Basic Authentication
auth_param basic credentialsttl 2 hours
acl auth_users proxy_auth REQUIRED
http_access allow auth_users
Once you are done with the configurations, save and exit the configuration file.
Configuración de clientes para conectarse a través del servidor proxy Squid
En esta sección, configuraremos los clientes para que se conecten a través del servidor proxy Squid.
1. Abra un navegador web en su sistema. Aquí usaremos el Firefox navegador.
2. Vaya a la esquina superior derecha de su navegador y haga clic en el icono de tres barras horizontales. Luego haz clic en Opciones .
3. Luego, en la barra de búsqueda, escriba red . Cuando aparezca el resultado de la búsqueda, haz clic en Configuración. como se puede ver en la siguiente captura de pantalla.
4. Seleccione la Configuración de proxy manual botón de opción Luego escriba la dirección IP del servidor proxy Squid en el Proxy HTTP campo y número de puerto en el Puerto campo. Además, marque Usar también este proxy para FTP y HTTPS caja. Luego haga clic en Aceptar .
Ahora, para verificar si el servidor Squid está funcionando, intente acceder a cualquier sitio web en su navegador. Verá un cuadro de diálogo de autenticación. Introduzca el nombre de usuario y la contraseña de squid que ha creado anteriormente y haga clic en Aceptar .
Ahora debería poder acceder al sitio web solicitado.
Ahora intenta acceder a otro sitio web que hayas bloqueado usando la lista de acceso. El navegador mostrará la siguiente página que dice "El servidor proxy está rechazando las conexiones".
¡Eso es todo! En este artículo, ha aprendido a configurar el servidor proxy Squid en un sistema Linux. Acabamos de discutir las configuraciones básicas. Hay mucho más que puede hacer con el servidor proxy Squid. Visite la documentación oficial para obtener más información.