Как обеспечить дополнительную защиту ssh-подключения при использовании ngx_stream_proxy_module?
Есть некий «фронт»-сервер Nginx, который выступает в качестве reverse-прокси для 80 и 443 портов.
Возникла потребность с помощью модуля ngx_stream_proxy_module перенаправлять ssh с «фронт»-сервера на другой сервер, где открыт 22ой порт. Например, приходит запрос на 1.2.3.4:2022, и Nginx его направляет на сервер 3.4.5.6:22.
Возможно ли на сервере 1.2.3.4 обеспечить дополнительную защиту для того, чтобы подключиться по ssh ? Например, наличие специального сертификата со стороны клиента? То есть, если есть сертификат, то устанавливается ssh-соединение, человек вводит логин пароль в терминале Putty и работает.
Сертификат либо ключ должен проверяться Nginx, и если сертификат действительный, то Nginx начинает форвардить ssh трафик на 2.3.4.5:22
Просто к одному внешнему IP адресу привязано много доменных имён.
На Микротике через dnat направляю трафик на Nginx, который, исходя из доменного имени, направляет запросы на нужный web-сервер. Это очень удобно особенно для 443 порта.
Но возникла необходимость направлять и ssh трафик тоже с фронт-сервера на web-сервера для технических моментов. Вот и хотел узнать, что можно использовать, чтобы обеспечить доп защиту для ssh на стороне фронт-сервера.
Например, чтобы при наличии некого ключа у ssh-клиента фронт-сервер начинал форвардить ssh на нужный web-сервер. Например, если 1.2.3.4:2022, то реверс на 2.3.4.5:22. Если 1.2.3.4:2122, то реверс на 6.7.8.9:22
Евдоким, у меня сейчас открылась. https://selfhostedhome.com / reverse-proxy-with-https-without-opening-ports/
(слитно, т.к. бага тут какая-то у тостера при постинге)