Nếu tôi đang sử dụng SSH cho proxy SOCKS, các kết nối DNS có đi qua nó không?


14

Tôi đang sử dụng ssh -D 8080 my serverđể tạo proxy SOCKS. Sau đó, tôi đang định cấu hình OS X để sử dụng localhost:8080làm proxy SOCKS. Tôi đang sử dụng điều này để truy cập internet mà không bị theo dõi.

Tôi đang sử dụng máy chủ DNS của Google (8.8.8.8), nhưng làm cách nào để đảm bảo rằng các truy vấn DNS đang đi qua đường hầm SSH?


1
"mà không bị theo dõi" là một ảo ảnh
máy móc

Câu trả lời:


22

Tôi biết câu trả lời là hơi muộn, nhưng để tham khảo và cho những người vẫn đang tìm kiếm câu trả lời,

Đặt thuộc network.proxy.socks_remote_dnstính trong cấu hình firefox (gõ about: config trong thanh địa chỉ) thành TRUE (chỉ cần nhấp đúp vào thuộc tính để chuyển giá trị) để bật tra cứu dns qua proxy cục bộ / remote5 của bạn.

PS: Tôi không chắc chắn về các trình duyệt khác :(


1
Đối với những người thích giao diện người dùng, đây là trong Tùy chọn → Nâng cao → tab Mạng → Nút cài đặt (cho "Kết nối") → "Proxy DNS khi sử dụng SOCKS v5".
jwd

Tôi đã nhận thấy rằng DNS KHÔNG thông qua proxy cho HTTP, nhưng nó hoạt động với HTTPS. Làm thế nào điều này có thể là trường hợp? Đây có phải là thiết kế? (Tôi đang sử dụng Firefox)
Eugene D. Gubenkov

8

Nếu đó là proxy SOCKS 5 và chương trình máy khách hỗ trợ nó, DNS sẽ đi qua proxy. Hầu hết các trình duyệt hỗ trợ DNS thông qua proxy Vớ 5, nhưng có thể yêu cầu cấu hình đặc biệt để thực hiện.

Nếu mục tiêu của bạn là quyền riêng tư trên web, bạn thực sự nên sử dụng một cái gì đó như privateoxy . Privoxy sẽ xóa các tiêu đề của các yêu cầu web của bạn và đảm bảo tất cả lưu lượng truy cập, bao gồm cả DNS, đi qua proxy Vớ 5. Chạy privoxycục bộ và bạn có thể sử dụng sshđể tạo đường hầm cho lưu lượng Vớ 5.


2

Bạn không thể thực hiện việc đó vì đường hầm SSH chỉ dành cho kết nối TCP / IP - Lưu lượng UDP sẽ không thể đi qua đường hầm đó mà không có thiết lập đặc biệt. Về cơ bản, bạn cần tạo một fifo để thực hiện một số mánh khóe với netcat như được mô tả ở đây . Bạn có thể sử dụng DNS của google từ hộp xa.


1

Như đã đề cập ở đó , hệ thống tra cứu trên toàn hệ thống của bạn không được điều chỉnh .

Nếu bạn muốn một giải pháp dựa trên SSH, bạn có thể lấy cảm hứng từ đây hoặc sử dụng SSH mực (ví dụ như được đề cập ở đây ). Có một bản vá để chuyển tiếp các truy vấn DNS dễ dàng.

YMMV, nhưng tôi đã thành công với những điều sau:

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

Như pfo nói, các đường hầm SSH chỉ dành cho lưu lượng TCP và ứng dụng phải nhận biết được các proxy của SOCKS.

Nếu bạn muốn mọi thứ được tạo đường hầm, bạn cần có VPN phù hợp. Hãy nhìn vào một cái gì đó như OpenVPN .


0

Nó phụ thuộc vào ứng dụng của bạn. Firefox, ví dụ, gửi tên máy chủ đến proxy SOCKS mà không giải quyết nó. Trong trường hợp này, bạn không phải làm bất cứ điều gì cho sự riêng tư. Bạn có thể xác nhận điều đó bằng wireshark.

Tái bút giả sử bạn đang sử dụng proxy SOCKS5. SOCKS4 không hỗ trợ tên máy chủ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.