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/sslhDocker
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.