Обложка канала

ServerAdmin.ru

12437 @srv_admin

Авторская информация о системном администрировании.

ServerAdmin.ru

4 года назад
Открыть в
Существуют программы, которые на основе типа трафика могут направлять его в разные направления. Расскажу вам про одну такую программу - SSLH. Её можно запустить на каком-то TCP порту, например 8080. Если на этот порт направить HTTP трафик, SSLH его перенаправит на веб сервер, если это SSH трафик - на SSH сервер, если OpenVPN, то на его сервер. Таким образом можно маскировать какие-то сервисы, оставляя их при этом полностью доступными. С одним из вариантов использования подобного подхода я сталкивался сам. Допустим, есть у вас где-то в Америке VPS, там живёт веб сервер. А ещё вам хочется держать там же OpenVPN на 443 порту, чтобы использовать для обхода блокировок и проходить через сети, где всё закрыто, кроме HTTP и HTTPS портов. SSLH отлично решает эту задачу. Она есть в базовых репозиториях Debian: # apt install sslh Далее запускаем: # sslh-select -f --listen 0.0.0.0:443 \ --tls 127.0.0.1:443 \ --ssh 127.0.0.1:22 \ --openvpn 127.0.0.1:1194 Теперь, если зайти браузером на сервер, то запрос будет перенаправлен на 443 порт веб сервера, если SSH клиентом, то на 22-й порт, если OpenVPN клиентом, то на дефолтный 1194 порт openvpn сервера. То же самое через Docker: docker run --rm -it sslh:latest \  --listen=0.0.0.0:443 \  --ssh=hostname:22 \  --tls=hostname:443 --openvpn=hostname:1194 Более функциональный вариант через docker-compose. Пример конфига, где трафик уходит в разные контейнеры: version: "3" services:  sslh:   image: sslh:latest   hostname: sslh   ports:    - 443:443   command: --listen=0.0.0.0:443 --tls=nginx:443 --openvpn=openvpn:1194   depends_on:    - nginx    - openvpn  nginx:   image: nginx  openvpn:   image: openvpnИсходники #openvpn #webserver
GitHub - yrutschle/sslh: Applicative Protocol Multiplexer (e.g. share SSH and HTTPS on the same port)

Applicative Protocol Multiplexer (e.g. share SSH and HTTPS on the same port) - GitHub - yrutschle/sslh: Applicative Protocol Multiplexer (e.g. share SSH and HTTPS on the same port)

GitHub