Búsqueda de sitios web

Cómo configurar el servidor "Squid Proxy" en Ubuntu y Debian


Squid es el servidor proxy web HTTP de reenvío y almacenamiento en caché más popular que utiliza una amplia gama de empresas para almacenar en caché páginas web desde un servidor web para mejorar la velocidad del servidor web, reducir los tiempos de respuesta y reducir el uso del ancho de banda de la red.

Lea también: Cómo crear un proxy HTTP usando Squid en CentOS 7

En este artículo, explicaremos cómo instalar un servidor proxy squid en distribuciones Ubuntu y Debian y utilizarlo como servidor proxy HTTP.

Cómo instalar Squid en Ubuntu

Antes de comenzar, debes saber que el servidor Squid no tiene ningún requisito, pero la cantidad de utilización de RAM puede variar según los clientes que naveguen por Internet a través del servidor proxy.

El paquete Squid está disponible para instalar desde el repositorio base de Ubuntu, pero antes de eso asegúrese de actualizar sus paquetes ejecutando.

sudo apt update

Una vez que sus paquetes estén actualizados, puede continuar para instalar squid e iniciarlo y habilitarlo al iniciar el sistema usando los siguientes comandos.

sudo apt -y install squid
sudo systemctl start squid
sudo systemctl enable squid

En este punto, su proxy web Squid ya debería estar ejecutándose y podrá verificar el estado del servicio.

sudo systemctl status squid
Salida de muestra
● squid.service - LSB: Squid HTTP Proxy version 3.x
   Loaded: loaded (/etc/init.d/squid; generated)
   Active: active (running) since Tue 2018-12-04 06:42:43 UTC; 14min ago
     Docs: man:systemd-sysv-generator(8)
    Tasks: 4 (limit: 1717)
   CGroup: /system.slice/squid.service
           ├─2761 /usr/sbin/squid -YC -f /etc/squid/squid.conf
           ├─2766 (squid-1) -YC -f /etc/squid/squid.conf
           ├─2768 (logfile-daemon) /var/log/squid/access.log
           └─2772 (pinger)

Dec 04 06:42:43 tecmint systemd[1]: Starting LSB: Squid HTTP Proxy version 3.x...
Dec 04 06:42:43 tecmint squid[2708]:  * Starting Squid HTTP Proxy squid
Dec 04 06:42:43 tecmint squid[2708]:    ...done.
Dec 04 06:42:43 tecmint systemd[1]: Started LSB: Squid HTTP Proxy version 3.x.
Dec 04 06:42:43 tecmint squid[2761]: Squid Parent: will start 1 kids
Dec 04 06:42:43 tecmint squid[2761]: Squid Parent: (squid-1) process 2766 started

A continuación se detallan algunas ubicaciones importantes de archivos Squid que debe tener en cuenta:

  • Archivo de configuración de Squid: /etc/squid/squid.conf
  • Registro de acceso de Squid: /var/log/squid/access.log
  • Registro de caché de Squid: /var/log/squid/cache.log

El archivo de configuración predeterminado contiene algunas directivas de configuración que deben configurarse para afectar el comportamiento de Squid.

Ahora abra este archivo para editarlo usando el editor Vi y realice los cambios como se muestra a continuación.

sudo vim /etc/squid/squid.conf

Ahora, puede buscar las siguientes líneas y cambiarlas según lo solicitado; en el editor Vi, puede buscar esas líneas presionando 'ESC' y escribiendo “/ ”clave para escribir las líneas específicas a buscar.

  • http_port: Este es el puerto predeterminado para el servidor proxy HTTP, por defecto es 3128, puede cambiarlo a cualquier otro puerto que desee, también puede agregar el Etiqueta “transparente” al final de la línea como http_port 8888 transparente para que el proxy Squid actúe como un proxy transparente si lo desea.
  • http_access denegar todo: esta línea no permitirá que nadie acceda al servidor proxy HTTP, es por eso que necesitas cambiarla a http_access permitir a todos para comenzar a usar tu servidor proxy Squid. .
  • visible_hostname: esta directiva se utiliza para establecer el nombre de host específico para un servidor Squid. Puedes darle cualquier nombre de host a Squid.

Después de realizar los cambios anteriores, puede reiniciar el servidor proxy Squid usando el comando.

sudo systemctl restart squid

Configurar Squid como proxy HTTP en Ubuntu

En esta sección de configuración de squid, le explicaremos cómo configurar squid como un proxy HTTP utilizando solo la dirección IP del cliente para la autenticación.

Agregar ACL de Squid

Si desea permitir que solo una dirección IP acceda a Internet a través de su nuevo servidor proxy, deberá definir una nueva acl (lista de control de acceso) en el archivo de configuración.

sudo vim /etc/squid/squid.conf

La regla acl que debes agregar es:

acl localnet src XX.XX.XX.XX

