Como recusar rotas que são empurradas pelo servidor OpenVPN?

27

Quando eu estabeleço uma conexão de cliente OpenVPN pela Internet com nosso servidor OpenVPN corporativo, ele envia várias rotas estáticas. Infelizmente, essas rotas quebram alguma conectividade no meu ambiente de rede local, pois colidem com minhas próprias rotas. Como posso recusar essas rotas?

mbaitoff
fonte

Respostas:

30

Os tempos mudaram e, a partir de 2017 (OpenVPN 2.4), isso é possível com

pull-filter accept "route 192.168."
pull-filter ignore "route 172."
pull-filter accept "route 1"
pull-filter ignore "route "

Este (exemplo inventado) permitirá que as rotas sejam aprendidas que começam com 192.168, ignoram todas as 172. rotas, permitem outras rotas para 1. qualquer coisa e depois ignoram todas as outras rotas.

Para ignorar, redirect-gatewayvocê pode:

pull-filter ignore redirect-gateway

Esses comandos são adicionados ao seu arquivo de configuração do cliente.

Da mesma forma, você pode usar a palavra-chave rejectque informa ao servidor VPN que ela não foi aceita. Não tenho certeza do uso disso.

E, finalmente, você pode filtrar outras opções de configuração também. Usei isso para ignorar os servidores DNS oferecidos, porque o DNS é tratado por um servidor local para mim.

Criggie
fonte
3
Observe que isso funciona apenas no OpenVPN 2.4.x.
ab77
Trabalhei no OpenVPN 2.4.7 usando a OpenVPN GUI 11.13.0 no Windows 10 para resolver conflitos de sub-rede entre dois servidores OpenVPN Access, ambos usando configurações padrão que eu preciso ao mesmo tempo. Obrigado por fornecer a peça final para que ela funcione!
flickerfly 18/09
24

Após um extenso estudo do openvpnmanual, encontrei uma resposta para minha pergunta:

Você não deseja que as rotas sejam executadas automaticamente, mas manipuladas por sua própria ferramenta, use a seguinte opção:

   --route-noexec
          Don't add or remove routes automatically.  Instead pass routes to --route-up script using environmental variables.

Se você estiver aceitando tudo o que é enviado pelo servidor, exceto as rotas, use a seguinte opção:

  --route-nopull
          When used with --client or --pull, accept options pushed by server EXCEPT for routes.
          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.
mbaitoff
fonte
2
fyi você também pode usar route-nopullno arquivo de configuração .opvn: stackoverflow.com/questions/35698215/…
knocte
1

Você não pode recusar rotas individuais, no entanto, se você tem acesso para editar a configuração do OpenVPN, então você pode efetivamente parar o servidor --pushing qualquer configuração para você, removendo todas as instâncias clientou pullde sua configuração. Você vai precisar de, em vez de adicionar tls-clientse esta directiva ainda não existir na sua configuração ( clienté apenas um sinônimo para pull, tls-client).

Obviamente, se você fizer isso, perderá todas as rotas e qualquer outra configuração que normalmente seria pusheditada para você; portanto, você precisará definir manualmente essas configurações após a abertura do seu túnel.

Mike Insch
fonte
ei Mike, e como configurar manualmente uma rota apenas para a sub-rede em que estou interessado? (10.0.0._) alguma maneira de configurar isso no arquivo .opvn?
knocte
rota 10.0.0.0 255.0.0.0
markhorrocks