Если я использую SSH для прокси SOCKS, соединения DNS проходят его?

6 ответов

Если это прокси SOCKS 5 и клиентская программа его поддерживает, DNS будет проходить через прокси. Большинство браузеров поддерживают DNS через прокси Socks 5, но для этого может потребоваться специальная конфигурация.

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

8
ответ дан 2 December 2019 в 21:19

Вы не можете сделать это из коробки, поскольку туннель SSH предназначен только для соединений TCP / IP - трафик UDP не сможет пройти через этот туннель без специальной настройки. В основном вам нужно создать FIFO, чтобы проделать некоторые трюки с netcat, как описано здесь . Тогда вы можете использовать DNS Google из удаленного окна.

2
ответ дан 2 December 2019 в 21:19

Как говорит pfo, туннели SSH предназначены только для TCP-трафика, и приложение должно знать о прокси-серверах SOCKS.

Если вы хотите, чтобы все туннелировалось, вам нужен правильный VPN. Взгляните на что-то вроде OpenVPN .

0
ответ дан 2 December 2019 в 21:19

Я знаю, что ответ немного запаздывает, но для справки и для тех, кто все еще ищет ответ,

Установите свойство network.proxy.socks_remote_dns в конфигурации firefox (введите about: config в адресной строке) в значение ИСТИНА (просто дважды щелкните свойство, чтобы переключить значение), чтобы включить поиск DNS через локальный / удаленный прокси-сервер socks5.

PS: Я не уверен насчет других браузеров : (

22
ответ дан 2 December 2019 в 21:19

Как уже упоминалось там, ваш поиск по всей системе не настроен.

Если вы хотите решение на основе 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
1
ответ дан 2 December 2019 в 21:19

Это зависит от вашего приложения. Firefox, например, отправляет имя хоста на прокси-сервер SOCKS, не разрешая его. В этом случае вам не нужно ничего делать для конфиденциальности. Вы можете подтвердить это с помощью wirehark.

PS. Предположим, вы используете прокси-сервер SOCKS5. SOCKS4 не поддерживает имя хоста.

0
ответ дан 2 December 2019 в 21:19

Теги

Похожие вопросы