The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Раздел полезных советов: Проброс доступа к SSH через HTTPS"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Раздел полезных советов: Проброс доступа к SSH через HTTPS"  +/
Сообщение от auto_tips (?), 24-Дек-23, 10:07 
Для организации подключения к 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

URL: https://trofi.github.io/posts/295-ssh-over-https.html
Обсуждается: http://www.opennet.dev/tips/info/3242.shtml

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Проброс доступа к SSH через HTTPS"  +3 +/
Сообщение от ананизмус (?), 24-Дек-23, 10:07 
И в итоге ваш веб сервер можно использовтаь как прокси для подключения к любому ssh серверу в интернете- не?
Ответить | Правка | Наверх | Cообщить модератору

2. "Проброс доступа к SSH через HTTPS"  +3 +/
Сообщение от OpenEcho (?), 24-Дек-23, 12:01 
А не проще на серверной стороне просто юзать haproxy, который элентарно может слушать для обоих https & ssh и разруливать по соответсвующему бэкенду?
Ответить | Правка | Наверх | Cообщить модератору

3. "Проброс доступа к SSH через HTTPS"  +/
Сообщение от pavlinux (ok), 24-Дек-23, 12:25 
>  . . . из окружений, в которых заблокирован любой трафик, кроме . . .

Странная организация, банят весь траф. кроме., но можно ставить свой софт,
рулить веб-сервером, ставить модули (LoadModule)

Ответить | Правка | Наверх | Cообщить модератору

4. "Проброс доступа к SSH через HTTPS"  +/
Сообщение от Hamer13 (ok), 24-Дек-23, 16:59 
Хватает таких. Сколько-то лет назад был у нас клиент в арабской стране, где мы развернули и поддерживали площадку с, помимо прочего, веб-мордой. И вот после развёртывания и запуска нам туда закрыли доступ через VPN, а из внешнего мира доступен был только по HTTPS. Вот и пришлось при следующем обновлении выпрашивать VPN и, таки зайдя на площадку, настроили там sslh. Потому что заказчик свято веровал что достаточно выдать VPN-учётку одному сотруднику поддержки в Ливане и этого хватит для всего вообще. А то что команда разработчиков и админов — в Минске — а пофиг.
Ответить | Правка | Наверх | Cообщить модератору

6. "Проброс доступа к SSH через HTTPS"  +1 +/
Сообщение от OpenEcho (?), 24-Дек-23, 18:40 
> таки зайдя на площадку, настроили там sslh

sslh кстати банально палится самой тупой DPI, т.к. не тунелированный SSH плэйн текстом отвечает - "привет, я ССШ номер такой-то..."

Ответить | Правка | Наверх | Cообщить модератору

7. "Проброс доступа к SSH через HTTPS"  +/
Сообщение от Hamer13 (ok), 24-Дек-23, 22:57 
>> таки зайдя на площадку, настроили там sslh
> sslh кстати банально палится самой тупой DPI, т.к. не тунелированный SSH плэйн
> текстом отвечает - "привет, я ССШ номер такой-то..."

Там такого колдунства с DPI не было и близко. Просто нормального доступа через VPN не предоставили, а обновлять площадку как-то нужно — решили проблему «в лоб». Через несколько лет таки продрались через местную бюрократию и получили нормальный туннель.

Ответить | Правка | Наверх | Cообщить модератору

8. "Проброс доступа к SSH через HTTPS"  +/
Сообщение от OpenEcho (?), 25-Дек-23, 08:18 
> а обновлять площадку как-то нужно — решили проблему «в лоб».

К сожалению борьба с бюрократией - неизбежна везде :(

Ответить | Правка | Наверх | Cообщить модератору

18. "Проброс доступа к SSH через HTTPS"  +/
Сообщение от penetrator (?), 09-Мрт-24, 23:45 
а кто мешал завести OpenVPN сервер на 443-ем порту? ну ок, допустим что-то мешало, тогда можно завести сервер у себя, а там клиент демоном повесить и пофиг, что там из портов открыто
Ответить | Правка | К родителю #4 | Наверх | Cообщить модератору

19. "Проброс доступа к SSH через HTTPS"  +/
Сообщение от Hamer13 (ok), 11-Мрт-24, 11:07 
> а кто мешал завести OpenVPN сервер на 443-ем порту? ну ок, допустим
> что-то мешало, тогда можно завести сервер у себя, а там клиент
> демоном повесить и пофиг, что там из портов открыто

Доступ к площадке из внешнего мира — только по https. Доступ из площадки во внешний мир — нет вообще. Вот и пришлось этот 443-й порт на самой площадке мультиплексировать.
Почему такие ограничения — нужно спрашивать не у меня.

Ответить | Правка | Наверх | Cообщить модератору

5. "Проброс доступа к SSH через HTTPS"  +/
Сообщение от OpenEcho (?), 24-Дек-23, 18:35 
В оригинальной статье написанно, что чувак застрял в больнице и придумал этот релэй на апаче. Я только не понял, как он не выходя из больницы все же зарулил домой чтоб проксик на апаче поднять. Никак рулил любимой удаленно по телефону
Ответить | Правка | К родителю #3 | Наверх | Cообщить модератору

10. "Проброс доступа к SSH через HTTPS"  +3 +/
Сообщение от Пряник (?), 25-Дек-23, 19:38 
Всем бы таких любимых :)
Ответить | Правка | Наверх | Cообщить модератору

