SSLH: Partilhe o mesmo porto para HTTPS, SSH e OpenVPN

4 Comentários

Cada serviço num sistema tem associado um ou mais portos lógicos. Isto significa que se um porto estiver ocupado por uma aplicação/serviço, não deverá ser usado por outra aplicação ou serviço.

A maioria dos ISPs bloqueiam a maioria dos portos, mas permitem comunicações para o porto 80 e 443 (HTTP e HTTPS). Hoje mostramos como podem usar o mesmo porto lógico para comunicações via HTTPS, SSH e até OpenVPN, usando o SSLH,  um “multiplexer” SSL/SSH.

SSLH: Partilhe o mesmo porto para HTTPS, SSH e OpenPVN


Certamente que já ouviram falar em serviços/aplicações que usam como protocolo de transporte TCP ( Transmission Control Protocol) ou o UDP (User Datagram Protocol). Numa máquina existem (teoricamente) 65.536 portos lógicos TCP que podem ser usados pelas mais diversas aplicações/serviços, o que (teoricamente) poderíamos ter 65.536 aplicações/serviços distintos a correr em simultâneo na nossa máquina.

Relembrando o que foi referido em artigos anteriores: o endereço IP identifica a máquina e o porto lógico identifica a aplicação/serviço. Além dos portas TCP temos também 65.536 portas UDP (teoricamente).

Redes: Quais as diferenças entre o Protocolo TCP e UDP

SSLH –  O mesmo porto para HTTPS, SSH e OpenVPN

Com o SSLH é possível usar o mesmo porto de comunicação para SSL (HTTPS), SSH e até OpenVPN. A instalação em sistemas baseados no Debian é relativamente simples. Para tal basta que executem o seguinte comando:

sudo apt-get install sslh

SSLH: Partilhe o mesmo porto para HTTPS, SSH e OpenPVN

Agora indiquem se pretendem que o SSLH funcione como um serviço ou como uma aplicação em standalone.

SSLH: Partilhe o mesmo porto para HTTPS, SSH e OpenPVN

Configurar o Apache

O Apache é o servidor Web mais usado em todo o mundo. Flexibilidade, documentação e uma enorme comunidade, são alguns dos pontos fortes que marcam a diferença do Apache para a concorrência.

Por omissão, o processo associado ao Apache está “à escuta” em todas as interfaces (ex. 0.0.0.0:443). Para que tudo funcione, temos de alterar para que apenas funcione na interface localhost (ex. 127.0.0.1:443 ou localhost:443). Para realizar essa configuração, basta abrir o ficheiro de configuração do Apache e procurar pela seguinte intrução:

listen 443 ssl;

e mudem para:

listen 127.0.0.1:443 ssl;

Configurar o SSLH

Depois da configuração ao nível do servidor Web, é hora de proceder à configuração do SSLH. Para isso abrimos o ficheiro /etc/default/sslh e alteramos a linha Run=no para Run=yes.

SSLH: Partilhe o mesmo porto para HTTPS, SSH e OpenPVN

Além da alteração anterior, na variável DAEMON_OPTS procedam à seguinte alteração:

DAEMON_OPTS="--user sslh --listen 0.0.0.0:443 --ssh 127.0.0.1:22 --ssl 127.0.0.1:443 --pidfile /var/run/sslh/sslh.pid"

Por fim ativem o serviço no arranque e procedam à sua execução:

sudo systemctl enable sslh
sudo systemctl start sslh

E está feito. Verifiquem se o daemon do SSLH está em execução, através do seguinte comando:

ps -ef | grep sslh 

SSLH: Partilhe o mesmo porto para HTTPS, SSH e OpenPVN

Para testar se está tudo em funcionamento, experimentem através de outra máquina na rede executar o comando:

ssh -p 443 [user]@[ip_maquina_remota]

SSLH: Partilhe o mesmo porto para HTTPS, SSH e OpenPVN

E está feito! Graças ao sslh é possível partilhar o mesmo porto lógico para vários serviços. Como mostrado no exemplo anterior, acedemos à máquina remota via porto lógico 443, em vez do tradicional 22 que normalmente está bloqueado pelos operadores.

 

Leia também…

Como instalar e configurar o OpenSSH no Linux CentOS?

Comentários

4

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Joselito
    Joselito

    Finalmente tech raiz! Valeu Pedro Pinto!

  2. Avatar de Tozé Brito
    Tozé Brito

    ? Acho que queriam fazer o exº contrário…tentar aceder via port 22 em vez do (tradicional 443)

    1. Avatar de Dav
      Dav

      O acesso ssh costuma ser acedido via porto 443?… Talvez não tenhas lido com atenção…

  3. Avatar de nop90
    nop90

    O que queres dizer com “A maioria dos ISPs bloqueiam a maioria dos portos” ??? isso verifica-se lá fora, em Portugal não. Qualquer pessoa pode configurar no router uma porta para o exterior. Nunca encontrei um único ISP e respectivo equipamento que tivesse essa restrição, mesmo em routers 4G.