Eu tenho 3 dispositivos:
- Um servidor, conectado à Rede1
- Um laptop conectado à Network2
- Um Raspberry Pi, também conectado à Network2
Há também um servidor openVPN na Rede1, além de encaminhamento de porta para acesso à VPN.
Preciso que o Raspi receba solicitações TCP (destinadas ao servidor) do laptop e as envie através da VPN para o servidor e, em seguida, envie a resposta do servidor de volta para o laptop. Apenas uma porta será usada, mas também seria bom se todas as portas fossem encaminhadas. nenhum software pode ser instalado no laptop. Também, de preferência, nenhum comando ou algo semelhante no laptop.
Eu preciso de algum tipo de "encaminhamento de porta", mas em uma VPN
Use literalmente o mesmo "encaminhamento de porta", ou seja, regras DNAT no firewall do roteador (RasPi); funciona da mesma maneira, independentemente do tipo de rede.
Ou seja, adicione
DNAT
regras iptables ou nftables ao firewall RasPi para cada "encaminhamento de porta" necessário. (Não se esqueça de adicionar também regras de 'permitir encaminhamento' - elas são automáticas na maioria dos roteadores, mas não automáticas em iptables ou nftables simples.)Seu servidor deve ter uma rota de volta para Network2 através de sua conexão VPN (no OpenVPN isso provavelmente significa uma
iroute
configuração). Se isso for difícil de configurar, a alternativa é fazer com que o RasPi também façaSNAT
ouMASQUERADE
além do DNAT. (A opção SNAT/MASQ seria exatamente o mesmo tipo de configuração que para "NAT hairpinning" em LANs.)Exemplo para nftables:
Exemplo para iptables:
Alternativa: Use um “proxy reverso” no RasPi. A maioria dos proxies reversos são para HTTP/HTTPS, mas qualquer protocolo TCP ou TLS pode ser proxy. Isso não funcionará com UDP (pelo menos não facilmente) e precisa de software adicional, mas tem menos requisitos de roteamento.
Para serviços HTTP/HTTPS, Nginx ou Apache httpd seriam escolhas comuns; amplamente documentado em outros lugares. (Em ambos, a opção é chamada de "proxy_pass" ou "ProxyPass".)