Perché questa allocazione dell'IP statico del client in OpenVPN fallisce?


8

Sto eseguendo un server OpenVPN e desidero assegnare a un client specifico un IP statico.

Questo è il mio server.conf. Penso che questo configura il pool di IP virtuali per estendersi dal 10.5.24.209 al 10.5.24.223.

port 443
proto tcp
dev tun
sndbuf 0
rcvbuf 0
ca ca.crt
cert server.crt
key server.key
dh dh.pem
auth SHA512
tls-auth ta.key 0
topology subnet
server 10.5.24.208 255.255.255.240
#This netmask should span IPs .208-.223.
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 168.xx.xx.xx"
keepalive 10 120
cipher AES-256-CBC
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
crl-verify crl.pem
client-to-client
client-config-dir ccd

Questo è il contenuto di /etc/openvpn/ccd/W7LocalVM, dove W7LocalVM è il nome comune del mio cliente. Non capisco bene cosa faccia questa direttiva, ma penso che il primo IP dovrebbe essere l'IP statico desiderato del mio client e il secondo IP dovrebbe essere l'IP del mio server.

ifconfig-push 10.5.24.210 10.5.24.209

Tuttavia, quando provo a connettere il mio client con questa configurazione del server, ottengo il seguente errore:

Mon Aug 07 14:07:34 2017 Set TAP-Windows TUN subnet mode network/local/netmask = 10.5.24.208/10.5.24.210/10.5.24.209 [SUCCEEDED]
Mon Aug 07 14:07:34 2017 MANAGEMENT: Client disconnected
Mon Aug 07 14:07:34 2017 ERROR: --ip-win32 dynamic [offset] : offset is outside of --ifconfig subnet
Mon Aug 07 14:07:34 2017 Exiting due to fatal error

Ho pensato che l'IP 10.5.24.210 si trovasse all'interno della sottorete definita sul lato server e non capisco perché ricevo questo errore. Qualcuno potrebbe darmi una mano su questo?


1
Suggerirei invece di chiedere questo su Server Fault, potrebbe essere più utile di feedback dal momento che quel sito è dedicato ai problemi di amministrazione del server.
EJoshuaS - Ripristina Monica il

Ok. Grazie. Non sapevo di quella comunità. Devo ripubblicare o c'è qualche funzione che mi consente di migrare il post?
Magnus,

1
Puoi segnalare l'intervento del moderatore e chiedere loro di migrare. (Per alcuni siti, come Super User, la community può votare per migrare, ma la migrazione a quel sito deve essere effettuata dai moderatori).
EJoshuaS - Ripristina Monica il

Risposte:


4

Questo problema si crea perché openvpn sta cercando di analizzare le opzioni ifconfig come ip seguito da una subnet mask.

Secondo la pagina man:

- modalità topologica

...

sottorete - Usa una sottorete piuttosto che una topologia punto-punto configurando l'interfaccia tun con un indirizzo IP locale e una maschera di sottorete, simile alla topologia usata nella modalità tap -dev e bridging ethernet. Questa modalità alloca un singolo indirizzo IP per client di connessione e funziona anche su Windows. Disponibile solo quando server e client sono OpenVPN 2.1 o versioni successive o OpenVPN 2.0.x che è stato patchato manualmente con il codice della direttiva --topology. Se utilizzato su Windows, richiede la versione 8.2 o successiva del driver TAP-Win32. Se utilizzato su * nix, richiede che il driver tun supporti un comando ifconfig (8) che imposta una sottorete anziché un indirizzo IP dell'endpoint remoto.

Questa opzione esiste in OpenVPN 2.1 o versioni successive.

Nota: l'uso della sottorete --topology modifica l'interpretazione degli argomenti di --ifconfig in "indirizzo maschera di rete", non più "remoto locale".

--ifconfig l rn

Impostare i parametri dell'adattatore TUN / TAP. l è l'indirizzo IP dell'endpoint VPN locale. Per i dispositivi TUN in modalità punto a punto, rn è l'indirizzo IP dell'endpoint VPN remoto. Per i dispositivi TAP o TUN utilizzati con la sottorete --topology , rn è la maschera di sottorete del segmento di rete virtuale che viene creato o collegato . Per i dispositivi TUN, che facilitano le connessioni IP punto-punto virtuali (se utilizzato in modalità --topology net30 o p2p), l'uso corretto di --ifconfig consiste nell'utilizzare due indirizzi IP privati ​​che non sono membri di alcuna sottorete esistente che è in uso. Gli indirizzi IP possono essere consecutivi e il loro ordine deve essere invertito sul peer remoto. Dopo aver stabilito la VPN, eseguendo il ping di rn, si eseguirà il ping su tutta la VPN.

Per i dispositivi TAP, che forniscono il ....

All'interno del tuo codice server, imposti la tua topologia su subnet, e poi la invii al client usando l' serveristruzione.

Secondo la documentazione sopra, invece di inviare il tuo ifconfig usando "local", "remote" address, devi aggiungere quanto segue a "/ etc / openvpn / ccd / W7LocalVM":

ifconfig-push 10.5.24.210 255.255.255.252
push route 10.5.24.210 255.255.255.252
# ifconfig 10.5.24.209 255.255.255.252

L'ultima riga probabilmente non è necessaria, ma viene lasciato come esempio cosa dovrebbe fare ifconfig-push sul lato server per far funzionare la connessione.


Ho scritto un commento qui chiedendo perché hai suggerito di allocare quattro IP per client, ma ero abbastanza laborioso da trovare la risposta nelle FAQ. Grazie per aver risolto l'enigma!
Magnus,
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.