Pplware

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

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.


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).

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

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

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.

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 

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]

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…

Exit mobile version