SOCKS 프록시에 SSH를 사용하는 경우 DNS 연결이 통과합니까?


14

ssh -D 8080 my serverSOCKS 프록시를 만드는 데 사용 하고 있습니다. 그런 다음 localhost:8080SOCKS 프록시 로 사용하도록 OS X를 구성하고 있습니다 . 모니터링하지 않고 인터넷에 액세스하기 위해 이것을 사용하고 있습니다.

Google의 DNS 서버 (8.8.8.8)를 사용하고 있지만 DNS 쿼리가 SSH 터널을 통과하도록하려면 어떻게해야합니까?


1
"감시되지 않고"는 환상이다
machineaddict

답변:


22

답이 늦다는 것을 알고 있지만 참조 및 답을 찾고있는 사람들에게는

설정 network.proxy.socks_remote_dns파이어 폭스 설정에서 속성을 (유형에 대해 : 주소 표시 줄에서 설정) TRUE로 로컬 / 원격 SOCKS5 프록시를 통해 DNS 조회를 활성화하는 (단지 두 배의 값을 전환 할 속성을 클릭).

추신 : 다른 브라우저에 대해서는 잘 모르겠습니다 :(


1
UI를 선호하는 사용자는 기본 설정 → 고급 → 네트워크 탭 → 설정 버튼 ( "연결") → "SOCKS v5 사용시 프록시 DNS"에 있습니다.
jwd

DNS는 HTTP 프록시를 통해 이동하지 않지만 HTTPS에서는 작동한다는 것을 알았습니다. 이것은 어떻게 될 수 있습니까? 이것은 설계된대로입니까? (저는 Firefox를 사용하고 있습니다)
Eugene D. Gubenkov

8

그것은 만약 SOCKS 5 프록시 클라이언트 프로그램 지원을, DNS 프록시를 통해 이동합니다. 대부분의 브라우저는 Socks 5 프록시를 통해 DNS를 지원하지만 특별한 구성이 필요할 수 있습니다.

당신의 목표가 웹상의 프라이버시라면, 정말로 privoxy 와 같은 것을 사용해야합니다 . Privoxy는 웹 요청의 헤더를 정리하고 DNS를 포함한 모든 트래픽이 Socks 5 프록시를 통과하도록합니다. privoxy로컬로 실행 ssh하면 Socks 5 트래픽을 터널링하는 데 사용할 수 있습니다 .


2

SSH 터널은 TCP / IP 연결 전용이므로 즉시 사용할 수 없습니다. 특별한 설정 없이는 UDP 트래픽이 해당 터널을 통과 할 수 없습니다. 기본적으로 여기에 설명 된대로 netcat을 사용하여 까다로운 작업을 수행하려면 fifo를 만들어야합니다 . 그러면 파 엔드 박스에서 Google의 DNS를 사용할 수 있습니다.


1

언급 한 바와 같이 저기 , 당신의 시스템 전체 조회를 터널링되지 않습니다 .

SSH 기반 솔루션을 원한다면 여기 에서 영감을 얻 거나 SSHuttle을 사용할 수 있습니다 (예 : here ). DNS 쿼리를 쉽게 전달할 수있는 패치가 있습니다.

YMMV이지만 다음과 같이 성공했습니다.

#!/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가 말했듯이 SSH 터널은 TCP 트래픽 전용이며 응용 프로그램은 SOCKS 프록시를 알고 있어야합니다.

모든 것을 터널링하려면 적절한 VPN이 필요합니다. OpenVPN 과 같은 것을 살펴보십시오 .


0

응용 프로그램에 따라 다릅니다. 예를 들어 Firefox는 호스트 이름을 확인하지 않고 SOCKS 프록시로 보냅니다. 이 경우 개인 정보 보호를 위해 아무것도하지 않아도됩니다. wireshark로 확인할 수 있습니다.

추신. SOCKS5 프록시를 사용한다고 가정하십시오. SOCKS4는 호스트 이름을 지원하지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.