The OpenNET Project / Index page

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

Организация доступа к SSH и HTTPS через один 443 порт при помощи nginx
В nginx 1.15.2 в модуль ngx_stream_ssl_preread была добавлена переменная
$ssl_preread_protocol, которая определяет наибольшую версию протокола SSL/TLS,
которую поддерживает клиент. При помощи новой переменной можно создавать
конфигурации для доступа с использованием различных протоколов через один
сетевой порт при проксировании трафика с использованием модулей http  и stream.
В частности, можно разделять обработчики для трафика на базе SSL и не
использующего SSL (например, SSH).

Для организации доступа по SSH и HTTPS через один сетевой порт 443  можно по
умолчанию пробрасывать трафик на SSH, а если определена версия  протокола
TLSv1.2 пробрасывать на HTTPS:

   stream {
       upstream ssh {
           server 192.0.2.1:22;
       }

       upstream web {
           server 192.0.2.2:443;
       }
      
       map $ssl_preread_protocol $upstream {
           default ssh;
           "TLSv1.2" web;
       }

       # SSH и SSL на одном порту 
       server {
         listen 443;
         proxy_pass $upstream;
         ssl_preread on;
       }
   }

По аналогии можно настроить проброс через один сетевой порт для любых других
сочетаний SSL/не-SSL протоколов, например, "HTTP/HTTPS", "TCP DNS/DNS over TLS"
и т.п.
 
25.07.2018 , Источник: https://www.nginx.com/blog/running-...
Ключи: nginx, ssl, tls, ssh, proxy / Лицензия: CC-BY
Раздел:    Корень / Администратору / Сетевые сервисы / WWW, Apache httpd / Редирект, mod_rewrite

