Búsquedas de DNS en todo el sistema sobre el túnel SSH

2

TI tiene el laboratorio bloqueado, así que no puedo obtener actualizaciones aptas ni instalar ningún paquete en la máquina Ubuntu. Tenemos un escritorio RDP de Windows que tiene acceso limitado a Internet. Tengo un servidor SSH ejecutándose en la caja de Windows y puedo hacer un túnel SSH desde la máquina Ubuntu con lo siguiente

ssh -CND localhost:1080 me@windowsbox

El problema es que todavía no puedo resolver ningún DNS de la máquina Ubuntu. Entonces, lo que me gustaría hacer es también configurar DNS para que también pase por el túnel SSH. Y sí, he visto muchas otras publicaciones sobre la configuración de Firefox o cualquier navegador para hacerlo, pero eso no se aplica aquí. Estoy buscando un nivel de sistema DNS o, al menos, la capacidad de apt-get para resolver a través del túnel.

Gracias

omencat
fuente
¿Cuánto control tienes sobre la caja de Ubuntu?
Paul
Hola Paul, rootea en el cuadro de ubuntu. También soy administrador de dominio, pero no tengo control de las reglas de firewall de Cisco.
omencat
Tendrá que redirigir los paquetes para TCP y UDP 53 al túnel. DNS es una de las cosas más difíciles de conseguir para el proxy (lo que causa cierta molestia a la base TOR), porque muchas aplicaciones realizan consultas independientes en lugar de depender de la API del sistema para la tarea. Probablemente pueda reenviarlo mediante IPTables.
Frank Thomas
Puede hacerlo, con netcat y un fifo si tiene Linux en ambos extremos, pero necesitaría adaptarse para usar Windows. No estoy seguro de cuál es el privilegio de un fifo en Windows: qcnetwork.com/vince/doc/ divers / udp_over_ssh_tunnel.html
Paul
Ah, ambas soluciones interesantes. Es posible que quiera probar el método iptables. El equipo de seguridad proporcionó una IP de DNS para usar, ¡pero ahora están inyectando sus propios certificados SSL! Esto funcionará para mí, pero para los futuros buscadores de Google, las dos soluciones anteriores parecen funcionar.
omencat

Respuestas:

1

Tienes control total sobre el cliente, eso es bueno. No mencionas cuánto control tienes sobre el servidor SSH. Si controla el lado del servidor, cuando inicie un proxy UDP a TCP en su cliente como se indica aquí :

socat -T15 udp4-recvfrom:53,reuseaddr,fork tcp:localhost:5353

Y luego reenvíe la conexión TCP a través de SSH a su servidor donde inicie un demonio TCP a UDP:

socat tcp4-listen:5353,reuseaddr,fork UDP:nameserver:53

hay 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
Frederick Nord
fuente