Bir SOCKS proxy'si için SSH kullanıyorsam, DNS bağlantıları üzerinden geçiyor mu?


14

ssh -D 8080 my serverBir SOCKS proxy'si oluşturmak için kullanıyorum . Daha sonra OS X'i localhost:8080bir SOCKS proxy'si olarak kullanacak şekilde yapılandırıyorum . İzlenmeden internete erişmek için bunu kullanıyorum.

Google'ın DNS sunucularını (8.8.8.8) kullanıyorum, ancak DNS sorgularının SSH tünelinden geçtiğinden nasıl emin olabilirim?


1
"izlenmeden" bir yanılsamadır
machineaddict

Yanıtlar:


22

Cevabın biraz geç olduğunu biliyorum, ancak referans için ve hala cevabı arayanlar için,

Set network.proxy.socks_remote_dnsfirefox config özelliği (tip hakkında: adres çubuğuna yapılandırma) olarak DOĞRU yerel / uzaktan socks5 proxy üzerinden dns aramalarını sağlayan (sadece çift değerini değiştirmek için özellik tıklayın).

Not: Diğer tarayıcılardan emin değilim :(


1
Kullanıcı arayüzünü tercih edenler için bu, Tercihler → Gelişmiş → Ağ sekmesi → Ayarlar düğmesi ("Bağlantılar" için) → "SOCKS v5 kullanırken Proxy DNS" de bulunur.
jwd

DNS'nin HTTP için proxy üzerinden gitmediğini fark ettim, ancak HTTPS için çalışıyor. Bu nasıl olabilir? Bu tasarlandığı gibi mi? (Firefox kullanıyorum)
Eugene D. Gubenkov

8

Bu bir SOCKS 5 proxy'siyse ve istemci programı destekliyorsa, DNS proxy üzerinden geçecektir. Çoğu tarayıcı bir Socks 5 proxy üzerinden DNS'yi destekler, ancak bunun için özel yapılandırma gerektirebilir.

Hedefiniz web'de gizlilikse, gerçekten privoxy gibi bir şey kullanmalısınız . Privoxy, web isteklerinizin başlıklarını temizleyecek ve DNS de dahil olmak üzere tüm trafiğin Socks 5 proxy'sinden geçmesini sağlayacaktır. privoxyYerel olarak çalıştırın ve sshSocks 5 trafiğini tünellemek için kullanabilirsiniz .


2

SSH tüneli yalnızca TCP / IP bağlantıları için olduğu için bunu kutudan çıkaramazsınız - UDP trafiği özel bir kurulum olmadan bu tünelden geçemez. Temel olarak, burada açıklandığı gibi netcat ile biraz hile yapmak için bir fifo oluşturmanız gerekir . Daha sonra google'ın DNS'sini uzak uç kutusundan kullanabilirsiniz.


1

Orada belirtildiği gibi , sistem çapında aramalarınız tünel oluşturmaz .

Eğer bir SSH tabanlı bir çözüm istiyorsanız, ilham alabilirsiniz burada veya kullanım SSHuttle (örn sözü burada ). DNS sorgularını kolayca iletmek için bir düzeltme eki vardır.

YMMV, ancak aşağıdakilerle başarılı oldum:

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

Pfo'nun dediği gibi, SSH tünelleri sadece TCP trafiği içindir ve uygulama SOCKS proxy'lerinden haberdar olmalıdır.

Her şeyin tünellenmesini istiyorsanız uygun bir VPN'e ihtiyacınız var. OpenVPN gibi bir şeye göz atın .


0

Uygulamanıza bağlıdır. Örneğin Firefox, ana bilgisayar adını SOCKS proxy'ye çözmeden gönderir. Bu durumda, gizlilik için hiçbir şey yapmanız gerekmez. Bunu wireshark ile onaylayabilirsiniz.

PS. SOCKS5 proxy kullandığınızı varsayalım. SOCKS4 ana bilgisayar adını desteklemiyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.