Donde XX.XX.XX.XX es la dirección IP de la máquina cliente. Esta acl debe agregarse al principio de la sección de ACL como se muestra en la siguiente captura de pantalla.

Siempre es una buena práctica definir un comentario junto a ACL que describa quién usa esta dirección IP, por ejemplo.

acl localnet src 192.168.0.102  # Boss IP address

Deberá reiniciar el servicio Squid para que los nuevos cambios entren en vigor.

sudo systemctl restart squid

Abrir puertos en Squid Proxy

De forma predeterminada, solo se permiten ciertos puertos en la configuración de Squid; si desea agregar más, simplemente defínalos en el archivo de configuración como se muestra.

acl Safe_ports port XXX

Donde XXX es el número de puerto que desea permitir. Nuevamente es una buena práctica definir un comentario junto a acl que describa para qué se utilizará el puerto.

Para que los cambios surtan efecto, deberá reiniciar Squid una vez más.

sudo systemctl restart squid

Autenticación del cliente proxy Squid

Para permitir que los usuarios se autentiquen antes de usar el proxy, debe habilitar la autenticación http básica en el archivo de configuración, pero antes de eso debe instalar el paquete apache2-utils usando el siguiente comando.

sudo apt install apache2-utils

Ahora crea un archivo llamado “passwd” que luego almacenará el nombre de usuario para la autenticación. Squid se ejecuta con el usuario “proxy”, por lo que el archivo debería ser propiedad de ese usuario.

sudo touch /etc/squid/passwd
sudo chown proxy: /etc/squid/passwd
ls -l /etc/squid/passwd

Ahora crearemos un nuevo usuario llamado "tecmint" y configuraremos su contraseña.

sudo htpasswd /etc/squid/passwd tecmint

New password: 
Re-type new password: 
Adding password for user tecmint

Ahora, para habilitar la autenticación http básica, abra el archivo de configuración.

sudo vim /etc/squid/squid.conf

Después de las ACL de los puertos, agregue las siguientes líneas:

auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
auth_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

Guarde el archivo y reinicie Squid para que los nuevos cambios surtan efecto:

sudo systemctl restart squid

Bloquear sitios web en Squid Proxy

Para bloquear el acceso a sitios web no deseados, primero cree un archivo llamado “blacklisted_sites.acl” que almacenará en él los sitios incluidos en la lista negra.

sudo touch /etc/squid/blacklisted_sites.acl

Ahora agregue los sitios web a los que desea bloquear el acceso, por ejemplo.

.badsite1.com
.badsite2.com

El procedimiento punto informa a squid que bloquee todas las referencias a esos sitios, incluidos www.badsite1, subsite.badsite1.com, etc.

Ahora abra el archivo de configuración de Squid.

sudo vim /etc/squid/squid.conf

Justo después de las ACL anteriores, agregue las dos líneas siguientes:

acl bad_urls dstdomain "/etc/squid/blacklisted_sites.acl"
http_access deny bad_urls

Ahora guarde el archivo y reinicie Squid:

sudo systemctl restart squid

Bloquear palabras clave específicas con Squid

Para bloquear una lista de palabras clave, primero cree un archivo llamado “blockkeywords.lst” que almacenará en él las palabras clave incluidas en la lista negra.

sudo touch /etc/squid/blockkeywords.lst

Ahora agregue las palabras clave cuyo acceso desea bloquear, por ejemplo.

facebook
instagram
gmail

Ahora abra el archivo de configuración de Squid y agregue la siguiente regla.

acl blockkeywordlist url_regex "/etc/squid/blockkeywords.lst"
http_access deny blockkeywordlist

Ahora guarde el archivo y reinicie Squid:

sudo systemctl restart squid

Una vez que todo esté configurado correctamente, ahora puede configurar el navegador web de su cliente local o la configuración de red del sistema operativo para usar su proxy HTTP squid recién configurado.

Configurar el cliente para usar Squid Proxy

Ahora, para comprobar si su servidor proxy está funcionando o no, puede abrir Firefox e ir a Editar –> Preferencias –> Avanzado –> Red –> Configuración y seleccionar “Configuración manual del proxy” e ingrese la dirección IP de su servidor proxy y el puerto que se utilizará para todas las conexiones de la siguiente manera.

Una vez que complete todos los detalles del proxy requeridos, podrá navegar por la Web utilizando su servidor proxy Squid; puede hacer lo mismo en cualquier otro navegador o programa que desee.

Para asegurarse de que está navegando por la web utilizando su servidor proxy, puede visitar http://www.ipaddresslocation.org/, en la esquina superior derecha debe ver la misma dirección IP que su servidor. Dirección IP.

Para obtener más ajustes de configuración adicionales, puede consultar la documentación oficial de Squid. Si tiene alguna pregunta o comentario, agréguelo en la sección de comentarios a continuación.