Можно ли настроить прокси для SSH на основе имени хоста?
Такой как:
|-> host1.domainexample1.com
|-> host2.domainexample1.com
SSH from outsite <-> Firewall <-|-> domainx.com (Default)
|-> host1.domainexample2.com
|-> host2.domainexample2.com
Более того, по соображениям безопасности, я бы хотел иметь мультиплексный порт. Такой порт можно архивировать с помощью SSHL, заставив порт 443 работать для OpenVPN, HTTPS и SSH.
В идеале было бы здорово, если бы NGINX мог поддерживать все это.
Спасибо.
решение1
Поскольку SSH не отправляет SNI, Nginx не может маршрутизировать SSH-соединения по имени хоста.
Но есть трюк, который может отправить имя хоста перед SSH. Вам нужно настроить его на вашемместныймашина.
Изменить ~/.ssh/config
:
Host *.domainexample1.com
ProxyCommand openssl s_client -quiet -servername %h -connect your.firewall.ip.com
Таким образом, вы можете получить имя хоста $ssl_preread_server_name
в Nginx. Затем вы можете маршрутизировать их, установив некоторые апстримы.