DNS 트래픽을 SSH 터널로 리디렉션하는 방법이 있습니까?

DNS 트래픽을 SSH 터널로 리디렉션하는 방법이 있습니까?

저는 다양한 스마트 DNS 프록시와 유사한 베어본 솔루션을 얻으려고 노력하고 있습니다.

이제 SSH 터널링을 사용하고 동적 전달을 생성하여 한 부분을 완료할 수 있습니다.

host myserver
User root
    HostName MyIP
    IdentityFile <MyKey>
    DynamicForward 4444

이제 이것은 브라우저가 있고 양말 프록시를 설정할 수 있을 때 작동합니다.

근데 뭐

  1. 내가 원하는 것은 DNS 서버를 실행하는 것입니다(dnsmasq와 유사).
  2. 내 라우터에서 DNS 서버를 구성합니다.
  3. SSH를 통해 모든 트래픽을 터널링합니다.

답변1

셔틀도움이 될 수 있습니다:

가난한 사람의 VPN 역할을 하는 투명한 프록시 서버입니다. SSH를 통해 전달합니다. 관리자가 필요하지 않습니다. Linux 및 MacOS에서 작동합니다. DNS 터널링을 지원합니다.

SSH를 통해 모든 트래픽을 서버로 전달할 수 있습니다.DNS 포함.

나는 그것을 직접 사용하지 않았지만 아마도 이것이 당신이 찾고 있는 것일까요?

답변2

예, 아니오. Dnsmasq는 SOCKS 프로토콜 명령이 없기 때문에 SOCKS 프록시에 이름 확인을 요청할 수 없습니다. 프록시에는 도메인 이름 + 포트를 사용하는 명령만 있습니다.그리고즉시 연결하지만 클라이언트는 사용된 IP 주소를 실제로 알지 못합니다. (그리고 DNS는조금 더단순한 IP 주소 조회가 아닌, 그러한 기능이 있더라도~였다아직 DNS를 제대로 에뮬레이트할 수 없습니다.)

그러나 일부 DNS 확인자(Dnsmasq 아님)는진짜SSH 터널을 통한 DNS 서버. TCP를 지원하려면 DNS 서버가 필요하므로 표준 ssh -L터널을 사용하여 일부 원격 서버를 가리킬 수 있습니다. Dnsmasq는 작동하지 않지만(항상 UDP를 먼저 시도함) Unbound는 항상 TCP를 통해 쿼리하도록 지시받을 수 있습니다. DoT(TLS를 통한 DNS) 또는 DoH를 사용하는 확인자도 현재 TCP 기반이므로 작동합니다.

하지만 SOCKS 대신 IP 계층 터널(VPN)을 추천하고 싶습니다. TCP만으로 오랫동안 살아남을 수 있지만 많은 프로그램에는 UDP도 필요하며 SOCKS를 통해 동일한 작업을 수행하는 것보다 IP 터널을 통해 모든 것을 라우팅하는 것이 전반적으로 훨씬 간단합니다.

답변3

사루님 덕분에답변, 프록시로 셔틀을 이동할 수 있었습니다.오직다음과 같은 명령을 사용하여 DNS 요청:

sshuttle --dns -r username@host \
    --ns-hosts=dns01.example.com,dns02.example.com \
    0/0:53 ::/0:53

관련 정보