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


Squid es un servidor proxy web HTTP de almacenamiento en caché y reenvío más popular que utiliza mi amplia gama de empresas para almacenar en caché las páginas web de 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.

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

Cómo instalar Squid en Ubuntu

Antes de comenzar, debe saber que el servidor Squid no tiene ningún requisito, pero la cantidad de uso de RAM puede diferir según los clientes que navegan 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 puede verificar el estado del servicio con.

$ sudo systemctl status squid
● 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 muestran algunas ubicaciones importantes de archivos de calamar que debe conocer:

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

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

Ahora abra este archivo para editarlo con el editor Vi y realice los cambios que se muestran a continuación.

$ sudo vim /etc/squid/squid.conf

Ahora, puede buscar sobre las siguientes líneas y cambiarlas según lo solicitado, en el editor Vi, puede buscar sobre esas líneas presionando la tecla 'ESC' y escribiendo la tecla "/" para escribir las líneas específicas. 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 la etiqueta "transparente" al final de la línea como http_port 8888 transparente para que Squid proxy actúe como un proxy transparente si lo desea.
  • http_access deny all : esta línea no permitirá que nadie acceda al servidor proxy HTTP, es por eso que debe cambiarlo a http_access permitir que todos comiencen a usar su servidor proxy Squid.
  • visible_hostname : esta directiva se utiliza para establecer el nombre de host específico para un servidor Squid. Puede asignar 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

Configuración de 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.

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 debe 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 comienzo de la sección de la 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 surtan efecto.

$ sudo systemctl restart squid

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. Una vez más, 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 el calamar una vez más.

$ sudo systemctl restart 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 debe instalar el paquete apache2-utils usando el siguiente comando.

$ sudo apt install apache2-utils

Ahora cree un archivo llamado "passwd" que luego almacenará el nombre de usuario para la autenticación. Squid se ejecuta con el "proxy" de usuario, por lo que el archivo debe 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

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

$ 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 punto de procedimiento le 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

Para bloquear una lista de palabras clave, primero cree un archivo llamado "blockkeywords.lst" que almacenará las palabras clave 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 probar que su servidor proxy está funcionando o no, puede abrir Firefox e ir a Editar -> Preferencias -> Avanzado -> Red -> Configuración y seleccionar "Configuración manual de proxy" e ingresar la dirección IP y el puerto de su servidor proxy. utilizado para todas las conexiones de la siguiente manera.

Una vez que complete todos los detalles requeridos del proxy, podrá navegar por la Web usando 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 la dirección IP de su servidor.

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