SSLH - различные службы через 443 порт







SSLH — это утилита, которая устанавливается на удаленный сервер и принимает соединения от различных служб на один порт.

Работает это так: у вас есть удаленный сервер, на котором крутится OpenVPN, SSH, прокси для Telegram и ваш сайт. Устанавливаем на этот сервер sslh, указываем в конфиге 443-й порт для приема входящих соединений и прописываем нужные службы. На всех клиентах так же указываем 443-й порт. То есть, например, для клиента OpenVPN вместо 1194 порта пишем 443, а по SSH коннектимся так — ssh -p 443 user@blablabla.
Теперь sslh будет анализировать входящие пакеты от клиента и переадресовывать их соответствующей службе.

В итоге весь Ваш трафик выглядит как HTTPS.






Устанавливаем sslh:

sudo apt install --no-install-recommends sslh

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


В процессе будет задан вопрос…


Отвечаем — «самостоятельно».


После установки смотрим поддерживаемые службы:

sslh-select -h


В выводе будут такие строки…




Запустим sslh в тестовом режиме:

sudo sslh-select -f --listen 0.0.0.0:8443 --tls 127.0.0.1:443  --ssh 127.0.0.1:22 --openvpn 127.0.0.1:1194 --anyprot 127.0.0.1:9443


--listen 0.0.0.0:8443 — адрес и порт (потом поменяем его на 443), который слушает sslh.

--tls 127.0.0.1:443 — ваш сайт.

--ssh 127.0.0.1:22 — ssh-сервер.

--openvpn 127.0.0.1:1194 — openvpn-сервер.

--anyprot 127.0.0.1:9443 — на этот порт можно повесить любую службу, например proxy-telegram. Входящий пакет сначала проверяется на соответствие указанным службам, и если нет, то отправляется на --anyprot. Если не указывать --anyprot, неизвестный пакет будет просто дропаться.


Пробуем подключиться по ssh:

ssh -p 8443 dima@192.168.5.124





Если всё работает, то переходим к конфигу.

sudo nano /etc/default/sslh


RUN=no изменяем на RUN=yes.


DAEMON_OPTS="--listen 0.0.0.0:443 --tls 127.0.0.1:445  --ssh 127.0.0.1:22 --openvpn 127.0.0.1:1194 --anyprot 127.0.0.1:9443 --pidfile /var/run/sslh/sslh.pid"


Если каких-то служб нет, то их указывать не нужно. Если есть сайт, тогда в конфигах web-сервера нужно поменять 443-й порт на 445-й (80-й трогать не нужно).
Apache — /etc/apache2/ports.conf и /etc/apache2/sites-available/*.conf
Nginx — /etc/nginx/nginx.conf и/или /etc/nginx/sites-available/*



Сохраняем конфиг и запускаем sslh:

sudo systemctl start sslh


Проверяем работу:

sudo systemctl status sslh


Пробуем подключиться:

ssh -p 443 dima@192.168.5.124



Пожалуй добавить больше нечего. Подробности на страничке разработчика github.com/yrutschle/sslh


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

Анонимизация в интернете — дело сложное, и требует глубокого понимания работы сетей. Так что хорошенько подумайте, прежде чем переходить на «тёмную сторону»



  • 0
  • 39758
Поддержать автора


Telegram-чат istarik

Задать вопрос по статье
Telegram-канал istarik

Известит Вас о новых публикациях






Комментарии (0)

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.