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...
Este artigo tem mais de um ano
Fonte: ostechnix
Finalmente tech raiz! Valeu Pedro Pinto!
? Acho que queriam fazer o exº contrário…tentar aceder via port 22 em vez do (tradicional 443)
O acesso ssh costuma ser acedido via porto 443?… Talvez não tenhas lido com atenção…
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.