Jeśli używam SSH dla proxy SOCKS, czy połączenia DNS przechodzą przez to?


14

Używam ssh -D 8080 my serverdo utworzenia serwera proxy SOCKS. Następnie konfiguruję OS X do używania localhost:8080jako proxy SOCKS. Używam tego, aby uzyskać dostęp do Internetu bez monitorowania.

Korzystam z serwerów DNS Google (8.8.8.8), ale jak mogę się upewnić, że zapytania DNS przechodzą przez tunel SSH?


1
„bez monitorowania” to iluzja
— machineaddict

Odpowiedzi:


22

Wiem, że odpowiedź jest nieco spóźniona, ale dla odniesienia i dla tych, którzy wciąż szukają odpowiedzi,

Ustaw network.proxy.socks_remote_dnswłaściwość w konfiguracji firefox (wpisz about: config w pasku adresu) na PRAWDA (wystarczy dwukrotnie kliknąć właściwość, aby przełączyć wartość), aby umożliwić wyszukiwanie DNS w lokalnym / zdalnym proxy Socks5.

PS: Nie jestem pewien co do innych przeglądarek :(


1
Dla tych, którzy wolą interfejs użytkownika, jest to w Preferencje → Zaawansowane → karta Sieć → przycisk Ustawienia (dla „Połączenia”) → „Serwer proxy DNS podczas korzystania z SOCKS v5”.
— jwd

Zauważyłem, że DNS NIE przechodzi przez proxy dla HTTP, ale działa dla HTTPS. Jak to może być przypadek? Czy to jest tak zaprojektowane? (Używam Firefox)
— Eugene D. Gubenkov

8

Jeśli jest to serwer proxy SOCKS 5 , a program kliencki go obsługuje, DNS przejdzie przez serwer proxy. Większość przeglądarek obsługuje DNS przez proxy Socks 5, ale może wymagać specjalnej konfiguracji.

Jeśli twoim celem jest ochrona prywatności w internecie, na pewno należy użyć czegoś podobnego privoxy . Privoxy oczyści nagłówki twoich żądań internetowych i zapewni, że cały ruch, w tym DNS, przechodzi przez serwer proxy Socks 5. Uruchom privoxylokalnie i możesz użyć sshdo tunelowania ruchu Socks 5.


2

Nie można tego zrobić od razu po wyjęciu z pudełka, ponieważ tunel SSH jest przeznaczony tylko dla połączeń TCP / IP - ruch UDP nie będzie w stanie przejść przez ten tunel bez specjalnej konfiguracji. Zasadniczo musisz utworzyć FIFO, aby wykonać sztuczki z NetCat, jak opisano tutaj . Możesz wtedy użyć DNS Google'a z odległego pola.


1

Jak wspomniano tam , wyszukiwania w całym systemie nie są tunelowane .

Jeśli potrzebujesz rozwiązania opartego na SSH, możesz czerpać inspirację z tego miejsca lub użyć SSHuttle (np. Wspomnianego tutaj ). Jest łatka do łatwego przesyłania zapytań DNS.

YMMV, ale udało mi się:

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

Jak mówi pfo, tunele SSH są przeznaczone tylko do ruchu TCP, a aplikacja musi być świadoma serwerów proxy SOCKS.

Jeśli chcesz wszystko tunelować, potrzebujesz odpowiedniej sieci VPN. Spójrz na coś takiego jak OpenVPN .


0

To zależy od twojej aplikacji. Na przykład Firefox wysyła nazwę hosta do serwera proxy SOCKS, nie rozwiązując go. W takim przypadku nie musisz nic robić dla prywatności. Możesz to potwierdzić przez wireshark.

PS. Załóżmy, że używasz proxy SOCKS5. SOCKS4 nie obsługuje nazwy hosta.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.