Isso soa como um trabalho para o IPSEC para mim.
O IPSEC é "cozido" nas distribuições modernas do Linux. É completamente transparente para a camada de aplicação e "apenas funciona". Eu seguiria esse caminho para comunicação intra-máquina que precisa permanecer privada.
Uma configuração IPSEC "host para host" com chaves pré-compartilhadas é bastante simples. No CentOS, por exemplo, já existe um método para configurar essas conexões de host para host como parte da funcionalidade normal de "scripts de rede" (veja link ).
Dependendo da distribuição do Linux que você está usando, pode ser muito fácil de configurar, ou você pode ter que fazer um pouco de trabalho. Você não precisará de nenhum script de inicialização / desligamento de VPNs, scripts de monitoramento de túneis, etc. - tudo funcionará na camada 3. Isso, para mim, soa como uma solução vencedora.
Editar:
Eu uso o OpenVPN com frequência e muito, então eu não estou "desmotivando" o OpenVPN aqui, mas como uma solução para o seu problema em particular, eu acho que é sub-ótimo pelas seguintes razões (na ordem do meu grau de preocupação) :
-
Cria uma infraestrutura de rede paralela. Você precisará ter certeza de que a comunicação entre hosts usa os endereços IP de destino corretos, de modo que as comunicações percorram a VPN, em vez da rede IP pública. Isso pode ser particularmente divertido se você planeja usar nomes DNS, já que precisará fazer algo com seu DNS (criando nomes de host hostA-secure, hostB-secure, etc.) ou criando uma "view" de DNS que sempre retorna o nome DNS. Endereços IP "seguros" quando as consultas vêm dos hosts "seguros") para ter certeza de que você resolve nomes para os IPs VPN "seguros".
-
O OpenVPN é ponto a ponto. Você precisará configurar uma malha de túneis OpenVPN ou rotear o tráfego do OpenVPN "hub and spoke" por meio de um único host. O IPSEC é totalmente peer-to-peer, e você pode facilmente configurar uma topologia de malha com IPSEC e codificação dinâmica. Com a codificação pré-compartilhada, é um pouco mais trabalhoso, mas você também pode configurar uma topologia de malha dessa maneira.
-
O OpenVPN é um programa de área de usuário que precisa ser iniciado. Isso não é um grande negócio, mas o IPSEC vive no espaço do kernel e "simplesmente funciona" sem iniciar nenhum programa de usuário quando estiver configurado.
Não entendo por que as pessoas acham que o IPSEC é tão odiosamente difícil de configurar. O IPSEC com chaves pré-compartilhadas é tão fácil de configurar em distros modernas quanto o OpenVPN com chaves estáticas (se não mais - normalmente sua distro trata de iniciar / parar automaticamente). O IPSEC com codificação dinâmica, usando uma PKI, requer quase os mesmos passos da configuração do OpenVPN com a autenticação baseada em certificados.
A complexidade do OpenVPN criando uma topologia de rede paralela com um segundo conjunto de endereços IP seria o assassino para mim. Eu gostaria que meus hosts pudessem conversar usando os mesmos endereços IP com os quais eles recebem comunicação não segura, "automagicamente" criptografando as conexões entre si de forma transparente.
Editar 2:
Para o que o pôster descreveu, acho que o IPSEC soa como a melhor solução (pelas razões que descrevi acima). Se o pôster estava falando sobre a interoperação com outros sistemas operacionais, e não apenas procurando proteger a comunicação entre alguns hosts, eu recomendaria o OpenVPN especificamente.
Eu concordaria que interoperar as várias implementações IPSEC do Linux com qualquer outra coisa é difícil (assim como interoperar praticamente qualquer IPSEC com praticamente qualquer outra implementação IPSEC, na verdade). Consegui fazer com que os túneis Cisco PIX para OpenSWAN funcionassem e obtive algum sucesso com túneis com chave estática vindos de máquinas Windows. Eu nunca toquei nenhum equipamento da Juniper, então não posso falar com ele.
Eu usei o OpenSWAN (quando era FreeSWAN, na verdade) e eu concordaria que os documentos são difíceis. Como o RedHat "escolheu" as ferramentas KAME para gerenciar a pilha IPSEC do kernel Linux 2.6, parei de seguir o OpenSWAN. Nas poucas vezes em que precisei de IPSEC host-to-host nos últimos anos (no RHEL ou no CentOS - tudo com o qual realmente trabalho no mundo do Linux), as ferramentas KAME se saíram bem. Eu tenho usado a documentação "oficial" do RHEL e a documentação do site do projeto KAME com sucesso.