8

Предисловие: Я ищу явные инструкции в том же формате, что и выше. То есть что-то вроде run: «… запустите команду X на машине A, затем команду Y на машине B…»

У меня есть рабочий прокси с моего ноутбука (машина A) на машину B:

[A]$ ssh -ND 8888 B

Я могу настроить Firefox для использования SOCKS прокси на локальном порту A 8888 , и просмотр на A работает. Все идет нормально.

Но у меня также есть прокси-носки между машинами B и C:

[B]$ ssh -ND 8157 C

Таким образом, я могу просматривать B, как если бы я был на C, установив прокси-сервер для Firefox B на 8157 .

Есть ли способ связать два прокси, чтобы я мог использовать Firefox локально (на A) при подключении к C?

То есть каким-то образом пересылать все запросы Firefox на носки от A до C. A и C не могут видеть друг друга напрямую, но у меня везде есть полный доступ по SSH. Все машины Debian.

Обратите внимание, что я не хочу пересылать один порт, например, порт 80, но мне нужен полностью связанный SOCK-прокси.

2 ответа2

11

Просто подтвердил, что это работает с некоторыми виртуальными машинами:

[A]$ ssh -tt -v -L8888:localhost:8157 user@B ssh -t -D 8157 user@C

От A вы открываете туннель прямого порта от 8888 локально до 8157 на B -L8888:localhost:8157 . После того как вы установили соединение с B, запускается удаленная команда ssh -t -D 8157 user@C , которая предоставляет ваш SOCKS-прокси через C. Из того, что я прочитал, кажется, что -t требуется, хотя мне еще предстоит выяснить, почему.

Обратите внимание, что это одна команда на первом хосте, которая дважды вызывает ssh, из A-> B и из B-> C. Вы также можете разбить это на отдельные команды, как описано ниже.

Бонус: для объединения трех прокси ...

Т.е. A->B->C->D->Internet

[hostA]$ ssh -2 -C -D 55557 -L 55556:127.0.0.1:55556 -L 55555:127.0.0.1:55555 user@B
[hostB]$ ssh -2 -C -D 55556 -L 55555:127.0.0.1:55555 user@C
[hostC]$ ssh -2 -C -D 55555 user@D

Обратите внимание, что для каждого прыжка вам нужен дополнительный соответствующий сервер пересылки -L на предыдущих хостах в цепочке.

Рекомендации:

3

Отличный ответ glallen с использованием SSH сделает работу. Тем не менее, правильный способ сделать это - использовать программу proxychains . ProxyChains - это мощный инструмент, который позволяет вам легко использовать несколько прокси-серверов одновременно. Например, он используется хакерами, чтобы скрыть свою идентификацию при проведении интернет-атак - объединяя в сеть кучу прокси-серверов по всему миру, судебным следователям становится практически невозможно отследить весь трафик до них. Нельзя сказать, что вы злонамеренный хакер - он будет работать для многих различных вариантов использования. ;)

ProxyChains устанавливается по умолчанию в некоторых дистрибутивах Linux (например, Kali Linux). Например, в Ubuntu/Debian вы можете легко установить его, выполнив:

  • sudo apt-get install proxychains

Proxychains ищет файл конфигурации в /etc/proxychains.conf . После того, как он установлен, сделайте резервную копию существующего файла конфигурации Proxychains (если он существует) и создайте новый:

  • mv /etc/proxychains.conf /etc/proxychains-backup.conf
  • nano /etc/proxychains.conf

Теперь вставьте в этот пример конфигурацию, которую я написал для вас:

strict_chain

proxy_dns

tcp_read_time_out 15000
tcp_connect_time_out 8000

[ProxyList]
socks4          192.168.1.1     8888
socks4          192.168.1.2     8157
socks4          192.168.1.3     6969

В этом примере 192.168.1.1 - это IP-адрес первого прокси-сервера SOCKS, 8888 - это порт, который прослушивает первый прокси-сервер SOCKS, 192.168.1.2 - это IP-адрес второго прокси-сервера SOCKS, 8157 - это порт, который второй прокси SOCKS прослушивает и так далее.

Теперь используйте прокси-цепи, proxychains firefox из командной строки для запуска Firefox. (Убедитесь, что Firefox сначала закрыт.) Теперь, всякий раз, когда Firefox устанавливает исходящее соединение, программа proxychains будет инкапсулировать трафик так, чтобы он передавался через все серверы, указанные в этом файле конфигурации. Для ясности, в ваших настройках Firefox не следует указывать ЛЮБЫЕ прокси-серверы - прокси-цепочки позаботятся обо всем за кадром.

Обратите внимание, что в целях устранения неполадок, вы, вероятно, должны попытаться заставить его работать, используя 1 прокси за раз, прежде чем пытаться все 3. ;)

Рекомендации:

  • Официальный веб-сайт proxychains (последняя версия 3.1, выпущенная в 2006 году): http://proxychains.sourceforge.net
  • Веб-сайт для proxychains-ng (ветвь оригинальных proxychains, которая фактически сохраняется на 2015 год): https://github.com/rofl0r/proxychains-ng

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .