- PVSM.RU - https://www.pvsm.ru -
SSH/HTTPS/OpenVPN/Telegram и всё на одном порту?! Что?!
— Да!
На все эти вопросы ответ один — Мультиплексирование SSL/TLS соединений, или SSLH.
В посте мы рассмотрим как в 1 команду спрятать кучу сервисов за 1 портом.
С недавнем выходом Telegram Proxy который почти полностью выглядит как SSL трафик появился интересный вопрос в комментариях к посту [1]:
Newton [2]:
У меня довольно нубский вопрос — а завести это вместе с sslh не реально?
После беглой проверки возможностей приложения sslh мне показалось, что «завести» не удастся, но меня очень заинтересовало это приложение, как оказалось, скрестить ужа с ежом все-таки можно.
Приложение SSLH — мултиплексор, другими словами, оно анализируя трафик (фактически выполняя работу mini-DPI) и в зависимости от типа трафика, направляет его в локальный порт 8443/999/991 или любой другой…
Что позволяет нам впервые использовать технологию DPI во благо.
Для примера использования SSLH поставим задачу:
На сервере установлены следующие приложения — Telegram Proxy, Apache, SSH и все эти сервисы мы хотим пускать в мир через 443 порт.
Сервер в нашем примере — Ubuntu 16.04.4 LTS, Apache2 + LetsEncrypt,SSH,Telegram Proxy в Docker.
На данный момент, на нем работает, как и положено, Apache.
Установим SSLH:
sudo apt-get install --no-install-recommends sslh
При установке будет задан вопрос о режиме использования, их два:
Я за второй вариант, вы, конечно же, можете выбрать другой.
Проверим, работает ли наше чудо следующей командой:
sudo sslh-select -f --listen IP:8443 --tls 127.0.0.1:443 --ssh 127.0.0.1:22 --anyprot 127.0.0.1:9443
IP — внешний IP сервера
8443 — порт на котором будет запущен наш мултиплексор
443 — там где живет Apache
Обратите внимание на опцию anyprot — именно там будет жить наш Telegram Proxy, другими словами, если трафик не подошел ни под какой тип — отправить туда.
Внимание! Если в вашей конфигурации отсутствует Telegram или SSH — уберите лишние ключи запуска.
Откройте браузер по адресу вашего сервера с портом 8443 — вы должны увидеть ответ от Apache, далее попробуйте подключить по SSH или через Telegram Proxy.
Для переноса Apache со стандартного порта (443) на другой, например на 7443, посетите следующие файлы:
sudo nano /etc/apache2/ports.conf
sudo nano /etc/apache2/sites-enabled/000-default-le-ssl.conf
В примере Apache+SSL/HTTPS был установлен с использованием LetsEncrypt при другом сертификате конфигурационные файлы могут быть по другим путям.
Настало время настроить автозапуск.
Отредактируем файл:
sudo nano /etc/default/sslh
В поле DAEMON_OPTS= добавьте атрибуты при запуске команды sslh-select, установите RUN в =yes.
Запустим:
sudo systemctl start sslh
Убедимся, что всё хорошо:
sudo systemctl status sslh
После прохождения данного туториала у вас должен был появится сервер, у которого через единый порт доступны сразу несколько служб (какие — на ваш выбор).
Автор: shifttstas
Источник [3]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/informatsionnaya-bezopasnost/281441
Ссылки в тексте:
[1] посту: https://habr.com/post/412755/
[2] Newton: https://habr.com/users/newton/
[3] Источник: https://habr.com/post/412779/?utm_campaign=412779
Нажмите здесь для печати.