Uma VPS pública e uma máquina Kali Linux atrás de NAT#
Em laboratórios de Pentest, é comum encontrarmos uma dificuldade de conectividade: a nossa máquina Kali Linux consegue estabelecer ligações para a Internet, mas não consegue receber diretamente ligações iniciadas a partir de redes externas. Isto acontece frequentemente quando estamos atrás de NAT ou CGNAT, sem controlo sobre o encaminhamento de portas no router. Para resolver essa limitação, podemos utilizar uma VPS com IP público como intermediária e estabelecer um Reverse SSH Tunnel a partir da nossa máquina local.
Neste exemplo, vamos utilizar:#
VPS: | IP público |
Kali Linux | IP privado |
Porta TCP | escolhida |
Método de encaminhamento | SSH Remote Port Forwarding ( |
A VPS será o endereço público de referência para as ligações externas, enquanto o Kali Linux será o destino do encaminhamento através do túnel SSH.
Não precisamos de instalar qualquer servidor adicional na VPS para criar o túnel. O próprio OpenSSH ficará responsável pelo encaminhamento.
Configuração na VPS#
Acedemos à VPS por SSH e editamos
vim /etc/ssh/sshd_configAlteramos o GatewayPorts para yes

Guardamos com Esc, seguido de :wq e Enter.
Verificamos a configuração:#
sshd -tE reiniciamos o serviço:
systemctl restart sshEstabelecer o túnel a partir do Kali Linux#
Na máquina local, executamos:
ssh -R 1234:127.0.0.1:1234 root@67.205.133.242É neste momento que o servidor SSH da VPS tenta criar o ponto de escuta na porta 1234. Portanto, não precisamos de iniciar manualmente um serviço nessa porta na VPS. A primeira porta 1234 identifica o ponto de entrada remoto. O endereço 127.0.0.1:1234 identifica o destino no Kali Linux.
Entender cada parte do comando#
Elemento | Significado |
|---|---|
ssh | Programa que estabelece a ligação SSH |
-R | Ativa o Remote Port Forwarding |
Primeiro | Porta que será colocada à escuta na VPS |
127.0.0.1 | Endereço de destino visto pelo Kali Linux |
Segundo | Porta de destino no Kali Linux |
root | Utilizador utilizado para autenticação na VPS |
67.205.133.242 | Endereço IP público da VPS |
A VPS precisa de ter a porta 1234 aberta manualmente?#
Não precisas de iniciar um serviço adicional na porta 1234 da VPS. O próprio OpenSSH cria o ponto de escuta quando o comando -R é aceite. Mas existe uma diferença entre uma porta estar à escuta e uma firewall permitir ligações a essa porta.
Se a firewall estiver a bloquear o TCP 1234, a ligação externa não vai conseguir chegar ao ponto de escuta, mesmo que o túnel esteja ativo.
