К основному контенту

⚡ SSLH — общий порт для HTTPS и SSH

Некоторые интернет-провайдеры и корпоративные компании могли заблокировать большинство портов и разрешить только несколько определенных портов, таких как порты 80 и 443, для усиления своей безопасности. В таких случаях у нас нет выбора, но мы используем один и тот же порт для нескольких программ, например HTTPS-порт 443, который редко блокируется. Вот где в помощь приходит SSLH, мультиплексор SSL/SSH. Он будет прослушивать входящие соединения через порт 443.

Проще говоря, SSLH позволяет нам запускать несколько программ/служб через порт 443 в системе Linux.

Таким образом, вы можете использовать как SSL, так и SSH, используя один и тот же порт одновременно.

Если вы когда-либо были в ситуации, когда большинство портов заблокированы брандмауэрами, вы можете использовать SSLH для доступа к удаленному серверу.

Этот краткий учебник описывает, как использовать один и тот же порт для https, ssh с использованием SSLH в Unix-подобных операционных системах.

SSLH — общий порт для HTTPS, SSH и OpenVPN

SSLH упакован для большинства дистрибутивов Linux, поэтому вы можете установить его с помощью менеджеров пакетов по умолчанию.

В Debian, Ubuntu и его производных выполните:

$ sudo apt-get install sslh

Во время установки SSLH вам будет предложено запустить sslh как службу из inetd или как отдельный сервер.

Каждый выбор имеет свои преимущества.

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

С другой стороны, во многих соединениях sslh должен работать как отдельный сервер, чтобы не создавать новый процесс для каждого входящего соединения.



На Arch Linux и его производных, таких как Antergos, Manjaro Linux, установите его с помощью Pacman, как показано ниже.
$ sudo pacman -S sslh

На RHEL, CentOS вам нужно добавить репозиторий EPEL и затем установить SSLH, как показано ниже.

$ sudo yum install epel-release
$ sudo yum install sslh

На Fedora:

$ sudo dnf install sslh
Если он недоступен в репозиториях по умолчанию, вы можете вручную скомпилировать и установить SSLH, как описано здесь.

Настройте веб-серверы Apache или Nginx

Как вы уже знаете, веб-серверы Apache и Nginx будут прослушивать все сетевые интерфейсы (т. е. 0.0.0.0:443) по умолчанию.

Нам нужно изменить этот параметр, чтобы веб-сервер прослушивал только интерфейс localhost (т. е. 127.0.0.1:443 или localhost: 443).

Для этого отредактируйте файл конфигурации веб-сервера (nginx или apache) и найдите следующую строку:

listen 443 ssl;

И измените его на:

listen 127.0.0.1:443 ssl;
Если вы используете Virutalhosts в Apache, убедитесь, что вы также изменили его.
VirtualHost 127.0.0.1:443

Сохраните и закройте файлы конфигурации. Не перезапускайте сервисы. Мы еще не закончили.

Настройка SSLH

Сделав веб-серверы прослушивающими только локальный интерфейс, отредактируйте файл конфигурации SSLH:

$ sudo vi /etc/default/sslh

Найдите следующую строку:

Run=no

И измените ее на:

Run=yes

Затем прокрутите немного вниз и измените следующую строку, чтобы разрешить SSLH прослушивать порт 443 на всех доступных интерфейсах (например, 0.0.0.0:443).

DAEMON_OPTS="--user sslh --listen 0.0.0.0:443 --ssh 127.0.0.1:22 --ssl 127.0.0.1:443 --pidfile /var/run/sslh/sslh.pid"

Где:

  • –user sslh : требуется для запуска с указанным именем пользователя.
  • –listen 0.0.0.0:443 : SSLH прослушивает порт 443 на всех доступных интерфейсах.
  • –sshs 127.0.0.1:22 : маршрутизировать трафик SSH на порт 22 на локальном хосте.
  • –ssl 127.0.0.1:443 : маршрутизировать трафик HTTPS/SSL на порт 443 на локальном хосте.

Сохраните и закройте файл.

Наконец, включите и запустите службу sslh, чтобы обновить изменения.

$ sudo systemctl enable sslh
$ sudo systemctl start sslh

Тестирование

Проверьте, слушает ли демон SSLH 443.

$ ps -ef | grep sslh  sslh 2746 1 0 15:51 ? 00:00:00 /usr/sbin/sslh --foreground --user sslh --listen 0.0.0.0 443 --ssh 127.0.0.1 22 --ssl 127.0.0.1 443 --pidfile /var/run/sslh/sslh.pid sslh 2747 2746 0 15:51 ? 00:00:00 /usr/sbin/sslh --foreground --user sslh --listen 0.0.0.0 443 --ssh 127.0.0.1 22 --ssl 127.0.0.1 443 --pidfile /var/run/sslh/sslh.pid sk 2754 1432 0 15:51 pts/0 00:00:00 grep --color=auto sslh
Теперь вы можете получить доступ к удаленному серверу через SSH через порт 443:
$ ssh -p 443 sk@192.168.225.50

