Na documentação oficial do OpenVPN , você pode encontrar:
[...]
--route-nopull
When used with --client or --pull, accept options pushed by server EXCEPT for routes and
dhcp options like DNS servers.
When used on the client, this option effectively bars the server from adding routes to the
client's routing table, however note that this option still allows the server to set the
TCP/IP properties of the client's TUN/TAP interface.
[...]
Infelizmente, além do que você está perguntando, esse tem o efeito colateral de desativar também o gateway de redirecionamento fornecido pela sua configuração e isso pode representar um problema, no seu caso.
O que eu sugiro é uma abordagem completamente diferente.
Como você mencionou explicitamente: " Meu objetivo é aplicar automaticamente um servidor DNS padrão a usuários não habilitados tecnicamente, além de permitir que usuários de computador qualificados configurem seus próprios servidores DNS. " parece como você sabe exatamente quais usuários você quer fornecer um DNS-config e quais usuários você não quer fornecer tal configuração.
Portanto, em vez de enviar sua configuração diretamente no arquivo de configuração principal do OpenVpn (... e, como tal, fornecer essa configuração para ALL dos seus usuários), você pode implementar configuração por usuário . Você pode fazer isso com:
--client-config-dir dir
Specify a directory dir for custom client config files. After a connecting client
has been authenticated, OpenVPN will look in this directory for a file having the
same name as the client's X509 common name. If a matching file exists, it will be
opened and parsed for client-specific configuration options. If no matching file is
found, OpenVPN will instead try to open and parse a default file called "DEFAULT",
which may be provided but is not required. Note that the configuration files must
be readable by the OpenVPN process after it has dropped it's root privileges.
This file can specify a fixed IP address for a given client using --ifconfig-push, as
well as fixed subnets owned by the client using --iroute.
One of the useful properties of this option is that it allows client configuration
files to be conveniently created, edited, or removed while the server is live, without
needing to restart the server.
The following options are legal in a client-specific context: --push, --push-reset,
--iroute, --ifconfig-push, and --config.
Assim, quanto à configuração principal, você deve remover :
[**** to be removed from the main config***]
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
e adicione referência ao diretório / etc / openvpn / userconf (como um exemplo. Sinta-se à vontade para escolher o que quiser):
[**** to be ADDED to the main config***]
client-config-dir /etc/openvpn/userconf
Em seguida, no diretório userconf, crie um arquivo para cada usuário que você deseja fornecer, como, por exemplo, as duas linhas excluídas acima.
Obviamente, você está livre para ajustar a configuração openvpn para cada usuário, não limitando a personalização para as duas linhas acima.
Como nota final, você também pode estar interessado no parâmetro ccd-exclusive .