Wenn ich SSH für einen SOCKS-Proxy verwende, gehen DNS-Verbindungen durch?


14

Ich benutze ssh -D 8080 my server, um einen SOCKS-Proxy zu erstellen. Ich konfiguriere dann OS X localhost:8080als SOCKS-Proxy. Ich benutze dies, um auf das Internet zuzugreifen, ohne überwacht zu werden.

Ich verwende die DNS-Server von Google (8.8.8.8). Wie stelle ich sicher, dass DNS-Abfragen den SSH-Tunnel durchlaufen?


1
"ohne überwacht zu werden" ist eine Illusion
— machineaddict

Antworten:


22

Ich weiß, die Antwort ist etwas spät, aber als Referenz und für diejenigen, die immer noch nach der Antwort suchen,

Setzen Sie die network.proxy.socks_remote_dnsEigenschaft in der Firefox-Konfiguration (geben Sie about: config in die Adressleiste ein) auf TRUE (doppelklicken Sie einfach auf die Eigenschaft, um den Wert umzuschalten), um DNS-Lookups über Ihren lokalen / Remote-Socks5-Proxy zu ermöglichen.

PS: Ich bin mir bei anderen Browsern nicht sicher :(


1
Für diejenigen, die die Benutzeroberfläche bevorzugen, ist dies unter Einstellungen → Erweitert → Registerkarte Netzwerk → Schaltfläche Einstellungen (für "Verbindungen") → "Proxy-DNS bei Verwendung von SOCKS v5".
— Mittwoch,

Ich habe bemerkt, dass DNS NICHT über einen Proxy für HTTP geht, aber es funktioniert für HTTPS. Wie kann das sein? Ist das so wie geplant? (Ich benutze Firefox)
— Eugene D. Gubenkov

8

Wenn es sich um einen SOCKS 5- Proxy handelt und das Client-Programm dies unterstützt, wird DNS den Proxy durchlaufen. Die meisten Browser unterstützen DNS über einen Socks 5-Proxy, erfordern jedoch möglicherweise eine spezielle Konfiguration.

Wenn Ihr Ziel Datenschutz im Web ist, sollten Sie wirklich so etwas wie Privoxy verwenden . Privoxy bereinigt die Header Ihrer Webanforderungen und stellt sicher, dass der gesamte Datenverkehr, einschließlich DNS, über den Socks 5-Proxy geleitet wird. Führen privoxySie sshdas Programm lokal aus und tunneln Sie den Socks 5-Datenverkehr.


2

Das ist nicht sofort möglich, da der SSH-Tunnel nur für TCP / IP-Verbindungen vorgesehen ist. UDP-Verkehr kann diesen Tunnel ohne eine spezielle Einrichtung nicht passieren. Grundsätzlich müssen Sie ein FIFO erstellen, um einige Tricks mit Netcat auszuführen, wie hier beschrieben . Sie können dann Googles DNS von der Gegenseite verwenden.


1

Wie bereits erwähnt gibt es über Sie ist systemweite Lookups nicht getunnelt .

Wenn Sie eine SSH - basierte Lösung wollen, können Sie Inspiration erhalten hier oder benutzen SSHuttle (zB erwähnt hier ). Es gibt einen Patch zum einfachen Weiterleiten von DNS-Abfragen.

YMMV, aber ich hatte Erfolg mit den folgenden:

#!/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

Wie pfo sagt, sind SSH-Tunnel nur für TCP-Verkehr vorgesehen, und die Anwendung muss SOCKS-Proxys kennen.

Wenn Sie möchten, dass alles getunnelt wird, benötigen Sie ein ordnungsgemäßes VPN. Schauen Sie sich so etwas wie OpenVPN an .


0

Das hängt von Ihrer Anwendung ab. Firefox sendet beispielsweise den Hostnamen an den SOCKS-Proxy, ohne ihn aufzulösen. In diesem Fall müssen Sie aus Datenschutzgründen nichts unternehmen. Das können Sie mit wireshark bestätigen.

PS. Angenommen, Sie verwenden einen SOCKS5-Proxy. SOCKS4 unterstützt keinen Hostnamen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.