Пример вывода:

Welcome to Ubuntu 18.04.2 LTS (GNU/Linux 4.15.0-55-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage System information as of Wed Aug 14 13:11:04 IST 2019 System load: 0.23 Processes: 101 Usage of /: 53.5% of 19.56GB Users logged in: 0 Memory usage: 9% IP address for enp0s3: 192.168.225.50 Swap usage: 0% IP address for enp0s8: 192.168.225.51 * Keen to learn Istio? It's included in the single-package MicroK8s. https://snapcraft.io/microk8s 61 packages can be updated. 22 updates are security updates. Last login: Wed Aug 14 13:10:33 2019 from 127.0.0.1
Видете? Теперь я могу получить доступ к удаленному серверу через SSH, даже если заблокирован стандартный порт SSH 22. Как вы видите в приведенном выше примере, я использовал https порт 443 для подключения SSH. Также мы можем использовать тот же порт 443 и для соединений openVPN.

Комментарии


Дистанционная компьтерная помощь, удаленная компьютерная помощь онлайн.

Популярные сообщения из этого блога

Лучшие плагины для OBS Studio

Open Broadcast Software или OBS - это свободное программное обеспечение с открытым исходным кодом для стриминга аудио и видео данных в сеть интернет. Программа полностью кроссплатформенная и может работать в Windows, Linux или MacOS. Это отличная альтернатива для таких программ, как Wirecast и XSplit. OBS использует для вещания стандартный протокол обмена сообщениями в реальном времени, а поэтому может транслировать данные в любой сервис, поддерживающий это, например, Yotube. Несмотря на широкие возможности OBS, программа поддерживает еще и множество плагинов. В этой статье мы рассмотрим лучшие плагины для OBS Studio, которые вы можете использовать. Содержание статьи: Лучшие плагины OBS Studio 1. Browser Source Plugin 2. Video Source Plugin 3. Simple Scene Switcher 4. DirectShow Audio Source 5. CLR Browser Source 6. OBS Remote 7. AMD Advanced Media Framework Encoder 8. Text Source Plugin Выводы Лучшие плагины OBS Studio Чтобы найти плагины OBS Studio для Video пользователям пр…

Лучшие аналоги Paint для Linux

Когда я работал в Windows, я часто использовал стандартную программу редактора изображений Windows - Paint. Не всегда нужен очень и многофункциональный инструмент вроде Photoshop или Gimp. Иногда, чтобы подправить ту или иную картинку, дорисовать на ней несколько фигур или вставить текст достаточно простого, легкого в освоении графического редактора вроде Paint. В Linux таких программ довольно много. В этой инструкции мы рассмотрим лучшие аналоги Paint для Linux. В этот список не будут включены такие программы, как Gimp и Krita, ведь это полнофункциональные графические редакторы, векторные редакторы, такие как Inkscape мы тоже рассматривать не будем. А теперь перейдем к списку. Содержание статьи: KolourPaint MyPaint Gnome Paint XPaint Pinta mtPaint GPaint Rassam-paint Выводы KolourPaint На первом месте в списке аналогов Piant для Linux будет KoloutPaint. Это стандартный графический редактор для окружения рабочего стола KDE. Он поддерживает множество форматов изображений PNG, J…

Подключение OneDrive в Linux

OneDrive (Ранее известный как SkyDrive) это популярное облачное хранилище файлов от Майкрософт. Сейчас OneDrive бесплатно предоставляет 7 гигабайт пространства новым пользователям. Как вы знаете OneDrive хорошо интегрирован с другими продуктами компании  Microsoft. В OneDrive Также есть официальный клиент который автоматически загружает ваши видео и фотографии с камеры в облако. Но к сожалению этот клиент недоступен для операционных систем семейства Linux. Но не все так плохо. Сообщество открытого программного обеспечения уже нашло решение. Это opedrive-d от Boilermaker. Запустившись как демон программа автоматически синхронизирует локальную папку с облаком OneDrive. Содержание статьи: Установка Onedrive-d в Linux Настройка Синхронизация локальной папки с OneDrive Установка Onedrive-d в Linux Несмотря на то что onedrive-d разрабатывается для Ubuntu/Debian, CentOs/Fedora/RHEL поддерживается тоже хорошо. Для установки достаточно набрать несколько команд: $ git clone https://gith…