Cómo instalar y configurar el proxy Squid en CentOS 7
Squid es un proxy de almacenamiento en caché con todas las funciones que admite protocolos de red populares como HTTP, HTTPS, FTP y más. Colocar Squid frente a un servidor web puede mejorar en gran medida el rendimiento del servidor al almacenar en caché solicitudes repetidas, filtrar el tráfico web y acceder a contenido restringido geográficamente.
Este tutorial explica cómo configurar Squid en CentOS 7 y configurar los navegadores web Firefox y Google Chrome para usar el proxy.
Instalar Squid en CentOS #
El paquete Squid está incluido en los repositorios predeterminados de CentOS 7. Para instalarlo, ejecute el siguiente comando como usuario de sudo:
sudo yum install squid
Una vez finalizada la instalación, inicie y habilite el servicio Squid:
sudo systemctl start squid
sudo systemctl enable squid
Para verificar que la instalación se realizó correctamente, escriba el siguiente comando que imprimirá el estado del servicio:
sudo systemctl status squid
● squid.service - Squid caching proxy Loaded: loaded (/usr/lib/systemd/system/squid.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2019-07-13 16:47:56 UTC; 12s ago...
Configuración de Squid #
Squid se puede configurar editando el archivo /etc/squid/squid.conf
. Se pueden incluir archivos adicionales con opciones de configuración mediante la directiva «include».
Antes de realizar cualquier cambio, realice una copia de seguridad del archivo de configuración original con el comando cp
:
sudo cp /etc/squid/squid.conf{,.orginal}
Para editar el archivo, ábrelo en tu editor de texto:
sudo nano /etc/squid/squid.conf
De forma predeterminada, Squid está configurado para escuchar en el puerto 3128
en todas las interfaces de red del servidor.
Si desea cambiar el puerto y establecer una interfaz de escucha, localice la línea que comienza con http_port
y especifique la dirección IP de la interfaz y el nuevo puerto. Si no se especifica ninguna interfaz, Squid escuchará en todas las interfaces.
# Squid normally listens to port 3128http_port IP_ADDR:PORT
Ejecutar Squid en todas las interfaces y en el puerto predeterminado debería estar bien para la mayoría de los usuarios.
Puede controlar el acceso al servidor Squid utilizando las Listas de control de acceso (ACLs).
De forma predeterminada, Squid solo permite el acceso desde localhost y localnet.
Si todos los clientes que usarán el proxy tienen una dirección IP estática, puede crear una ACL que incluirá las direcciones IP permitidas.
En lugar de agregar las direcciones IP en el archivo de configuración principal, crearemos un nuevo archivo dedicado que contendrá las direcciones IP:
192.168.33.1# All other allowed IPs
Una vez hecho esto, abra el archivo de configuración principal y cree una nueva ACL llamada allowed_ips
(primera línea resaltada) y permita el acceso a esa ACL usando la directiva http_access
(segunda línea resaltada):
# ...acl allowed_ips src "/etc/squid/allowed_ips.txt"# ...http_access allow localnethttp_access allow localhosthttp_access allow allowed_ips# And finally deny all other access to this proxyhttp_access deny all
El orden de las reglas http_access
es importante. Asegúrese de agregar la línea antes de http_access deny all
.
La directiva http_access
funciona de manera similar a las reglas de firewall. Squid lee las reglas de arriba a abajo, y cuando una regla coincide, las reglas a continuación no se procesan.
Cada vez que realice cambios en el archivo de configuración, debe reiniciar el servicio Squid para que los cambios surtan efecto:
sudo systemctl restart squid
Autenticación Squid #
Squid puede usar diferentes back-ends, incluidos Samba, LDAP y autenticación básica HTTP para usuarios autenticados.
En este ejemplo, configuraremos Squid para que use autenticación básica. Es un método de autenticación simple integrado en el protocolo HTTP.
Usaremos el openssl
para generar las contraseñas y anexar el par username:password
al archivo /etc/squid/htpasswd
con el comando tee
como se muestra a continuación:
printf "USERNAME:$(openssl passwd -crypt PASSWORD)\n" | sudo tee -a /etc/squid/htpasswd
Por ejemplo, para crear un usuario llamado «mike» con la contraseña «Pz$lPk76
«, se ejecutaría:
printf "mike:$(openssl passwd -crypt 'Pz$lPk76')\n" | sudo tee -a /etc/squid/htpasswd
mike:2nkgQsTSPCsIo
El siguiente paso es configurar Squid para habilitar la autenticación básica HTTP y usar el archivo.
Abra la configuración principal y agregue lo siguiente:
# ...auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/htpasswdauth_param basic realm proxyacl authenticated proxy_auth REQUIRED# ...http_access allow localnethttp_access allow localhosthttp_access allow authenticated# And finally deny all other access to this proxyhttp_access deny all
Con las tres primeras líneas resaltadas, estamos creando una nueva ACL llamada authenticated
. La última línea resaltada permite el acceso a los usuarios autenticados.
Reiniciar el servicio Squid:
sudo systemctl restart squid
Configurar firewall #
Si está ejecutando un cortafuegos, necesitará abrir el puerto 3128
. Para ello, ejecute los siguientes comandos:
sudo firewall-cmd --permanent --add-port=3128/tcp
firewall-cmd --reload
Configuración de su navegador para usar Proxy #
Ahora que ha configurado Squid, el último paso es configurar su navegador preferido para usarlo.
Firefox #
Los pasos a continuación son los mismos para Windows, macOS y Linux.
-
En la esquina superior derecha, haga clic en el icono de hamburguesa
☰
para abrir el menú de Firefox: -
Haga clic en el enlace
⚙ Preferences
. -
Desplácese hacia abajo hasta la sección
Network Settings
y haga clic en el botónSettings...
. -
se abrirá Una nueva ventana.
- Seleccione el botón de opción
Manual proxy configuration
. - Introduzca la dirección IP de su servidor Squid en el campo
HTTP Host
y3128
en el campoPort
. - Seleccione la casilla de verificación
Use this proxy server for all protocols
. - Haga clic en el botón
OK
para guardar la configuración.
- Seleccione el botón de opción
En este punto, tu Firefox está configurado y puedes navegar por Internet a través del proxy Squid. Para verificarlo, abra google.com
, escriba «cuál es mi ip» y debería ver la dirección IP de su servidor Squid.
Para volver a la configuración predeterminada, vaya a Network Settings
, seleccione el botón de opción Use system proxy settings
y guarde la configuración.
También hay varios complementos que pueden ayudarlo a configurar la configuración del proxy de Firefox, como FoxyProxy.
Google Chrome #
Google Chrome utiliza la configuración predeterminada del proxy del sistema. En lugar de cambiar la configuración de proxy de su sistema operativo, puede usar un complemento como Switchyomegao iniciar el navegador web Chrome desde la línea de comandos.
Para iniciar Chrome utilizando un nuevo perfil y conectar con el servidor Squid, utilice el siguiente comando:
Linux :
/usr/bin/google-chrome \ --user-data-dir="$HOME/proxy-profile" \ --proxy-server="http://SQUID_IP:3128"
macOS :
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \ --user-data-dir="$HOME/proxy-profile" \ --proxy-server="http://SQUID_IP:3128"
Windows :
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" ^ --user-data-dir="%USERPROFILE%\proxy-profile" ^ --proxy-server="http://SQUID_IP:3128"
El perfil se crea automáticamente si no existe. De esta manera, puede ejecutar varias instancias de Chrome al mismo tiempo.
Para confirmar que el servidor proxy funciona correctamente, abra google.com
y escriba «cuál es mi ip». La IP que se muestra en su navegador debe ser la dirección IP de su servidor.
Conclusión #
Ha aprendido a instalar squid en CentOS 7 y a configurar su navegador para que lo use.
Squid es uno de los servidores de caché proxy más populares. Mejora la velocidad del servidor web y puede ayudarlo a restringir el acceso de los usuarios a Internet.