OpenVPN sobre túnel ssh

0

Estou tentando me conectar à minha rede doméstica usando o OpenVPN. Meu roteador está atrás do roteador do ISP, por isso estou com um problema NAT duplo (o endereço IP na porta WAN do meu roteador é 10.x.x.x). O ISP não pode me fornecer o endereço IP público diretamente, pois eles não têm essa opção, portanto, as conexões de entrada não são possíveis.

Minha configuração de rede

Quero ter acesso aos computadores na minha rede doméstica a partir da Internet.

O que penso fazer é criar um túnel ssh do meu servidor doméstico que executa o servidor OpenVPN para o meu VPS que possui IP público com algo como

autossh -M 10984 -i /root/.ssh/pubkey -R 1194:localhost:1194 me@myvps

Em seguida, configurar o servidor OpenVPN / clientes para usar tcpmais udpe se conectar amyvps:1194

Então, minhas perguntas são:

  1. Existe uma maneira melhor de fazer isso?
  2. Quais são as implicações de segurança / desempenho dessa solução?
hurlenko
fonte

Respostas:

0

Quais são as implicações de segurança / desempenho dessa solução?

Você tem duas camadas de criptografia (SSH e OpenVPN), que podem reduzir o desempenho - maior uso da CPU e menor taxa de transferência, especialmente se um dos três dispositivos envolvidos não tiver aceleração criptográfica de hardware. (Mesmo assim, o software SSH raramente oferece desempenho superior.)

Você também tem três camadas de controle de fluxo TCP aninhado (seu tráfego regular, dentro da camada OpenVPN, dentro da camada SSH). Isso pode não funcionar bem.

Por fim, a taxa de transferência será reduzida apenas pela sobrecarga do túnel (cabeçalhos de pacotes SSH e OpenVPN consumindo a MTU de linha de base de 1500 bytes disponível). Obviamente, uma camada é inevitável para uma VPN, mas a duplicação pode ser perceptível.

direct: IPv4 <20> |                                                    | TCP <20> | application
vpn:    IPv4 <20> | UDP <8>                 | OpenVPN <41> | IPv4 <20> | TCP <20> | application
yours:  IPv4 <20> | TCP <20> | SSH <~20–40> | OpenVPN <41> | IPv4 <20> | TCP <20> | application

Existe uma maneira melhor de fazer isso?

Como você já possui um VPS, coloque o servidor OpenVPN - e faça com que o seu sistema doméstico se conecte "fora" ao VPS em vez do inverso. (Sim, o servidor OpenVPN encaminhará os dados entre os clientes 'doméstico' e 'móvel' sem problemas.)

Dessa forma, você poderá usar o UDP sem problemas relacionados ao NAT, desde que habilite o ping periódico no cliente ou mantenha o tráfego frequente no túnel.

Se você estiver usando a VPN tun- mode, o servidor precisará apenas de uma rota do kernel para a sua sub-rede LAN tun0e, em seguida, um OpenVPN redirecionará para a mesma sub-rede através do endereço do cliente VPN doméstico. (Com a VPN em modo de toque , é apenas uma única rota do kernel que combina as duas.)

gravidade
fonte
Obrigado pela sua resposta! Se eu configurar meu roteador doméstico (ele possui suporte ao OpenVPN) para conectar-se ao meu VPS e depois conectar-se ao mesmo VPS de fora da minha rede doméstica (por exemplo, usando meu telefone com 3G), poderei acessar meu servidor doméstico pelo nome de DNS configurado no roteador (usando dnsmasq) ou eu precisaria fazer algum roteamento adicional?
hurlenko 18/01