Estoy intentando obtener soluciones básicas similares a los diferentes servidores proxy DNS inteligentes disponibles.
Ahora puedo hacer una parte mediante el uso de túneles ssh y la creación de avance dinámico.
host myserver
User root
HostName MyIP
IdentityFile <MyKey>
DynamicForward 4444
Ahora bien, esto funciona cuando tengo un navegador y puedo configurar el proxy de calcetín.
Pero que
- Lo que quiero es tener un servidor DNS ejecutándose (similar a dnsmasq).
- Configurar el servidor DNS en mi enrutador.
- Túnel todo el tráfico a través de ssh.
Respuesta1
lanzaderapodría ser útil:
Servidor proxy transparente que funciona como la VPN de un pobre. Reenvía sobre ssh. No requiere administrador. Funciona con Linux y MacOS. Admite túneles DNS.
Le permite reenviar todo su tráfico a través de SSH a un servidor,incluyendo DNS.
Yo no lo he usado, pero ¿quizás esto es lo que estás buscando?
Respuesta2
Si y no. Dnsmasq no puede simplemente pedirle a un proxy SOCKS que resuelva los nombres, ya que no existe tal comando del protocolo SOCKS; el proxy solo tiene un comando que tomaría un nombre de dominio + puertoyse conecta inmediatamente a él, mientras que el cliente nunca aprende la dirección IP que se utilizó. (Y además, DNS esun poco másque solo búsquedas de direcciones IP, por lo que incluso si dicha funcióneradisponible, todavía no puedes emular correctamente el DNS encima).
Sin embargo, algunos solucionadores de DNS (no Dnsmasq) pueden comunicarse con unrealServidor DNS a través de un túnel SSH. Se requiere que los servidores DNS admitan TCP, por lo que podría usar un ssh -L
túnel estándar y apuntarlo a algún servidor remoto. Dnsmasq no funcionará (siempre prueba primero con UDP), pero se le puede indicar a Unbound que siempre consulte a través de TCP. Un solucionador que utilice DoT (DNS sobre TLS) o DoH también funcionaría, ya que actualmente también están basados en TCP.
Sin embargo, realmente recomendaría un túnel de capa IP (una VPN) en lugar de SOCKS. Si bien puedes sobrevivir durante mucho tiempo solo con TCP, muchos programas también requieren UDP y, en general, es mucho más sencillo enrutar todo a través de un túnel IP que hacer lo mismo a través de SOCKS.
Respuesta3
Gracias a Saarurespuesta, pude conseguir sshuttle al proxysoloSolicitudes DNS con un comando como el siguiente:
sshuttle --dns -r username@host \
--ns-hosts=dns01.example.com,dns02.example.com \
0/0:53 ::/0:53