Зворотний тунель SSH з локального ssh-сервера на віддалений клієнт-ssh, перенаправляючи трафік на інший сервер клієнтської мережі?


0

Чи можливо це?

  1. локальна система w / ssh-сервер
  2. віддалений клієнт, що працює підключення ssh-клієнта до (1)
  3. цільове призначення в мережі (2) клієнта для локального (1) трафіку

Коли віддалений клієнт ssh підключається до локального ssh-сервера, я хочу перенести трафік зі своєї локальної системи на інше місце в мережі клієнтської системи.

Наприклад, якщо я виконую переадресацію на порт 80, то після того, як клієнт підключиться через ssh, а локальний трафік, спрямований на порт 80, буде перенаправлений на (3) вище.

Якщо можливо, і запропонували клієнтам ssh, які б легше підтримували це чи це лише командний рядок налаштування?

Дякую!

Відповіді:


0

Перша частина цього - створення тунелю - може бути виконана клієнтським програмним забезпеченням ssh.

У стандартному командному рядку ssh-клієнта (я використовую Mac, але вважаю, що ця поведінка відповідає версіям unix / linux), використання вказує ' -R [bind_address:]port:host:hostport' для того, щоб порт пересилався з сервера до клієнта (тоді як -Lвперед від клієнта на сервер).

Наприклад, якщо ви хочете переслати порт 80 на віддаленому сервері ssh на локальний веб-сервер, до якого клієнтський комп'ютер отримав би доступ, перейшовши на нього http://localserver:80/, ви з'єднаєтесь із додатковим аргументом командного рядка -R 80:localserver:80.

Залежно від ОС клієнтського комп'ютера, існуватимуть різні варіанти налаштування. Якщо ви перебуваєте на будь-якій ОС на базі Unix, я б рекомендував вище, або якщо ви працюєте в Windows, PuTTY може налаштувати такий тип тунелю (Налаштування / SSH / Тунелі - виберіть "Віддалений" замість "Місцевий" ').

Після налаштування тунелю це дозволить будь-кому в тій же мережі, що й ssh-сервер, підключатися до веб-сервера клієнтської мережі. Однак вони не зможуть підключитися до нього через його реальний IP - їм доведеться підключитися до них, http://sshserver:80/і трафік буде перенаправлений на віддалений сервер, і відповідь повернеться.

Якщо ви хочете отримати доступ до того ж сервера через один і той же URL-адрес, вам потрібно буде додати відповідну запис DNS у мережі ssh-сервера, вказуючи на IP-адресу ssh-сервера. Він не буде доступний при відключенні ssh-клієнта.

Також зауважте, що на ssh-сервері є лише один порт 80, тому ви могли робити це лише для одного віддаленого сервера за один раз. Якщо ви хочете обійти це обмеження, вам доведеться призначити кілька IP-адрес серверу ssh і використовувати необов'язковий аргумент 'прив’язати адресу' в командному рядку ssh, або ви могли поширити сервери на різні порти (зазвичай 8080, 8081, ...) шляхом вибору різних віддалених портів у команді ssh - самі веб-сервери все ще можуть використовувати порт 80.

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