Navegación segura · 4 min read · Jan 26, 2026
Navegación Segura y Privada con Squid
Versión 1.0
Autor: Joe Topjian
Navegar por un sitio que soporta SSL es una forma definitiva de asegurarte de que nadie puede espiar lo que estás haciendo, lo cual es algo bueno cuando estás haciendo algo personal como revisar el correo electrónico en la web o comprar algo en amazon. Pero si solo estás haciendo cosas como leer las noticias diarias o revisar horarios de películas, ¿es la privacidad tan importante? Los ultra-paranoicos darán una rotunda “sí” a esa pregunta, mientras que la mayoría de la gente simplemente se encogerá de hombros. Yo me encuentro entre esos dos grupos. En casa, mientras leo las noticias, me importa poco si el tráfico está encriptado o no. Sin embargo, cuando estoy en un lugar público con Wi-Fi, me molesta un poco.
La mayoría de las áreas públicas que permiten acceso a internet no tienen absolutamente ninguna seguridad. ¿Necesitas un buen despertador? La próxima vez que estés en un punto de acceso público, toma una copia de las herramientas dsniff.
Este artículo te mostrará una forma de protegerte de algo así, de alguna manera. Este artículo solo te mostrará cómo proteger tu tráfico web. Si aún decides hablar con tu CEO por AIM sobre algún producto ultra-secreto que saldrá la próxima semana mientras esperas tu próximo vuelo, esto no te salvará. Squid puede, por supuesto, actuar como proxy para otras aplicaciones además de HTTP, pero HTTP es todo lo que cubriré. Tal vez cubra otras aplicaciones en otro artículo.
OK, empecemos. Esto es lo que necesitaremos:
- Un servidor que ejecute Squid en alguna otra red.
- Una laptop con soporte para ssh y reenvío de puertos.
Lo que vamos a hacer es configurar un servidor Squid en algún lugar fuera de la red en la que actualmente estamos. Squid solo aceptará conexiones del propio servidor, sin conexiones externas. Entonces, ¿cómo lo usamos? Crearemos un túnel SSH hacia él. Una vez que el túnel esté creado, simplemente configuramos nuestro navegador web para usar un servidor proxy con la dirección de nuestro túnel SSH. Ahora, cualquier tráfico web que salga de nuestra laptop hacia nuestro servidor Squid estará encriptado.
Pero, ¿qué pasa desde el servidor Squid hacia la página web real? Esa parte no estará encriptada, desafortunadamente. Pero bueno, al menos salimos de la LAN desprotegida de forma segura.
Estaré usando Debian Sarge para el servidor Squid, pero eres más que bienvenido a usar cualquier distribución que desees. Después de instalar Squid, la configuración será exactamente la misma. Para instalar Squid en Debian, solo haz:
apt-get install squid
La configuración predeterminada para Debian (y tal vez otras distribuciones también, ¡mejor verifica!) es permitir solo conexiones desde el localhost. Esto no perjudica nada, así que podemos dejarlo como está. Sin embargo, aún necesitamos una forma de conectarnos externamente. Para eso, agregaremos un acl que nos pedirá una contraseña y si estamos autenticados nos permitirá entrar. Lo agregaremos justo antes de la parte “deny all” para que se vea algo así:
acl localhost src 127.0.0.1/255.255.255.255
http_access allow localhost
http_access allow password
http_access deny all
Por defecto, Squid escucha en el puerto 3128. Personalmente, prefiero el 8080, así que lo cambiaremos con:
http_port 8080
A continuación, necesitamos configurar la autenticación para Squid. Hay un montón de diferentes métodos de autenticación que vienen con el paquete de Debian y se pueden ver con:
ls /usr/lib/squid/*auth
Usaremos el módulo pam_auth. Esto permitirá que cualquier persona que tenga una cuenta de shell también pueda usar el servidor Squid. Busca la sección auth_param en la configuración y agrega estas líneas:
auth_param basic program /usr/lib/squid/pam_auth
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
A continuación, busca esta línea y descoméntala:
acl password proxy_auth REQUIRED
Ahora crea un módulo pam llamado /etc/pam.d/squid que contenga:
auth required /lib/security/pam_unix.so
account required /lib/security/pam_unix.so
Necesitarás darle acceso SUID a este archivo, así que chmod 4755. Sí, sé que esta no es la mejor manera de hacerlo, pero es la menos complicada. Eres más que bienvenido a investigar otros métodos por tu cuenta.
Squid debería estar listo para funcionar. A continuación, asegúrate de tener acceso a la shell del servidor a través de SSH. No importa si usas una contraseña, frase de paso o frase de paso en blanco. Para configurar el túnel, ejecuta esto:
ssh -L 8080:squidhost:8080 username@squidhost
Se te pedirá autenticación y si tienes éxito, parecerá que has iniciado sesión en la caja remota. Si abres otra ventana y escribes
telnet localhost 8080
Verás que ahora estás hablando con squid en el servidor remoto.
Finalmente, dile a tu navegador que use el túnel SSH como proxy. No voy a cubrir cada navegador individual aquí, pero básicamente estará en algún lugar de las preferencias. Para el nombre de host, simplemente escribe localhost y para el puerto, escribe 8080.
Ahora, cada vez que navegues a una página web, se te pedirá autenticación. Escribe la información de tu cuenta de shell y estarás listo para comenzar. El navegador puede dar una advertencia sobre la autenticación a través de texto plano; ignórala. Viajará a través de nuestro túnel SSH, así que estará encriptada.
¡Felicidades! Ahora puedes navegar por la web sin preocuparte de que alguien te espíe. Si alguien tiene algún comentario, correcciones o formas de mejorar este método, ¡házmelo saber!Ubicación original de este documento:
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.