Digamos que eu tenha duas máquinas, ambas rodando Linux;
A máquina A está executando um servidor VPN e atrás de um NAT.
A máquina B é o cliente VPN.
A Máquina A cria um túnel SSH reverso de si mesma para a Máquina B, expondo uma porta na Máquina B que se conecta novamente à VPN em execução na Máquina A.
Como posso conectar-me ao servidor VPN da Máquina A a partir da Máquina B através do túnel reverso SSH?
Responder1
Um túnel SSH funciona apenas com TCP, portanto seu servidor VPN deve estar configurado para usar TCP para conexões. Você conecta o endpoint do túnel na Máquina B da mesma forma que conectaria à Máquina A. Em outras palavras, basta substituir o endereço IP e a porta de destino na configuração do cliente.
Responder2
Suponha que tenhamos esta configuração:
- A Máquina B possui domínio público machine.b e a porta 22 acessará o servidor SSH da Máquina B.
- A máquina A possui endereço IP local 192.168.10.2 e seu servidor VPN usa a porta 1194.
Etapas para configurar uma conexão VPN por meio de conexão SSH reversa:
- A Máquina A estabelece uma conexão SSH com a Máquina B com este comando: ssh -i "/path/to/key/file" -R 2500:192.168.10.2:1194[e-mail protegido]-p22
- A máquina B estabelece uma conexão VPN com 127.0.0.1:2500
Como resultado, a conexão da Máquina B à porta 2500 do localhost (127.0.0.1) será redirecionada através do túnel SSH e irá para a porta 1194 de 192.168.10.20 na Máquina A, que é o servidor VPN da Máquina A.
Eu sempre uso essa configuração como meu servidor VPN DIY caso a VPN da empresa esteja em manutenção.