9. "Проброс доступа к SSH через HTTPS"  +1 +/
Сообщение от Пряник (?), 25-Дек-23, 19:37 
ИЗ окружений. То есть сервер SSH/HTTP стоит вне этих "странных" окружений.
Ответить | Правка | К родителю #3 | Наверх | Cообщить модератору

11. "Проброс доступа к SSH через HTTPS"  +/
Сообщение от Аноним (11), 26-Дек-23, 03:16 
Детский сад. Если можно TLS подключать, доступны получше/попроще средства. Если нельзя, CONNECT тем более работать не будет.
Я раньше прокидывал ссш на недоступные из интернета хосты через websocket соединение по сети Cloudflare (и в конце один свой балансировщик). Цепочка серверов nginx просто делает трубу до бэкэнда. Работало удивительно хорошо - порядка 7-8 мегабит это дело выдавало, перекладывая данные между сокетами на чистом перле (!). А ведь можно на встроенном луа в haproxy то же самое делать.
Ответить | Правка | Наверх | Cообщить модератору

12. "Проброс доступа к SSH через HTTPS"  –1 +/
Сообщение от OpenEcho (?), 26-Дек-23, 03:42 
> Детский сад. Если можно TLS подключать, доступны получше/попроще средства.

Да ладно, все когда-то были детьми...

Для ОП: Самый ИМХО быстрый, простой и надежный способ в таких ситуациях, - скинуть на сервак(удаленную машину) один едиственный, статически скомпиленный  GoTTY (читай - будет работаь - практически везде), защитить секретный ЮРЛ и с любого браузера иметь нормальную терминальную консоль

Ответить | Правка | Наверх | Cообщить модератору

15. "Проброс доступа к SSH через HTTPS"  +1 +/
Сообщение от name (??), 21-Фев-24, 18:07 
такой себе метод: при попытке покнопать под VIM комбинация ^W срубает вкладку браузера наглухо
Ответить | Правка | Наверх | Cообщить модератору

16. "Проброс доступа к SSH через HTTPS"  +/
Сообщение от OpenEcho (?), 22-Фев-24, 16:11 
> такой себе метод: при попытке покнопать под VIM комбинация ^W срубает вкладку
> браузера наглухо

Так то шорткаты браузера или десктопа, удалить/поменять тогда

Ответить | Правка | Наверх | Cообщить модератору

13. "Проброс доступа к SSH через HTTPS"  +/
Сообщение от lightspeed (??), 02-Янв-24, 19:21 
Вообще, для всего этого и придумали такую штуку как PAM.. Там тебе и доступ и его разграничение и мониторинг с рекордингом и даже UBA.
Ответить | Правка | Наверх | Cообщить модератору

14. "Проброс доступа к SSH через HTTPS"  +/
Сообщение от Azat174email (?), 11-Янв-24, 14:37 
SSH3 вышел, он на 443 работает
Ответить | Правка | Наверх | Cообщить модератору

17. "Проброс доступа к SSH через HTTPS"  +1 +/
Сообщение от Дед Анон (?), 24-Фев-24, 10:05 
чо за абстрактный враппер костылинга с вашим LAMP?

правильный 10-строк костыль для nginx, остальное НеНужно.
логи добавить по вкусу, remote_ip ломает.

#-----
stream {
    map $ssl_preread_protocol $upstream {
      ""        127.0.0.1:22;
      default   127.0.0.1:443;
    }
    server {
      listen 443 backlog=1024;
      ssl_preread on;
      proxy_pass $upstream;
    }
}
#-----

ходим как хотим:
$ ssh -p 443 your.server.org
$ wget https://your.server.org

Ответить | Правка | Наверх | Cообщить модератору

20. "Проброс доступа к SSH через HTTPS"  +/
Сообщение от friday1313 (ok), 20-Мрт-24, 14:12 
Не подскажите, можно ли в таком случае в PHP-скрипте увидеть ip клиента?
Сейчас работает разделение через sslh и он виден в переменной HTTP_X_REAL_IP
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру