Você está correto. Um cliente pode editar seu arquivo ovpn local e dizer a ele para ignorar rotas enviadas por push e, em seguida, configurá-lo para rotear todo o tráfego para o gateway. Eu tive que fazer isso algumas vezes para testar. O OpenVPN não tem como restringir isso.
Você tem duas opções:
- Bloqueie as permissões do arquivo OVPN do cliente para que elas não possam editá-lo
- Implemente regras de firewall no servidor OpenVPN que impeçam o tráfego de saída, exceto para sub-redes específicas
Se você estiver em um ambiente corporativo, provavelmente já tem mecanismos para controlar as permissões nos computadores dos usuários. A primeira opção pode ser bem fácil.
Se você não tiver controle das permissões dos usuários para o arquivo, a regra do firewall é o melhor caminho a seguir. Você já tinha que configurar regras para o encaminhamento de um mascaramento para o trabalho (Exemplo: link ). Você pode inserir regras adicionais do iptables para permitir apenas suas sub-redes específicas.
Atualização: Com base nas suas notas revisadas, fica ainda mais claro que sua única opção é o firewall no lado do servidor. Você terá que pensar muito sobre os seus filtros de saída. O que você provavelmente terá que fazer é criar seu próprio programa, criando inteligentemente regras de firewall. Se você souber que cada cliente está sendo roteado para IPs específicos, poderá abrir dinamicamente rotas no firewall quando o cliente se conectar. Você pode conectar-se ao sistema do OpenVPN quando os clientes se conectarem usando a diretiva learn-address
na configuração do servidor, para enviar detalhes sobre a conexão do cliente em seu programa personalizado.