Si estoy usando SSH para un proxy SOCKS, ¿lo atraviesan las conexiones DNS?


14

Estoy usando ssh -D 8080 my serverpara crear un proxy SOCKS. Luego estoy configurando OS X para usar localhost:8080como proxy SOCKS. Estoy usando esto para acceder a Internet sin ser monitoreado.

Estoy usando los servidores DNS de Google (8.8.8.8), pero ¿cómo me aseguro de que las consultas DNS pasen por el túnel SSH?


1
"sin ser monitoreado" es una ilusión
machineaddict

Respuestas:


22

Sé que la respuesta es un poco tarde, pero para la referencia y para aquellos que todavía están buscando la respuesta,

Establezca la network.proxy.socks_remote_dnspropiedad en la configuración de Firefox (escriba about: config en la barra de direcciones) en TRUE (solo haga doble clic en la propiedad para alternar el valor) para habilitar las búsquedas de DNS en su proxy local / remoto socks5.

PD: no estoy seguro acerca de otros navegadores :(


1
Para aquellos que prefieren la interfaz de usuario, esto está en Preferencias → Avanzado → pestaña Red → botón Configuración (para "Conexiones") → "Proxy DNS cuando se usa SOCKS v5".
jwd

Me di cuenta de que el DNS NO pasa por proxy para HTTP, pero funciona para HTTPS. ¿Cómo puede ser este el caso? ¿Es esto como está diseñado? (Estoy usando Firefox)
Eugene D. Gubenkov

8

Si es un proxy SOCKS 5 , y el programa cliente lo admite, el DNS pasará por el proxy. La mayoría de los navegadores admiten DNS a través de un proxy Socks 5, pero pueden requerir una configuración especial para hacerlo.

Si su objetivo es la privacidad en la web, realmente debería usar algo como privoxy . Privoxy limpiará los encabezados de sus solicitudes web y asegura que todo el tráfico, incluido el DNS, pase por el proxy Socks 5. Ejecútelo privoxylocalmente y puede usarlo sshpara tunelizar el tráfico de Socks 5.


2

No puede hacerlo desde el primer momento, ya que el túnel SSH es solo para conexiones TCP / IP: el tráfico UDP no podrá cruzar ese túnel sin una configuración especial. Básicamente, necesita crear un fifo para hacer algunos trucos con netcat como se describe aquí . Puede usar el DNS de Google desde el cuadro extremo más alejado.


1

Como se mencionó allí , las búsquedas de todo el sistema no están en túnel .

Si desea una solución basada en SSH, puede inspirarse aquí o usar SSHuttle (por ejemplo, mencionado aquí ). Hay un parche para reenviar consultas DNS fácilmente.

YMMV, pero he tenido éxito con lo siguiente:

#!/bin/bash
# Taken from http://stackoverflow.com/questions/4594319/shell-replace-cr-lf-by-comma
DNSSERVERS=$(nmcli d show | grep DNS | awk '{print $2}' | sed -e 'H;${x;s/\n/,/g;s/^,//;p;};d' )
sshuttle  \
    -vvv                \
     --dns-hosts ${DNSSERVERS}   \
    -r server   \
    254.254.254.254/32

0

Como dice pfo, los túneles SSH son solo para el tráfico TCP, y la aplicación debe conocer los proxies SOCKS.

Si desea que todo se tunele, necesita una VPN adecuada. Echa un vistazo a algo como OpenVPN .


0

Depende de su aplicación. Firefox, por ejemplo, envía el nombre de host al proxy SOCKS sin resolverlo. En este caso, no tiene que hacer nada por privacidad. Puede confirmar eso por wireshark.

PD. suponga que está utilizando un proxy SOCKS5. SOCKS4 no es compatible con el nombre de host.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.