SSLH: oculte SSH / HTTPS / OpenVPN / Telegram atrás de uma única porta 443

imagem

SSH / HTTPS / OpenVPN / Telegram e tudo em uma porta ?! O que ?!
Sim!
  • Deseja ocultar a presença de alguns de seus serviços?
  • Tudo, exceto as portas 443 (https), está bloqueado em uma rede Wi-Fi pública?
  • Você configurou o Telegram Proxy / OpenVPN e não deseja "brilhar"?
  • Conexão SSH ao seu servidor de países censurados?

Há apenas uma resposta para todas essas perguntas - Multiplexação de conexões SSL / TLS ou SSLH.

No post, veremos como ocultar um monte de serviços em 1 comando atrás de 1 porta .

Porque


Com o recente lançamento do Telegram Proxy, que quase se parece com o tráfego SSL, uma pergunta interessante apareceu nos comentários do post :
Newton :
Eu tenho uma pergunta bem noob - não é realmente possível reunir isso com o sslh?
Após uma rápida verificação dos recursos do aplicativo sslh, pareceu-me que não seria possível iniciá-lo, mas estava muito interessado nesse aplicativo e, como se viu, ainda posso atravessá-lo com um ouriço .

Como


O aplicativo SSLH é um multiplexador, ou seja, analisa o tráfego (na verdade, realiza um trabalho de mini-DPI) e, dependendo do tipo de tráfego, envia-o para a porta local 8443/999/991 ou qualquer outro ...

O que nos permite usar a tecnologia DPI pela primeira vez para o benefício .

Desafio


Para um exemplo de uso do SSLH, configuramos a tarefa:

Os seguintes aplicativos estão instalados no servidor - Telegram Proxy, Apache, SSH e queremos deixar todos esses serviços no mundo através da porta 443.

O servidor em nosso exemplo é o Ubuntu 16.04.4 LTS, Apache2 + LetsEncrypt, SSH, Proxy Telegram no Docker.

No momento, o Apache está trabalhando nisso, como deveria estar.

Instalação e configuração


Instale o SSLH:

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

Durante a instalação, uma pergunta será feita sobre o modo de uso, existem dois deles:

  • estável, mas mais intensivo em recursos
  • rápido, mas com perda de conexões quando o processo cai

Sou a favor da segunda opção, é claro, você pode escolher outra.

Verifique se o nosso milagre funciona com o seguinte 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 - porta na qual nosso multiplexador será lançado
443 - onde vive o Apache
Preste atenção à opção anyprot - é aqui que o nosso Telegram Proxy viverá, ou seja, se o tráfego não se encaixar em nenhum tipo - envie para lá.

Atenção! Se sua configuração não possui Telegram ou SSH, remova as chaves extras de inicialização.

Confira?


Abra um navegador no endereço do servidor com a porta 8443 - você verá uma resposta do Apache e tente conectar-se via SSH ou pelo Telegram Proxy.

Portando o Apache para outra porta


Para transferir o Apache da porta padrão (443) para outra, por exemplo, para 7443, visite os seguintes arquivos:

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

No exemplo, o Apache + SSL / HTTPS foi instalado usando LetsEncrypt com um certificado diferente, os arquivos de configuração podem ser de outras maneiras.

Inicialização automática


É hora de configurar a execução automática.

Edite o arquivo:

 sudo nano /etc/default/sslh 

No campo DAEMON_OPTS = , adicione atributos ao executar o comando sslh-select, configure RUN como = yes.

Execute:

 sudo systemctl start sslh 

Verifique se está tudo bem:

 sudo systemctl status sslh 

Qual é o resultado?


Depois de concluir este tutorial, você deverá ter um servidor que possua vários serviços disponíveis através de uma única porta (quais são de sua escolha) .

E o OpenVPN? Quais protocolos o aplicativo ainda pode fazer?


No momento da escrita, o sslh pode detectar e multiplexar os seguintes protocolos:
 [--ssh <addr>] [--openvpn <addr>] [--tinc <addr>] [--xmpp <addr>] [--http <addr>] [--ssl <addr>] [--tls <addr>] [--anyprot <addr>] 

Antes de usar, é melhor garantir que protocolos sua versão suporta (de repente é mais nova) usando:

 sslh-select -h 


Referências


O desenvolvimento do SSLH ocorre no github, neste repositório: github.com/yrutschle/sslh

Docker


Não consegui coletar a versão de trabalho do sslh no docker junto com todos os outros serviços; em minha opinião, o arquivo docker-compose que pode ser criado na porta 443 será interessante:
  • Apache + LetsEncrypt
  • Proxy de Telegrama
  • OpenVPN (opcional)
  • Use SSH local


Se alguém conseguir - escreva nos comentários - adicione ao artigo, na minha opinião, será útil.

Você também pode estar interessado.


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


All Articles