Configurar El Servidor Proxy Squid En
Ubuntu
A continuación te hablaremos claramente sobre Cómo Configurar El
Servidor Proxy Squid En Ubuntu. Servidor Squid y su instalación en el
sistema Linux. En este post, vamos a seguir para configurar el servidor proxy
Squid paso a paso y con imágenes que lo harán todo más fácil, continuemos.
Requisitos previos
Máquina con Ubuntu o Debian instalado
Usuario Sudo
Nota: Los comandos y procedimientos discutidos en este artículo han
sido probados en Ubuntu 20.04 LTS (Focal Fossa). Los mismos
comandos y procedimientos son también válidos para la distribución
Debian.
Cómo Configurar El Servidor Proxy Squid En Ubuntu
El archivo de configuración del servidor proxy Squid se encuentra
en /etc/squid/squid.conf.list. Este archivo contiene directivas a través de las
cuales se configura el servidor proxy Squid.
Configurar Squid para que escuche en un puerto
diferente
Por defecto, el servidor proxy Squid escucha en el puerto 3128 para el tráfico
procedente de las máquinas cliente. Sin embargo, puedes configurarlo para
que escuche en algún puerto diferente al predeterminado utilizando la
directiva http_port.
Lee: Cómo Arreglar Paquetes Rotos En Ubuntu [Tutorial]
Edita la configuración de Squid usando el siguiente comando:
$ sudo nano /etc/squid/squid.conf
Ahora encuentra la siguiente entrada en el archivo de configuración.
Nota: Puede usar Ctrl+W para buscar cualquier línea. Presione
Ctrl+W, escriba las palabras clave y presione Enter.
http_port 3128
Ahora reemplaza 3128 con el número de puerto que quieres que el servidor
proxy Squid escuche, digamos 3155:
http_port 3155
Ahora, reinicia el servicio del servidor proxy Squid para que los cambios surtan
efecto:
$ sudo service squid restart
Configurar el nombre de host para el servidor proxy
Squid
Puedes configurar el nombre de host para el servidor proxy Squid si no puedes
determinar el nombre de host de la máquina por sí mismo. Para configurar el
nombre de host, puedes utilizar la directiva visible_hostname. Este nombre
es utilizado por Squid en los mensajes de error, URLs internas, listados de
directorios FTP, etc.
Edita la configuración de Squid usando el siguiente comando:
$ sudo nano /etc/squid/squid.conf
Ahora añade la siguiente entrada en el archivo de configuración
sustituyendo <nombre_de_host> por cualquier nombre que quieras
establecer como nombre de host para el servidor proxy Squid. No es
necesario utilizar el nombre real de tu sistema.
visible_hostname <host_name>
Por ejemplo, para establecer «Linux» como nombre de host del servidor proxy
Squid, la entrada sería:
visible_hostname linux
Una vez que hayas terminado con las configuraciones, guarda y sal del archivo
de configuración.
Ahora, reinicia el servicio proxy Squid para que los cambios de configuración
surtan efecto.
$ sudo service squid restart
En caso de que el cliente Squid reciba alguna página de error, verás el nombre
de host listado 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 por defecto de la memoria caché de Squid es de 256 MB. Para
cambiar el tamaño de la memoria caché de Squid, se utiliza la
directiva cache_mem.
Edita el archivo de configuración utilizando el siguiente comando:
$ sudo nano /etc/squid/squid.conf
A continuación, busca la siguiente entrada en el archivo de configuración y
sustituye 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 la caché a 512 MB, la entrada se
cambiaría a:
cache_mem 512 MB
Una vez que hayas terminado con las configuraciones, guarda y sal del archivo
de configuración.
Ahora, reinicia el servicio squid para aplicar los cambios:
$ sudo service squid restart
Especificación de los servidores de nombres DNS a
utilizar
Por defecto, Squid utiliza /etc/resolv.conf para resolver los nombres de
dominio. Si deseas que Squid utilice un servidor de nombres diferente, puede
hacerlo utilizando la directiva dns_nameservers. Edita la configuración de
Squid usando el siguiente comando:
$ sudo nano /etc/squid/squid.conf
Ahora agrega la siguiente entrada en el archivo de configuración
reemplazando:
dns_nameservers <IP address of DNS server>
Por ejemplo, para establecer 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 hayas terminado con las configuraciones, guarda y sal del archivo.
Ahora, reinicia el servicio squid para aplicar los cambios:
$ sudo service squid restart
Controlando el acceso al servidor proxy
Continúa leyendo y mira como hacerlo.
Cómo funcionan las ACL de Squid
Para el control de acceso, las ACL se utilizan en combinación con la directiva
de control de acceso. Las ACL por sí solas no sirven de nada, solo ayudan a
identificar las peticiones de los usuarios basándose en varias reglas. Para
permitir o denegar el acceso, se combinan con la directiva http_access.
Para definir ACL, la sintaxis es:
acl NAME TYPE value
Ejemplo: Permitir el tráfico de la LAN a través del servidor proxy Squid
Para permitir el tráfico proveniente de la 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 definida la ACL, puedes utilizar la directiva http_access para
permitir/denegar el acceso. Esta es la sintaxis de la directiva http_access:
http_access allow|deny NAME
Donde NOMBRE identifica el tráfico al que se quiere permitir/denegar el
acceso.
Para permitir el tráfico identificado en la ACL, tendrás que añadir la siguiente
directiva http_access en el archivo de configuración de Squid:
http_access allow myacl
Configuración de las 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
quieras permitir el acceso al servidor proxy solo desde la red interna.
1. Para configurar las fuentes permitidas, edita el archivo de configuración de
Squid:
$ sudo nano /etc/squid/squid.conf
2. Ahora, busca la entrada acl localnet src.
Nota: Para buscar una entrada en el editor Nano, pulsa Ctrl+w y
escribe la expresión que deseas buscar. En el caso del ejemplo anterior,
pulse Ctr+w y escribe acl localnet src como se muestra en la siguiente
captura de pantalla.
3. Aquí, verás el número de entradas para diferentes rangos de direcciones IP.
Aquí, añade una entrada para tu red como se muestra a continuación:
acl localnet src subnet_ID/subnet_mask
Por ejemplo, tu red local funciona en la subred 192.168.72.0/24. En este caso,
la entrada sería:
acl localnet src 192.168.72.0/255.255.255.0
4. Ahora, utilizando la directiva http_access, permita las fuentes identificadas
por la acl llamada localnet definida anteriormente. La directiva http_access ya
está definida en el configurado, solo hay que buscarla y descomentarla.
Busca la entrada #http_access allow localnet y luego descomente quitando el
carácter #.
http_access allow localnet
Ahora guarda y sal del archivo de configuración de squid.
3. Ahora, reinicia el servicio squid usando el siguiente comando:
$ sudo service squid restart
Negar el acceso a ciertos sitios web en el servidor
proxy Squid
Para denegar el acceso a algunos sitios web en el servidor proxy Squid, crea
un archivo y liste todos los sitios web a los que quieres denegar el acceso.
$ sudo nano /etc/squid/deniedsites.acl
Ahora liste los sitios a los que quiere negar el acceso y luego guarda y sal del
archivo.
.msn.com
.yahoo.com
.bbc.com
A continuación, edita el archivo de configuración de Squid utilizando el
siguiente comando:
$ sudo nano /etc/squid/squid.conf
Ahora cree una regla ACL para los sitios web denegados y menciona el archivo
que contiene la lista de sitios web denegados.
acl denied_sites dstdomain “/etc/squid/deniedsites.acl”
La regla ACL denied_sites coincidirá con todas las solicitudes destinadas a los
sitios web enumerados en el archivo «/etc/squid/deniedsites.acl«.
Ahora tendrás que añadir la directiva http_access para denegar los sitios web
identificados por la regla ACL anterior denominada denied_sites. Añade la
siguiente línea en el archivo de configuración de Squid:
http_access deny denied_sites
Una vez que hayas terminado con las configuraciones, guarda y sal del archivo.
Ahora, reinicia el servicio Squid usando el siguiente comando:
$ sudo service squid restart
Configuración de la autenticación del cliente proxy
Squid
Con el servidor proxy Squid, podemos añadir una autenticación básica basada
en el usuario para tener algo de seguridad. Para ello, utilizaremos el
programa htpasswd que viene con el servidor HTTP Apache. Luego
crearemos un archivo que contendrá nombres de usuario y contraseñas para
la autenticación.
1. Primero, tendremos que instalar Apache2-utils. Utiliza el siguiente
comando para hacerlo:
$ apt install -y apache2-utils
2. Ahora crea el archivo passwd en el directorio /etc/squid para almacenar las
contraseñas:
$ touch /etc/squid/passwd
3. Utiliza el siguiente comando para establecer la propiedad al usuario
«proxy»:
$ chown proxy: /etc/squid/passwd
4. Ahora añade un usuario en el archivo /etc/squid/passwd:
htpasswd /etc/squid/passwd tin
Escribe una contraseña y confírmala volviendo a introducirla. Ahora el usuario
y tu contraseña cifrada se guardarán en el archivo /etc/squid/passwd.
5. Edita el archivo /etc/squid/squid.conf utilizando el siguiente comando:
$ sudo nano /etc/squid/squid.conf
Ahora agrega 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 los 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. Abre un navegador web en tu sistema. Aquí usaremos el navegador Firefox.
2. Ve a la esquina superior derecha de tu navegador y haz clic en el icono de
las tres barras horizontales. A continuación, haz clic en Opciones.
3. A continuación, en la barra de búsqueda, escribe 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. Selecciona el botón de la opción Configuración manual del proxy. A
continuación, escribe la dirección IP del servidor proxy Squid en el campo
Proxy HTTP y el número de puerto en el campo Puerto. Además, marque la
casilla Utilizar también este proxy para FTP y HTTPS. A continuación, haz clic
en Aceptar.
Ahora, para comprobar si el servidor Squid está funcionando, intenta acceder
a cualquier sitio web en tu navegador. Verás un diálogo de autenticación.
Introduce el nombre de usuario y la contraseña de Squid que ha creado antes
y haz clic en Aceptar.
Ahora deberías 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 diciendo «El servidor
proxy está rechazando las conexiones».