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 — адрес и порт
--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-й
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
- stD
53286
Поддержать автора
Комментарии (0)