NGINX SSH поток на основе имени хоста
Можно ли настроить прокси для 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
в Нгинксе. Затем вы можете маршрутизировать их, установив некоторые восходящие потоки.