SSH через прокси Socks без имени пользователя и пароля

8

У меня есть список прокси-серверов SOCKS с этого сайта.

Я читал о создании динамических туннелей ssh -Dи, если честно, я уже пробовал это. К сожалению, по какой-то причине я не могу подключиться ни к одному из прокси-серверов из списка.

Я использую OpenSSH_5.3p1 Debian-3ubuntu7, OpenSSL 0.9.8kна BackTrack. Если кто-то захочет помочь или указать пошаговое руководство, которое будет работать для меня, я был бы очень признателен.

Чего я хочу добиться, так это подключиться с машины Aчерез ssh-туннель на машине Bк машине C. Допустим, sshd на компьютере Cпрослушивает порт 21, а Bпрокси-сервер компьютера прослушивает порт 1080.

Дополнительный вопрос:

Я также хотел бы создать туннель для прокси-сервера socks, который позволил бы мне настроить localhost: 8080 в firefox в качестве прокси и позволить мне просматривать сеть с компьютера Bс BIP-адресом компьютера.

mnmnc
источник
Что ты пытаешься сделать? Правильно ли я предполагаю, что «Машина B» должна быть из этого списка?
sr_
Я пытаюсь использовать сервер посередине в качестве прокси-сервера для подключения к третьей машине. B машина из списка - правильно. Я также хотел бы создать туннель для прокси-сервера socks, который позволил бы мне настроить localhost: 8080 в firefox в качестве прокси и позволить мне просматривать сеть с компьютера B с IP-адресом компьютера B.
mnmnc
Почему вы используете SSH на 21 порт?
Хлипкий

Ответы:

10

Мне кажется, что вам нужен клиент socks или клиент ssh, который понимает socks. -Dдля ssh быть сервером / прокси socks.

Вы можете использовать ssh под tsocks, или другую оболочку SOCKS. Или используйте ssh ProxyCommand в сочетании с socatили nc -X:

ssh -o ProxyCommand='socat - socks:B:%h:21,socksport=1080' C

Чтобы иметь HTTP-прокси, который использует сервер SOCKS для отправки HTTP-запросов, вы можете запустить небольшой прокси (например tinyproxy) под tsocks.

Обратите внимание, что не все приложения хорошо работают tsocksили с любой подобной оболочкой, которая полагается LD_PRELOAD, но tinyproxyделает это.

Также обратите внимание, что у вас могут быть проблемы с разрешением доменного имени (в зависимости от того, хотите ли вы, чтобы имена были разрешены по обе стороны туннеля). tsocksне работает для разрешения имен удаленно. Единственный способ, которым он может работать, - это когда ваш сервер имен (in /etc/resolv.conf) доступен с другого конца, и вы используете TCP для разрешения домена (который tsocksможет попытаться применить, но, как правило, не получается). Клиент / сервер socksifyfrom dante's SOCKS работает лучше в этом случае, поскольку он также оборачивает функции разрешения и может также использовать небольшую хитрость для фальсификации разрешения имен, чтобы можно было использовать соединения по имени SOCKS.

Стефан Шазелас
источник
ДА! Это работает ssh -o ProxyCommand='socat - socks:218.62.97.105:HOST_B:21,socksport=1080' C. Это действительно здорово. Спасибо. Не могли бы вы предложить команду для создания туннеля с этим прокси-сервером, который я мог бы настроить в Firefox как локальный веб-прокси? Я не уверен, что это может работать: Firefox + туннель локального порта -> туннель socks Машина B -> HTTP-сервер. Если это возможно, и вы знаете, как это сделать, пожалуйста, поделитесь, и я обещаю вам +100 :) за это. Если это невозможно, я все равно дам +50 за ответ выше.
mnmnc
1
Firefox поддерживает носки напрямую (см. Дополнительные параметры прокси, настройки сети)
Стефан Шазелас,
Хорошо. Может быть, я ввел вас в заблуждение, предложив Firefox. Допустим, CURL - и я хочу подключиться через локальный прокси, чтобы я мог автоматизировать в bash-скрипте создание туннеля.
mnmnc
2
Ну, curl также поддерживает SOCKS. Итак, вы хотите превратить прокси-сервер socks в HTTP-прокси? Затем вы можете запустить прокси-сервер HTTP (например tinyproxy) подtsocks
Stéphane Chazelas
Хорошо. Цокс, кажется, именно то, что мне нужно. приз через 2 дня, как и обещал. Большое спасибо. :)
mnmnc