Melhor maneira de criar o TCP Reverse Tunnel

0

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.

    
por Logan 21.01.2014 / 01:08

1 resposta

0

Eu fiz isso. Instale o servidor openvpn no VPS. Configure a home box como um cliente. O OpenVPN permitirá conexões cliente-cliente.

Você pode alterar o roteamento estático no outro lado do VPS para que ele possa enviar tráfego para sua caixa inicial ou instalar o cliente VPN nas outras três máquinas. O primeiro exemplo é mais difícil de configurar, mas mais fácil de manter.

    
por 21.01.2014 / 01:11