Então, aqui está a configuração da rede:
+
+--------+ +--------+ +--------+ | +--------+ +--------+ +--------+
| Client | | Client | | Client | | | Client | | Client | | Client |
+--------+ +--------+ +--------+ | +--------+ +--------+ +--------+
| | | | | | |
| | | | | | |
| v | | | v |
+----------->+------------+<--+ | +----------->+------------+<--+
|VPS Instance| | |VPS Instance|
+------------+------------+ | +------------+
| ^ | ^
| | | |
| | +----------> |
| | +----------> |
| | +----------> Now a persistant two way connection
| Initial Conn. | |
| | | for tunneling client connections back
| | | |
| For setting up a|tunnel/reverse proxy.| to the home server.
| | | |
| | | |
HS Inaccessibible | | |
| | | |
| | | |
v ISP Firewall/NAT | | ISP Firewall/NAT |
+----------------------------|------+ | +----------------------------|------+
| | | | | | |
| +-------------+---+ | | | +-------------+<--+ |
| | Home Server | | | | | Home Server | |
| +-------------+ | | | +-------------+ |
+-----------------------------------+ + +-----------------------------------+
Também, basicamente, explica o que eu quero realizar. Eu tenho um servidor inacessível que eu quero tornar acessível por tunelamento de tráfego para um servidor acessível. Como um dos servidores está inacessível, o túnel não pode ser passivo; deve ser uma conexão ativa iniciada pelo inacessível.
Como isso pode ser feito? Existe uma maneira de fazer isso com iptables
e alguma combinação de interfaces de túnel?
Algumas pesquisas básicas me levam a reverter túneis SSH, interfaces de túnel (reconhecidamente, não consegui encontrar documentação acessível em mais do que uma visão geral de alto nível muito ) e software VPN.
-
Um túnel SSH reverso parece desnecessário, uma vez que não precisa ser protegido e o processo em execução no servidor já terá bastante uso de recursos e não quero sobrecarregá-lo com criptografia e compactação.
-
Interfaces de túnel: eu realmente não consegui encontrar uma documentação suficientemente acessível e de baixo nível que tivesse a forma que eu queria enquanto estivesse em um ponto que eu entenderia.
-
O software VPN expõe toda a rede (certo?), enquanto eu realmente só quero encaminhar as portas selecionadas. E, francamente, parece complicado na maioria das vezes.
Agora, eu realmente encontrei um programa para fazer isso ( PortFusion ), eu não tive a chance de teste seu desempenho. Além disso, eu sinto que deveria haver uma maneira nativa de fazer isso no Linux, eu simplesmente não consigo encontrar resultados para isso.