Come rifiutare le rotte PUSHed dal server OpenVPN?


27

Quando stabilisco una connessione client OpenVPN su Internet al nostro server OpenVPN aziendale, invia diverse route statiche. Sfortunatamente, queste rotte interrompono la connettività all'interno del mio ambiente di rete locale, poiché si scontrano con le mie rotte. Come posso rifiutare quei percorsi?

Risposte:


30

I tempi sono passati e dal 2017 (OpenVPN 2.4) questo è possibile con

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

Questo (esempio inventato) consentirà di apprendere le rotte che iniziano con 192.168, ignora tutte le 172. rotte, consente le altre rotte verso 1.qualcosa e quindi ignora tutte le altre rotte.

Per ignorare redirect-gatewaypuoi:

pull-filter ignore redirect-gateway

Questi comandi vengono aggiunti al file di configurazione del client.

Allo stesso modo puoi usare la parola chiave rejectche dice al server VPN che non è stata accettata. Non sono sicuro dell'uso di questo.

E infine, puoi anche filtrare altre opzioni di configurazione. Ho usato questo per ignorare i server DNS offerti, perché il DNS è gestito da un server locale per me.


3
Nota, questo funziona solo in OpenVPN 2.4.x.
ab77,

Ha funzionato su OpenVPN 2.4.7 utilizzando la GUI di OpenVPN 11.13.0 su Windows 10 per risolvere il conflitto di sottorete tra due server OpenVPN Access entrambi utilizzando configurazioni predefinite di cui ho bisogno contemporaneamente. Grazie per aver fornito il pezzo finale per farlo funzionare!
flickerfly,

24

Dopo un lungo studio del openvpnmanuale, ho trovato una risposta alla mia domanda:

Se non desideri che i percorsi vengano eseguiti automaticamente, ma che vengano gestiti dal tuo strumento, utilizza la seguente opzione:

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

Se si accetta tutto ciò che viene inviato dal server ad eccezione dei percorsi, utilizzare la seguente opzione:

  --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.

2
FYI è anche possibile utilizzare route-nopullnel file di configurazione .opvn: stackoverflow.com/questions/35698215/...
knocte

1

Non puoi rifiutare le singole rotte, tuttavia se hai accesso per modificare la tua configurazione OpenVPN, puoi effettivamente arrestare il server --pusheseguendo qualsiasi configurazione rimuovendo tutte le istanze cliento pulldalla tua configurazione. Dovrai invece aggiungere tls-clientse questa direttiva non esiste già nella tua configurazione ( clientè solo un sinonimo di pull, tls-client).

Ovviamente, se lo fai, perderai tutte le rotte e qualsiasi altra configurazione che verrebbe normalmente modificata pushper te, quindi dovrai configurare manualmente queste impostazioni dopo che il tunnel è arrivato.


ciao Mike, e come connettere manualmente un percorso alla sottorete che mi interessa? (10.0.0._) un modo per configurarlo nel file .opvn?
Knocte,

route 10.0.0.0 255.0.0.0
markhorrocks
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.