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.
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 de <strong>Ubuntu y Debian</strong> 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 <strong>Squid</strong> 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
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 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 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 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 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 la etiqueta “transparente” al final de la línea como http_port 8888 transparente para hacer 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 en un servidor <b>Squid</b> . 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.
Agregar LCA 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 debe agregar es:
acl localnet src XX.XX.XX.XX
¿Dónde XX.XX.XX.XX
está la dirección IP de la máquina cliente? Esta ACL debe agregarse al comienzo de la sección de ACL como se muestra en la siguiente captura de pantalla.
Agregar dirección IP para permitir la Web
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
Puertos abiertos 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
¿Dónde XXX
está 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.
Agregar puertos en Squid Proxy
Para que los cambios surtan efecto, deberá reiniciar el calamar una vez más.
$ sudo systemctl restart squid
Autenticación de 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 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
Habilitar la autenticación de usuario de Squid
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á 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 <strong>www.badsite1</strong> , 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
Bloquear sitios web en Squid
Ahora guarda el archivo y reinicia Squid:
$ sudo systemctl restart squid
Bloquear palabra clave específica con calamar
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 guarda el archivo y reinicia 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 -&gt Preferencias -&gt Avanzado -&gt Red -&gt Configuración y seleccionar ” <strong>Configuración </strong>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.
Configurar el cliente para usar Squid Proxy
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.
Calamar , Ubuntu