Обсуждение [ Линейный режим | Показать все | RSS ]
 
  • 1.1, Анонисмус (?), 10:37, 25/07/2018 [ответить] [показать ветку] [···]    [к модератору]
  • +1 +/
    Google: "SSH HTTPS multiplexing"
     
  • 1.2, троллейбусизбуханки (?), 10:01, 26/07/2018 [ответить] [показать ветку] [···]    [к модератору]
  • +/
    но зачем? 8-O
     
     
  • 2.5, Crazy Alex (ok), 15:17, 28/07/2018 [^] [ответить]    [к модератору]
  • +/
    Например, чтобы пролезть оттуда, где вовне открыт доступ только на 80 и 443, на свой VDS
     
     
  • 3.6, толлейбусизбуханки (?), 18:50, 29/07/2018 [^] [ответить]     [к модератору]
  • –1 +/
    а тебе не ссыкотно обычно где вовне он так открыт - еще при входе заставляют по... весь текст скрыт [показать]
     
     
  • 4.15, Crazy Alex (ok), 14:24, 31/07/2018 [^] [ответить]     [к модератору]  
  • +/
    Есть реальная безопасность, а есть заигравшиеся админы или, что гораздо чаще, ба... весь текст скрыт [показать]
     
     
  • 5.17, пох (?), 22:21, 31/07/2018 [^] [ответить]     [к модератору]  
  • +/
    и твоя стандартная подпись под ней Ну и оно вот тебе - надо потом начальству п... весь текст скрыт [показать]
     
     
  • 6.26, Crazy Alex (ok), 11:50, 04/08/2018 [^] [ответить]     [к модератору]  
  • +/
    Да никто не заставляет мобилы сдавать Речь об обычных больших айтишных конторах... весь текст скрыт [показать]
     
  • 6.36, Аноним (36), 00:56, 12/09/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    А вы не думали что есть юзкейсы кроме того что ты раб который пyкнуть боится чтобы с работы по статье не пойти?
     
  • 6.38, Максим (??), 22:21, 20/09/2018 [^] [ответить]     [к модератору]  
  • +/
    Ну и страдай, трепеща перед начальством и подписывая разрешения на каждый похо... весь текст скрыт [показать]
     
  • 3.33, atk91 (ok), 13:36, 06/09/2018 [^] [ответить]    [к модератору]  
  • +/
    почему нельзя просто на свой vds повесить sshd на 443 порт?
     
     
  • 4.39, lv333 (ok), 21:26, 22/09/2018 [^] [ответить]    [к модератору]  
  • +/
    А вдруг там уже сайтик висит имени Васи Пупкина?
     
  • 1.3, Василий (??), 12:58, 26/07/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    А есть ли возможность сделать подобное с витруальными-хостами ( server_name  )?  Например крутятся во многих lxc разные сайты и мы хотим давать доступ и по https и по ssh через единый nginx на хост системе
     
     
  • 2.4, Василий (??), 13:04, 26/07/2018 [^] [ответить]    [к модератору]  
  • +/
    Ага , вот тут наспиано как это сделать
    http://nginx.org/en/docs/stream/ngx_stream_ssl_preread_module.html

    как я понял , можно написать еще один map по ssl_preread_server_name

     
     
  • 3.8, толлейбусизбуханки (?), 18:54, 29/07/2018 [^] [ответить]    [к модератору]  
  • +/
    > как я понял , можно написать еще один map по ssl_preread_server_name

    нельзя, нет в ssh никакого "server name".

     
  • 2.7, толлейбусизбуханки (?), 18:53, 29/07/2018 [^] [ответить]     [к модератору]  
  • +/
    нет да и зачем для этого есть sni, который прекрасно работает без этих ненужно... весь текст скрыт [показать]
     
  • 1.9, adsh (ok), 19:43, 30/07/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Это получается, что если долбиться в 443 порт как SSL (2,3), TLS (1.0,1.1) или любым другим, не TLS 1.2 образом, то всё это будет скормлено sshd? А ему не поплохеет? Молодцы...
     
     
  • 2.10, Аноним (10), 21:00, 30/07/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    Если вашему sshd поплохеет из-за того, что ему от неаутентифицированного клиента прилетит в сокет мусор, то у вас какой-то неправильный sshd.
     
     
  • 3.11, adsh (ok), 22:02, 30/07/2018 [^] [ответить]     [к модератору]  
  • +1 +/
    Обычное количество HTTP запросов не идёт ни в какое сравнение с числом таковых ж... весь текст скрыт [показать]
     
     
  • 4.14, толлейбусизбуханки (?), 12:09, 31/07/2018 [^] [ответить]     [к модератору]  
  • +1 +/
    а они не могут Там суть не в по умолчанию а в нешмалга я распознать то ест... весь текст скрыт [показать]
     
  • 2.13, толлейбусизбуханки (?), 12:04, 31/07/2018 [^] [ответить]     [к модератору]  
  • +/
    да не переживайте так, васян-vds у на котором этот конфиг бездумно скопипастили,... весь текст скрыт [показать]
     
  • 2.34, Аноним (36), 00:45, 12/09/2018 [^] [ответить]    [к модератору]  
  • +/
    Ну ты же умнее автора примера, небось сообразишь как остальные версии прописать?
     
  • 1.12, int13h (ok), 22:26, 30/07/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +2 +/
    Так, а для чего это делать? Не, серьезно -- для чего?
     
     
  • 2.16, Аноним (16), 18:02, 31/07/2018 [^] [ответить]    [к модератору]  
  • +/
    security by obscurity
     
     
  • 3.18, int13h (ok), 23:54, 31/07/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Коллега, неопытный администратор, которому кто-то выслал доступ к серверу в виде "root@blahblah -p443" начал править конфиги  nginx и ошибся, не выполнив nginx -t, совершив синтаксическую ошибку  рестартанул веб-сервер. Дальше, додумаете сами.

    Не проще ли использовать порт, к примеру, 22732 + доступ по ключу?

     
     
  • 4.19, adsh (ok), 00:39, 01/08/2018 [^] [ответить]    [к модератору]  
  • +/
    > Не проще ли использовать порт, к примеру, 22732 + доступ по ключу?

    Порт может быть закрыт, а ключ можно украсть вместе с компом. Паролить ключ - это уже почти то же самое, что заходить по паролю. Только пароль нужно держать в голове или в программе для хранения паролей со стойким паролем, опять же - в голове.

     
     
  • 5.20, int13h (ok), 00:49, 01/08/2018 [^] [ответить]    [к модератору]  
  • +/
    >> Не проще ли использовать порт, к примеру, 22732 + доступ по ключу?
    > Порт может быть закрыт, а ключ можно украсть вместе с компом. Паролить
    > ключ - это уже почти то же самое, что заходить по
    > паролю. Только пароль нужно держать в голове или в программе для
    > хранения паролей со стойким паролем, опять же - в голове.

    Откройте порт -- в чем проблема?
    Ну, если есть сложности с запоминанием пароля )

    Просто на порт !=22 меньше "китайцев" будет стучать.

    Я про то, что смысла стримить трафик ssh через nginx нет, это как-то неправильно

     
     
  • 6.21, adsh (ok), 01:21, 01/08/2018 [^] [ответить]    [к модератору]  
  • +/
    > Откройте порт -- в чем проблема?

    Описанный в статье рецепт относится к ситуации, когда на хостинге открыты только заданные порты и изменить это нельзя.

    > Я про то, что смысла стримить трафик ssh через nginx нет, это как-то неправильно

    Конечно неправильно и где-то даже отдаёт идиотизмом.

     
     
  • 7.23, int13h (ok), 09:43, 01/08/2018 [^] [ответить]    [к модератору]  
  • +/
    >Описанный в статье рецепт относится к ситуации, когда на хостинге открыты только заданные порты и изменить это нельзя.

    Мы говорим о хостинге или сервере (аппаратном, виртуализированном)? Если о хостинге, то Вам никто не даст стримить ssh через nginx

     
     
  • 8.25, adsh (ok), 15:17, 01/08/2018 [^] [ответить]    [к модератору]  
  • +/
    > Мы говорим о хостинге или сервере (аппаратном, виртуализированном)?

    Вообще говоря - нужно спросить у автора, для какого случая это всё.

    > Если о хостинге, то Вам никто не даст стримить ssh через nginx

    Это может быть хостинг сервер с полным доступом, но пофайерволленный политикой компании и т.п.

     
  • 5.22, ssh (ok), 09:37, 01/08/2018 [^] [ответить]    [к модератору]  
  • +/
    > Паролить ключ - это уже почти то же самое, что заходить по паролю.

    Вас обманули. Пасс-фраза вводится один раз при авторизации в системе, опционально после каждой разблокировки экрана. А к хостам подключаетесь посредством ssh host ;)

     
     
  • 6.24, adsh (ok), 15:12, 01/08/2018 [^] [ответить]    [к модератору]  
  • +/
    > Вас обманули. Пасс-фраза вводится один раз при авторизации в системе, опционально после
    > каждой разблокировки экрана. А к хостам подключаетесь посредством ssh host ;)

    Вы сами себя обманули. Это от клиента зависит, как он работает с паролем к ключу.

     
     
  • 7.27, h31 (ok), 12:37, 04/08/2018 [^] [ответить]    [к модератору]  
  • +/
    От наличия и настроек ssh-agent, если уж так говорить.
     
  • 7.29, ssh (ok), 14:48, 07/08/2018 [^] [ответить]    [к модератору]  
  • +/
    > Вы сами себя обманули. Это от клиента зависит, как он работает с
    > паролем к ключу.

    Разумеется я имел ввиду клиент из комплекта OpenSSH, там именно так как я написал. Используйте агент и не сочиняйте нам тут. :)

     
  • 4.28, Аноним (28), 23:00, 05/08/2018 [^] [ответить]     [к модератору]  
  • +/
    И nginx не рестартанул, а остался работать со старым конфигом, так как именно та... весь текст скрыт [показать]
     
     
  • 5.30, Аноним (30), 10:00, 22/08/2018 [^] [ответить]    [к модератору]  
  • +/
    омг, restart != reload.
    вы описали поведение для reload'а, а при restart'е выполняется остановка процесса и его запуск.
    поэтому если конфиг битый запуск завершается с ошибкой.
     
     
  • 6.31, moo (?), 09:08, 04/09/2018 [^] [ответить]    [к модератору]  
  • +/
    Зависит от ОС.
    В нормальных - при restart'е перед стопом делается nginx -t.
     
     
  • 7.37, nssnnssn (?), 18:36, 20/09/2018 [^] [ответить]    [к модератору]  
  • +/
    https://i.imgur.com/7hWAYId.png
    да, все получилось
     
  • 2.35, Аноним (36), 00:47, 12/09/2018 [^] [ответить]    [к модератору]  
  • +/
    > Так, а для чего это делать? Не, серьезно -- для чего?

    А почему нет-то? Мало ли откуда приспичит до сервера достучаться, и может там все кроме 80/443 блокируют.

     
  • 1.32, Google (?), 17:56, 04/09/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    https://github.com/google/huproxy
     
  • 1.40, Имя (?), 11:12, 31/10/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Есть же sslh для этого.
     
  • 1.41, Nolf (ok), 17:46, 13/03/2019 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    А как быть в ситуации если есть сервак с белым IP, а на нем 10 вируталок с сервми IP... И нужно ходить из вне на них по SSH?
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:



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