Якщо я використовую SSH для проксі-сервера SOCKS, чи проходять через нього з'єднання DNS?


14

Я використовую ssh -D 8080 my serverдля створення проксі-сервера SOCKS. Потім я налаштовую OS X на використання localhost:8080проксі-сервера SOCKS. Я використовую це для доступу до Інтернету без моніторингу.

Я використовую DNS-сервери Google (8.8.8.8), але як переконатися, що запити DNS проходять через тунель SSH?


1
"без моніторингу" є ілюзією
машинний вирок

Відповіді:


22

Я знаю, що відповідь трохи пізно, але для довідок і для тих, хто ще шукає відповідь,

Встановіть network.proxy.socks_remote_dnsвластивість у програмі firefox (введіть about: config в адресному рядку) на TRUE (просто двічі клацніть властивість, щоб переключити значення), щоб увімкнути dns-пошук через ваш локальний / віддалений проксі socks5.

PS: Я не впевнений у інших браузерах :(


1
Для тих, хто надає перевагу користувальницькому інтерфейсу, це в розділі Налаштування → Додатково → вкладка Мережа → Кнопка налаштувань (для «Підключення») → «DNS проксі-сервера при використанні SOCKS v5».
jwd

Я помітив, що DNS НЕ переходить через проксі для HTTP, але він працює для HTTPS. Як це може бути? Це як розроблено? (Я використовую Firefox)
Євген Д. Губенков

8

Якщо це проксі-сервер SOCKS 5 , і клієнтська програма його підтримує, DNS перейде через проксі. Більшість браузерів підтримують DNS через проксі-сервер Socks 5, але для цього може знадобитися спеціальна конфігурація.

Якщо ваша мета - конфіденційність в Інтернеті, ви дійсно повинні використовувати щось на зразок privoxy . Privoxy очистить заголовки веб-запитів і забезпечить увесь трафік, включаючи DNS, через проксі-сервер Socks 5. Запуск privoxyлокально, і ви можете використовувати sshдля тунелю трафіку Socks 5.


2

Ви не можете зробити це з поля, оскільки тунель SSH призначений лише для з'єднань TCP / IP - трафік UDP не зможе перетинати цей тунель без спеціальних налаштувань. В основному вам потрібно створити фіфо, щоб виконати хитрість з мережею, як описано тут . Тоді ви можете використовувати DNS google з далекого вікна.


1

Як вже було сказано там , ваші системні пошукові системи не тунелюються .

Якщо ви хочете рішення на основі SSH, ви можете отримати тут натхнення або скористатися SSHuttle (наприклад, згадане тут ). Існує патч, щоб легко пересилати запити 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, не вирішуючи його. У цьому випадку вам не потрібно нічого робити для конфіденційності. Ви можете підтвердити це за допомогою дроту.

PS. припустимо, ви використовуєте проксі-сервер SOCKS5. SOCKS4 не підтримує ім'я хоста.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.