Instalar Squid Proxy Server en Ubuntu 18.04.
Squid es una aplicación proxy basada en Linux, que nos aporta una serie de valores añadidos como filtrar el tráfico según nuestras necesidades, implementar una seguridad añadida y la búsqueda de DNS.
Independientemente de lo anterior, Squid también mejora considerablemente el rendimiento de un servidor web al almacenar en caché los recursos.
Un servidor Squid nos permite almacenar en caché las páginas web más visitadas. Su forma de operar es simple, cuando un usuario solicita una página web o un archivo, esa solicitud se transmite al servidor proxy (ejerce de intermediario entre el usuario y el sitio web). El servidor proxy extrae los datos de su cache y los envía al usuario que los solicita.
En este articulo aprenderemos como instalar Squid Proxy Server y a configurarlo correctamente, ya sea en Ubuntu 18.04, Ubuntu 16.04 o sus derivados.
Instalar Squid Proxy Server en Ubuntu 18.04
Actualizamos el sistema.
sudo apt-get update
Instalamos el paquete «squid«.
sudo apt-get install squid
Después de aceptar la confirmación para instalar Squid, comienza la instalación…
Iniciamos el servicio, y le indicamos que arranque con el sistema.
sudo systemctl start squid
sudo systemctl enable squid
Apunte: Si quieres detener el servicio.
sudo systemctl stop squid
Apunte: Si quieres que no arranque con el sistema.
sudo systemctl disable squid
Apunte: Si quieres reiniciar Squid.
sudo systemctl restart squid
Una vez iniciado «Squid» verificamos que opera correctamente.
sudo systemctl status squid
ejemplo de salida correcta…
Configurar Squid Proxy Server en Ubuntu
La configuración de Squid Proxy consta de tres pasos.
- Configuración básica.
- Configuración adicional.
- Bloquear sitios web y palabras clave.
Configuración básica:
El archivo de configuración de Squid lo puedes localizar en: /etc/squid/squid.conf.
Buscamos la linea «http_port 3128«, que es el puerto por defecto para el tráfico TCP. Si tu red está configurada para el tráfico en otro puerto, lo cambias.
sudo nano /etc/squid/squid.conf
Si quieres evitar que Squid modifique las solicitudes y respuestas, activamos el modo proxy transparente.
sudo nano /etc/squid/squid.conf
Modificas…
http_port 3128
por…
http_port 1234 transparent
Por defecto Squid no permite el trafico «http«, debemos permitirlo.
sudo nano /etc/squid/squid.conf
Buscamos la linea «http_acacess«, y modificamos…
http_acacess deny
por…
http_access allow all
Como ultimo punto de la configuración básica insertamos un hostname, escribe lo que quieras en la opción «visible_hostname«.
Guarda el archivo y cierra el editor.
Reiniciamos Squid Proxy Server.
sudo systemctl restart squid
Configuración adicional:
Crear un ACL
Squid nos permite crear un listado de control de acceso, por ejemplo, podemos crear una regla que solo permite la conexión del sistema a una dirección IP.
sudo nano /etc/squid/squid.conf
Agregamos lo siguiente:
acl localnet src 192.168.0.42 #Mi_sistema
Se permiten rangos.
acl localnet src 192.168.0.42/30 #Mis_sistemas
También es posible abrir puertos específicos.
acl Safe_ports port 123 # Conexión_entre_mis_sistemas
Configurar la autentificación
Para obligar a los usuarios del sistema a autentificarse, debemos instalar apache2-utils:
sudo apt-get install apache2-utils
Creamos el archivo «passwd» y modificamos el propietario al usuario de Squid.
sudo touch /etc/squid/passwd
sudo chown proxy: etc/squid/passwd
Ahora agregamos un usuario con contraseña (introduce el usuario y la contraseña).
sudo htpasswd /etc/squid/passwd newuser
Editamos el archivo de configuración otra vez.
sudo nano /etc/squid/squid.conf
Agregamos lo siguiente…
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
Guarda el archivo y cierra el editor.
Reiniciamos Squid Proxy Server.
sudo systemctl restart squid
Bloquear sitios web y palabras clave:
Este paso es bastante sencillo, creamos y editamos el archivo «blocked.acl«.
sudo nano /etc/squid/blocked.acl
Agregamos los sitios web a bloquear, no te olvides de insertar un punto antes del sitio (si no colocas el punto solo bloqueara el sitio principal, el resto de direcciones del sitio web estaran activas).
por ejemplo…
.facebook.com .twitter.com .instagram.com
Guarda el archivo y cierra el editor.
Abrimos el archivo de configuración principal.
sudo nano /etc/squid/squid.conf
Inserta lo siguiente antes de la lista de reglas «ACL» que vimos antes.
acl blocked_websites dstdomain “/etc/squid/blocked.acl” http_access deny blocked_websites
Guarda el archivo y cierra el editor nano.
Reiniciamos Squid.
sudo systemctl restart squid
Hemos terminado de Instalar Squid Proxy Server en Ubuntu 18.04, ya está operativo, ahora bien… si quieres navegar a través de Squid Proxy debes configurar el cliente, pero eso en un próximo articulo.
Comparte el articulo «Instalar Squid Proxy Server en Ubuntu 18.04«.
Gracias por compartir, como siempre!!!
excelente aporte, sera que podrias hacer un articulo parecido pero utilizando webmin.saludos.
Excelente articulo pero al bloquear los sitios como faceboo al ser https y usar proxy transparente no lo bloquea, alguna forma de hacerlo de forma transparente con squid?
Eso pasa por quw tienes reglas comentadas antes del acl, revisalas por ejemplo a partir de la lines 1174 del conf.
Gracias tengo un squid personalizado solo con las lineas que necesito cuales serial las lineas del squind.conf que deberían estar para que funcione el bloqueo https con proxy transparente?
excelente post mi amigo!
claro, simple y concreto.
te agradezco en mi nombre y en el de tantos otros con alguna duda evacuada por tu buena onda y tiempo dedicado. gracias!
Muchas gracias por tu comentario.
Estimado Sergio G. B.:
Como siempre es un brillante artículo y una explicación magnífica para los que (como yo) siguen sus manuales como el mapa de un tesoro :-). Ahora, me disculpo pero este artículo es lo más cercano al problema que me afecta.
Tengo mi Kubuntu 18.04 LTS instalado y funcionando perfectamente, pero me encuentro detrás de un proxy con Squid y deseo hacerle un upgrade a mi computadora. El problema radica en que puedo crear un fichero en la ruta /etc/apt/apt.conf.d/ con cualquier nombre y ponerlo de la forma Acquire::http::Proxy «http://user:password@proxy:port»;
Acquire::ftp::Proxy «ftp://user:password@proxy:port»;
Pero, mi usuario tiene la forma user@company, por lo que me quedarían dos arrobas en la misma línea; ¿cómo puedo corregir esto?
Gracias de antemano, Baphomet.