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

Запуск нескольких сервисов на порту 443, туннель SSH через HTTPS

Ситуация: Я хочу туннелировать сеансы SSH через HTTPS. У меня очень ограниченный брандмауэр / прокси, который разрешает только трафик HTTP, FTP и HTTPS.

Что работает: Настройка туннеля через прокси-сервер к удаленному Linux-серверу, у которого sshd прослушивает порт 443

Эта проблема: У меня должен быть веб-сервер (светлый), работающий на порту 443. HTTPS-трафик на другие порты запрещен прокси-сервером.

Идеи на данный момент: Настройте виртуальный хост и проксируйте все входящие запросы на localhost: (например, 22)

$HTTP["host"] == "tunnel.mylinux.box" {                                         
    proxy.server = (                                                            
        "" => (("host" => "127.0.0.1", "port" => 22))                           
    )                                                                           
}

К сожалению, это не сработает. Я что-то делаю не так или есть причина, по которой это не сработает?

Возможно, вы захотите заглянуть в C реализация sslh.

С веб-сайта:

sslh позволяет принимать как HTTPS-, так и SSH-соединения на одном и том же порте. Это позволяет подключаться к серверу SSH через порт 443 (например, изнутри корпоративного брандмауэра), продолжая обслуживать HTTPS на этом порту. Эта функция уже реализована в виде сценария Perl.

С sslh есть две проблемы:
- Это на Perl. Это означает, что он довольно требователен к оперативной памяти и, вероятно, не очень быстр.
- Не справляется с сбросом привилегий, что довольно сомнительно.

Очевидным решением обеих проблем была повторная реализация его на C, о чем и идет речь.