Назад | Перейти на главную страницу

доступ к неэкспонированным службам на удаленной машине

У меня работают службы (в контейнерах докеров) на удаленном сервере, к которому у меня есть доступ по ssh.

Эти службы являются административными API, которые я бы предпочел не раскрывать миру (мне не очень нравится настраивать аутентификацию для каждой из этих служб и иметь больше паролей для управления, когда только несколько администраторов, которые уже имеют доступ по ssh, могут нужно их использовать). Тем не менее, я хотел бы иметь возможность взаимодействовать с этими службами со своей рабочей станции (используя инструменты, установленные на моей рабочей станции). Я хочу повторно использовать мою существующую аутентификацию ssh.

В идеале я бы хотел один раз создать безопасное туннельное соединение с удаленным сервером и использовать его для доступа к тем API, которые только прослушивают запросы, поступающие из локальной сети (т.е. как если бы из localhost), так что только те, кто имеет доступ к серверу ssh, могут получить доступ к этим apis.

Я не думаю, что можно проксировать трафик «через» интерфейс удаленной петли, но есть ли способ, чтобы эти службы слушали только соединения, проксируемые через сервер, без необходимости иметь конфигурацию, специфичную для каждой службы (например, правило брандмауэра для каждого порта)?

Я играл и пытался понять разные методы туннелирования ssh, например ssh -D ..., ssh -L ..., ssh -R ..., ... но они не позволяют мне получать доступ к службам, прослушивающим удаленный "localhost", поэтому мне все равно придется иметь правила брандмауэра.

Спасибо.

Я думаю, что вы пытаетесь достичь, это называется SSH-туннелирование. Обычно вы можете настроить перенаправление локального порта на вашей рабочей станции на удаленный сервер следующим образом:

Локальный сервер: node1 (10.0.0.1) (т.е. с доступным портом 5000).
Удаленный сервер: node2 (10.0.0.10) запускает веб-приложение на порту 8080.

На узле 1:

ssh корень @ node2 -L 5000: node2: 8080

Тестирование с узла 1:

http: // локальный: 5000 или http://10.0.0.1:5000

Вы можете найти больше информации Вот.

Надеюсь, это поможет.