Existe alguma maneira de forçar um processo específico a usar uma conexão OpenVPN, mas permitir que todos os outros processos em um sistema usem a conexão de rede padrão no Ubuntu Linux?
Tenho um aplicativo Python personalizado em execução na AWS que estou tentando integrar a um serviço PostgreSQL externo. O serviço fornece uma VPN configurada com OpenVPN para que eu possa acessar o servidor PostgreSQL.
Pelo que entendi, por padrão, o OpenVPN força todo o tráfego de rede no servidor a usar a VPN, que normalmente é exatamente o que você deseja. Porém, como meu aplicativo está rodando na AWS, que gerencia sua própria segurança e tem roteamento de rede otimizado, se eu configurar meu servidor para usar essa VPN para tudo, estarei forçando todo o meu tráfego para essa conexão externa, o que irá ficar lento tudo fora do ar e provavelmente resultaria em dores de cabeça de acesso à segurança, pois o acesso do servidor aos meus outros recursos da AWS pareceria vir de fora da minha conta.
Qual é a maneira mais simples de criar uma interface de rede VPN, mas evitando que todos, exceto um processo específico, a utilizem?
Responder1
Você pode usar o route-nopull
comando na configuração do cliente para evitar a criação de entradas de rota. Depois disso, você pode adicionar manualmente aquele que aponta para o servidor de banco de dados. Dessa forma, qualquer coisa que acesse o servidor de banco de dados usará VPN e todo o resto usará as rotas usadas antes.
Por exemplo, supondo que o servidor de banco de dados esteja em 192.168.111.111 (atrás do servidor VPN), você precisa incluir isto na configuração do seu cliente:
route-nopull
route 192.168.111.111 255.255.255.255