| Проброс доступа к SSH через HTTPS |
[исправить] |
Для организации подключения к SSH-серверу из окружений, в которых заблокирован
любой трафик, кроме HTTP/HTTPS, можно настроить проброс к SSH на основе
внешнего HTTP-прокси.
На локальной системе, из которой производится подключение по SSH, добавляем в
файл конфигурации ~/.ssh/config настройку для проброса доступа к SSH-сервру с
именем "ssh-server" через обращение к хосту "ssh-via-https" утилитой ssh:
.ssh/config
Host ssh-via-https
ProxyCommand ~/.ssh/https-tunnel.bash
# уменьшаем интервал проверочных запросов для поддержания соедиения,
# так как некоторые межсетевые экраны агрессивно закрывают неактивные соединения.
ServerAliveInterval 30
Создаём скрипт ~/.ssh/https-tunnel.bash, в котором симулируем использование
прокси-метода CONNECT при подключении к HTTPS-серверу "https-server" через
утилиту socat, которая не поддерживает данный метод.
#!/usr/bin/env bash
{ printf "CONNECT ssh-server:22 HTTP/1.0\r\n\r\n"; cat; } | socat - SSL:https-server:443
На стороне внешнего HTTP-сервера "https-server" в конфигурации Apache httpd
включаем модуль proxy_connect_module и разрешаем перенаправление запросов на 22
сетевой порт SSH-сервера "ssh-server".
/etc/httpd/httpd.conf
LoadModule proxy_connect_module .../modules/mod_proxy_connect.so
# ...
AllowCONNECT 22
<Proxy *>
Order deny,allow
Deny from all
</Proxy>
<Proxy ssh-server>
Order deny,allow
Allow from all
</Proxy>
Подключаемся к SSH-серверу "ssh-server" командой:
ssh ssh-via-https
|
| |
|
|
|
| Раздел: Корень / Безопасность / SSH |