SSLH: Ocultar SSH / HTTPS / OpenVPN / Telegram detrás de un solo puerto 443

imagen

¿SSH / HTTPS / OpenVPN / Telegram y todo en un puerto? Que?
- si!
  • ¿Quiere ocultar la presencia de algunos de sus servicios?
  • ¿Está todo bloqueado excepto los puertos 443 (https) en una red wifi pública?
  • ¿Has configurado Telegram Proxy / OpenVPN y no quieres "brillar"?
  • ¿Conexión SSH a su servidor desde países censurados?

Solo hay una respuesta a todas estas preguntas: multiplexación de conexiones SSL / TLS o SSLH.

En la publicación, veremos cómo ocultar un montón de servicios en 1 comando detrás de 1 puerto .

Por qué


Con el lanzamiento reciente de Telegram Proxy, que se parece casi por completo al tráfico SSL, ha aparecido una pregunta interesante en los comentarios a la publicación :
Newton :
Tengo una pregunta bastante novata: ¿realmente no es posible combinar esto con SSLH?
Después de una rápida verificación de las capacidades de la aplicación sslh, me pareció que no podría iniciarla, pero estaba muy interesado en esta aplicación y, como resultó, todavía puedo cruzarla con un erizo .

Como?


La aplicación SSLH es un multiplexor, en otras palabras, analiza el tráfico (en realidad está haciendo un trabajo mini-DPI) y, según el tipo de tráfico, lo envía al puerto local 8443/999/991 o cualquier otro ...

Lo que nos permite usar la tecnología DPI por primera vez para el beneficio .

Desafío


Para un ejemplo de uso de SSLH, establecemos la tarea:

Las siguientes aplicaciones están instaladas en el servidor: Telegram Proxy, Apache, SSH y queremos permitir que todos estos servicios entren al mundo a través del puerto 443.

El servidor en nuestro ejemplo es Ubuntu 16.04.4 LTS, Apache2 + LetsEncrypt, SSH, Telegram Proxy en Docker.

Por el momento, Apache está trabajando en ello, como debería ser.

Instalación y configuración


Instalar SSLH:

sudo apt-get install --no-install-recommends sslh 

Durante la instalación, se hará una pregunta sobre el modo de uso, hay dos de ellos:

  • estable pero más intensivo en recursos
  • rápido, pero con pérdida de conexiones cuando el proceso cae

Estoy por la segunda opción, por supuesto, puedes elegir otra.

Comprueba si nuestro milagro funciona con el siguiente comando:

 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 - servidor IP externo
8443 - puerto en el que se lanzará nuestro multiplexor
443 - donde vive Apache
Preste atención a la opción anyprot: aquí es donde vivirá nuestro proxy de Telegram, en otras palabras, si el tráfico no se ajusta a ningún tipo, envíe allí.

Atencion Si su configuración no tiene Telegram o SSH, elimine las claves de inicio adicionales.

Compruébalo


Abra un navegador en la dirección de su servidor con el puerto 8443: debería ver una respuesta de Apache, luego intente conectarse a través de SSH o a través de Telegram Proxy.

Portar Apache a otro puerto


Para transferir Apache desde el puerto estándar (443) a otro, por ejemplo a 7443, visite los siguientes archivos:

 sudo nano /etc/apache2/ports.conf sudo nano /etc/apache2/sites-enabled/000-default-le-ssl.conf 

En el ejemplo, Apache + SSL / HTTPS se instaló usando LetsEncrypt con un certificado diferente, los archivos de configuración pueden ser de otras maneras.

Inicio automático


Es hora de configurar la ejecución automática.

Edite el archivo:

 sudo nano /etc/default/sslh 

En el campo DAEMON_OPTS = , agregue atributos al ejecutar el comando sslh-select, establezca RUN en = yes.

Ejecutar:

 sudo systemctl start sslh 

Asegúrate de que todo esté bien:

 sudo systemctl status sslh 

Cual es el resultado?


Después de completar este tutorial, debe tener un servidor que tenga varios servicios disponibles a través de un solo puerto (cuáles elija) .

¿Qué hay de OpenVPN? ¿Qué protocolos todavía puede hacer la aplicación?


Al momento de escribir, sslh puede detectar y multiplexar los siguientes protocolos:
 [--ssh <addr>] [--openvpn <addr>] [--tinc <addr>] [--xmpp <addr>] [--http <addr>] [--ssl <addr>] [--tls <addr>] [--anyprot <addr>] 

Antes de usar, es mejor asegurarse de qué protocolos admite su versión, (de repente es más reciente) usando:

 sslh-select -h 


Referencias


El desarrollo de SSLH se lleva a cabo en github, en este repositorio: github.com/yrutschle/sslh

Docker


No tuve éxito en recopilar la versión de trabajo de sslh en docker junto con todos los demás servicios, en mi opinión, el archivo docker-compose que se puede generar en el puerto 443 será interesante:
  • Apache + LetsEncrypt
  • Proxy Telegram
  • OpenVPN (opcional)
  • Use SSH local


Si alguien tiene éxito, escriba en los comentarios, agregue al artículo, en mi opinión, será útil.

También te puede interesar.


Source: https://habr.com/ru/post/es412779/


All Articles