Сделайте обратный динамический порт-форвард, используя только Plink.

Вопрос или проблема

Много онлайн-учебников объясняют, как настроить ssh для создания динамического прокси-сервера. В моем случае, используя только Plink, у меня возникли некоторые проблемы.

Контекст следующий: я хочу, чтобы весь мой трафик (HTTP, RDP и т.д.) с моего HOSTA (Linux машина) перенаправлялся на HOSTB (Windows машина).

Мои команды следующие:

[HOSTB – Windows машина]

plink.exe -N -D 127.0.0.1:8888 -P 22 REMOTEIP
plink.exe -N -R 2222:127.0.0.1:8888 -P 22 REMOTEIP

[HOSTA – Linux машина]

 curl --socks5 127.0.0.1:2222 https://www.google.com

Все порты открыты (8888 на HOSTB и 2222 на HOSTA). Однако, кажется, что трафик выходит из HOSTA, но не из HOSTB. Я пробовал с разными программами и разными версиями соксов, проблема остается.

Я что-то упускаю?

Спасибо!

Это старый вопрос, но он продолжает возникать.

Как упоминалось в комментариях к вашему вопросу, ваши попытки приводят к динамическому перенаправлению порта на систему, из которой вы хотите инициировать связь (SOCKS клиент). И это не достигнет обратного динамического перенаправления порта, на которое вы надеялись.

Что вам нужно, это следующее:

plink.exe -N -R 2222:127.0.0.1:8888 -P 22 REMOTEIP
и
  # когда локальный хост работает как SSH сервер
  plink.exe -N -D 127.0.0.1:8888 -P 22 localhost
или
  # когда локальный хост не имеет SSH сервера
  plink.exe -N -D 8888 -P 22 PROXYSSHIP
или
  # когда имеется выделенный SOCKS прокси-сервер
  plink.exe -N -L 8888:SOCKSPROXYIP:SOCKPORT

Вы можете заменить localhost на другой SSH сервер, который может делать динамическое перенаправление портов, или вы можете перенаправить трафик на SOCKS прокси-сервер. Но для достижения вашей цели, выбранный вами сервер должен находиться в сети, которую вы хотите проксировать.

Таким образом, проблема часто возникает, когда у вас нет SSH сервера в целевой сети, к которому вы могли бы подключиться. Например, localhost не имеет работающего SSHd (сервера), и у вас нет учетной записи на другом сервере с поддержкой SSH в этой сети. Кроме того, если вы не знаете о каких-либо SOCKS прокси, обслуживающих эту сеть, ваши варианты значительно сокращаются.

Без SSHd, к которому можно подключиться, вы не сможете это сделать, потому что PLINK (0.63) — это клиент, который не имеет реализации SOCKS. Если бы вы использовали OpenSSH 7.6 или новее, то SSH клиент имеет функцию SOCKS, что означает, что вы могли бы подключиться обратно к своему клиентскому компьютеру с помощью команды…

ssh me@mine -R 1080 -N -f

… и SSH клиент будет действовать как прокси-сервер (не требуется отдельный прокси-сервер). Увы, это доступно только в инструментах, которые созданы с OpenSSH 7.6+, насколько я знаю.

Итак, вещи, которые вы могли бы попробовать, указаны ниже. 1, 2 и 3 работают с указанными выше изменениями, тогда как 4 и 5 требуют исследования.

  1. Вы могли бы установить SSH сервер на своем Windows клиенте и использовать localhost выше
  2. Вы могли бы найти другой сервер в той же сети, что и ваш Windows клиент, к которому вы можете подключиться с помощью PLINK и запустить там свой SOCKS прокси.
  3. Вы могли бы найти существующий SOCKS прокси, который уже делает то, что вам нужно.
  4. Вы могли бы попробовать найти более позднюю версию PLINK, надеясь, что функция SOCKS была добавлена к ней, как в OpenSSH 7.6+
  5. Возможно, вы сможете использовать “Secure Socket Funneling”, но для этого потребуется настроить сервер где-то, до которого могут дойти как ваш SOCKS клиент, так и ваш Windows клиент, и потребуется запустить SSF клиент на вашем Windows клиенте. Я пока не делал этого сам, так что говорю без личного опыта.

Ответ или решение

Для реализации обратного динамического портового перенаправления с использованием только Plink, потребуется учесть несколько важных нюансов и возможных проблем. В вашем случае, задача состоит в том, чтобы перенаправить весь трафик (HTTP, RDP и т.д.) с машины HOSTA (Linux) на машину HOSTB (Windows). Рассмотрим детально, как это реализовать.

Понимание проблемы

Вы пытаетесь использовать Plink для создания обратного динамического порта, но сталкиваетесь с трудностями. Проблема, скорее всего, связана с неправильной настройкой команд и их последовательностью. Как уже упоминали в комментариях, ваши текущие команды не позволяют достичь нужного результата, так как для корректной работы SSH требуется наличие сервера.

Рассмотрим решение

  1. Установка SSH-сервера на HOSTB (Windows):
    Убедитесь, что на вашем Windows-машине установлен сервер SSH. Это может быть, например, OpenSSH для Windows или любое другое ПО, способное работать как SSH-сервер. При этом Plink будет использоваться как клиент для выполнения команд.

  2. Команды для Plink:
    Для создания обратного динамического портового перенаправления используйте следующие команды:

    Для HOSTB:

    plink.exe -N -R 2222:127.0.0.1:8888 -P 22 REMOTEIP

    Объяснение:

    • -N – не выполнять удаленные команды.
    • -R 2222:127.0.0.1:8888 – это команда, которая перенаправляет порты: внешний порт 2222 на HOSTA будет направляться на 8888 на HOSTB.

    Для HOSTA:

    plink.exe -N -D 127.0.0.1:8888 -P 22 localhost

    Объяснение:

    • -D 127.0.0.1:8888 – создание динамического SOCKS-прокси на localhost, который будет прослушивать 8888 порт.
  3. Использование клиента cURL:
    После настройки вы сможете использовать cURL на HOSTA для доступа к интернету через созданный прокси:

    curl --socks5 127.0.0.1:8888 https://www.google.com

Решение альтернативных проблем

Если вы не можете установить SSH-сервер на HOSTB или подключить другой SSH-сервер в той же сети, ваши варианты будут ограничены. Ниже приведены дополнительные альтернативы:

  1. Использование существующего SOCKS-прокси: Постарайтесь найти работающий SOCKS-прокси на вашей сети, чтобы перенаправить трафик через него.

  2. Поиск альтернатив Plink: Попробуйте найти версии Plink или SSH-клиента с поддержкой SOCKS, такие как более новые версии OpenSSH (7.6 и выше), если это возможно.

  3. Использование Secure Socket Funneling (SSF): Это менее распространённый метод, который требует настройки собственного сервера и клиента SSF, что может быть довольно сложным, но это тоже один из возможных путей.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...