OpenVPN: instradare solo indirizzi IP specifici tramite VPN?


45

Su una rete privata remota ci sono due server: un file server e un database (entrambi sono macchine Win, nel caso in cui sia importante).

Il file server ha i suoi meccanismi di autenticazione abbastanza robusti e mi consente di collegarmi direttamente da una posizione remota.

Il server di database utilizza un nome utente e una password semplici, quindi per impedire l'accesso non autorizzato, è bloccato sulla rete locale - il traffico esterno è bloccato.

Per accedere al server di database, sto usando il client OpenVPN su Windows per connettermi a un server VPN sulla rete privata.

Per impostazione predefinita, OpenVPN instrada tutti i pacchetti di rete destinati alla rete remota su cui risiede il server VPN, attraverso la VPN. Sfortunatamente, l'accesso al file server tramite VPN è estremamente lento!

Domanda:

Come posso configurare il client OpenVPN per indirizzare SOLO il traffico attraverso la VPN destinata a un singolo indirizzo IP specifico, vale a dire il server di database ??


È semplice, vedi qui per come farlo superuser.com/a/178675/96461
Sameer,

Risposte:


51

La configurazione corretta per OpenVpn è:

route-nopull 
route 192.168.0.0 255.255.255.0

Queste voci appartengono al tuo file .ovpn e indirizzeranno tutto il traffico della sottorete 192.168.0. * Attraverso la VPN.

Per un solo IP (192.168.0.1):

route-nopull 
route 192.168.0.1 255.255.255.255

Siamo prevalentemente di lingua inglese e non conosciamo necessariamente il tedesco. Per favore, traduci la tua risposta.
gronostaj,

1
+1. Questo è esattamente ciò di cui avevo bisogno. Sto usando ovpn client sul mio Linux e quindi mi rispondi mi ha appena salvato. Grazie.
slayedbylucifer

Posso semplicemente indirizzare un sito Web su VPN? Ad esempio solo www.facebook.com
Nicola Peluchetti,

Nel mio caso, il routing di un singolo IP tramite VPN sembra funzionare bene. Ma quando si utilizza la maschera di sottorete non funziona affatto. Qualche idea sul perché?
running.t

Ancora non conosco la risposta alla mia domanda (sopra), ma ho fatto qualche indagine e ho creato un thread separato al riguardo: superuser.com/questions/854194/…
running.t

24

obiettivi

  • Utilizzare la normale connessione Internet per tutto il traffico Internet per impostazione predefinita, anche quando la VPN è connessa.
  • Instrada il traffico verso un indirizzo IP specifico tramite la VPN.

passi

  1. Premi Win+ Red esegui ncpa.cpl.

  2. Fare clic con il tasto destro del mouse sulla connessione VPN e andare su Proprietà → Rete .

  3. Selezionare Protocollo Internet versione 4 e andare in Proprietà → Avanzate ... .

  4. Deseleziona Usa gateway predefinito sulla rete remota e fai clic su OK .

  5. (opzionale) Ripetere i passaggi precedenti per Internet Protocol Versione 6 .

  6. (Ri) connettiti alla tua VPN.

  7. Aprire un prompt dei comandi ed eseguire route print -4.

  8. Individua l'interfaccia della VPN nell'elenco Interfaccia e il suo gateway nelle rotte attive .

    Sulla mia macchina, ho:

    Interface List
     32...........................Super Free VPN
    
    [...]
    
    Active Routes:
    Network Destination        Netmask          Gateway       Interface  Metric
              0.0.0.0          0.0.0.0         On-link        10.6.6.127     31
             10.0.0.0        255.0.0.0        10.88.1.1      10.88.1.102     31
    

    Qui, il gateway della VPN è 10.88.1.1, poiché è il gateway per il 10.xxx.xxx.xxxblocco.

  9. Aggiungi una route persistente che verrà aggiunta alle route attive ogni volta che c'è una connessione alla VPN:

    route -p add 23.22.135.169 10.88.1.1 if 32
    

    In questo esempio, 23.22.135.169è l'IP di whatismyip.org, 10.88.1.1è l'IP del gateway e 32il numero dell'interfaccia.

  10. (opzionale) Ripetere i passaggi precedenti per route print -6.

  11. Prova l'installazione.

    Se tutto ha funzionato, whatismyip.org e www.whatismyip.cx visualizzeranno IP diversi ora.


1
Sicuramente c'è un modo più semplice?
Brian Lacy,

1
Sai come ottenere questo risultato sotto Linux (Ubuntu)?
Елин Й.

1
@ ЕлинЙ. se stai usando Network Manager seleziona "Usa questa connessione solo per le risorse su questa rete".
leif81,

1
+1 ... ma potresti giocare a golf?
Olivier Dulac,

11

Alla tua configurazione client OpenVPN, aggiungi una riga come:

route The.IP.To.Go 255.255.255.255

(Dove The.IP.To.Go è l'IP che desideri instradare attraverso la VPN)

Ciò indica a OpenVPN di creare la voce nella tabella di routing del sistema operativo.

In alternativa, è possibile creare il server OpenVPN per "inviare" questa configurazione di routing ai client, aggiungendo alla configurazione del server:

push "route The.IP.To.Go 255.255.255.255"

EDIT: Una cosa che mi è mancato di indirizzare - l'inoltro predefinito di tutto il traffico ... Potrebbe essere disabilitato sul server, oppure i client possono scegliere di ignorare le direttive "push" (quindi la nostra seconda opzione "push" il percorso non funzionerebbe ) attraverso:

route-nopull

-2
iptables -A PREROUTING -t mangle -i <LAN_interface> \
-d <remote_network>/<remote_netmask> -j ROUTE --gw <openvpn_host_ip>

Spiegare cosa fa questo comando. Solo un comando senza spiegazione non è così utile. Controlla anche la formattazione del tuo post: tutti <brackets>non sono visibili se non sono contrassegnati come codice.
slhck,
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.