Assegna indirizzi IP statici ai client OpenVPN
OpenVPN ha la capacità di assegnare ai client indirizzi IP specifici dal pool IP definito. Per ottenere ciò, utilizza tre tipi di algoritmi di selezione dell'indirizzo IP del client. Questi includono, nell'ordine in cui vengono utilizzati;
- Utilizzo di
--client-connect script
. Ciò comporta l'esecuzione dello script specificato che genera un file contenente indirizzi IP statici sul server quando un client si connette. Questo metodo è solitamente la prima scelta essere considerato. - Utilizzo di
--client-config-dir
. Ciò comporta l'uso di un file che contiene indirizzi IP statici per i client in base al nome comune (CN) del certificato client (seconda scelta ). - Utilizzo di
--ifconfig-pool
per l'allocazione per IP dinamico (ultima scelta ).
Per ulteriori informazioni, consulta man openvpn
.
In questa guida utilizzeremo la seconda opzione, tramite la quale configureremo il nostro server OpenVPN per leggere un file specifico, che contiene i nomi comuni dei client e gli indirizzi IP mappati. Ciò garantisce che a un client di connessione venga assegnato un indirizzo IP statico in base al nome comune definito sul certificato client.
Nella nostra guida precedente, abbiamo trattato l'installazione e la configurazione di un server OpenVPN sul sistema CentOS 8.
Crea un file per memorizzare indirizzi IP statici
L'uso della client-config-dir
opzione, richiede che gli indirizzi IP statici da assegnare ai client di connessione siano archiviati in un file che può essere letto dal server OpenVPN.
Pertanto, apri il file di configurazione del server OpenVPN, /etc/openvpn/server/server.conf
e imposta il tuo percorso al file di assegnazione IP statico come valore per client-config-dir
parametro.
vim /etc/openvpn/server/server.conf
... # EXAMPLE: Suppose you want to give # Thelonious a fixed VPN IP address of 10.9.0.1. # First uncomment out these lines: client-config-dir /etc/openvpn/ccd ...
In questa demo, impostiamo il percorso in cui archiviare il file di assegnazione di indirizzi IP statici/fissi in /etc/openvpn/ccd
. Bene, ho provato a utilizzare il percorso predefinito, /etc/openvpn/server/ccd, ma ha provocato l'errore di seguito;
Could not access file 'ccd/koromicha': Permission denied (errno=13) Could not access file 'ccd/DEFAULT': Permission denied (errno=13)
Quindi, come soluzione alternativa, abbiamo scelto di utilizzare un percorso diverso, come sopra.
Assegna indirizzi IP statici ai client OpenVPN
Per ogni client OpenVPN a cui vuoi assegnare un indirizzo IP statico, devi estrarre il nome comune da quel certificato client specifico.
Nella nostra demo, abbiamo creato due client OpenVPN, koromicha e johndoe . Per estrarre i nomi comuni dal certificato client, utilizzare openssl
comando come mostrato di seguito. Assicurati di sostituire i certificati client .
openssl x509 -subject -noout -in /etc/openvpn/client/koromicha/koromicha.crt
subject=CN = koromicha
openssl x509 -subject -noout -in /etc/openvpn/client/johndoe/johndoe.crt
subject=CN = johndoe
Una volta che hai i nomi comuni per i client, puoi quindi assegnare loro indirizzi IP statici usando il ifconfig-push
opzione. Ad esempio, per assegnare il client utilizzando il certificato con koromicha
come nome comune un indirizzo IP, 10.8.0.50
e client utilizzando il certificato con johndoe
come CN e indirizzi IP di 10.8.0.60
, ecco come viene eseguito il compito;
echo "ifconfig-push 10.8.0.50 255.255.255.0" > /etc/openvpn/ccd/koromicha
echo "ifconfig-push 10.8.0.60 255.255.255.0" > /etc/openvpn/ccd/johndoe
Nota che il modo in cui assegni gli indirizzi IP statici dipende dalla topologia che hai configurato sul tuo server OpenVPN. Nel nostro caso, impostiamo la topologia su subnet;
# Network topology ... topology subnet
Maggiori informazioni sui concetti di indirizzamento di OpenVPN.
Riavvia il server OpenVPN;
systemctl restart [email protected]
Assicurati di controllare sempre i log;
tail -f /var/log/openvpn/openvpn.log
Verifica l'assegnazione dell'indirizzo IP statico sui client OpenVPN
Supponendo che tu abbia già il rispettivo file di configurazione OpenVPN del client sui tuoi client, avvia la connessione e verifica l'assegnazione dell'indirizzo IP.
sudo openvpn johndoe.ovpn
Verifica dell'indirizzo IP assegnato;
ip add show tun0
8: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100 link/none inet 10.8.0.60/24 brd 10.8.0.255 scope global tun0 valid_lft forever preferred_lft forever inet6 fe80::ea62:fbae:5b45:2d78/64 scope link stable-privacy valid_lft forever preferred_lft forever
Sull'altro client;
ip add show tun0
12: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100 link/none inet 10.8.0.50/24 brd 10.8.0.255 scope global tun0 valid_lft forever preferred_lft forever inet6 fe80::c928:c76d:fbd4:6c6a/64 scope link stable-privacy valid_lft forever preferred_lft forever
Verifica della connettività tra i due client;
ping 10.8.0.60 -c 3
PING 10.8.0.60 (10.8.0.60) 56(84) bytes of data. 64 bytes from 10.8.0.60: icmp_seq=1 ttl=64 time=4.67 ms 64 bytes from 10.8.0.60: icmp_seq=2 ttl=64 time=3.86 ms 64 bytes from 10.8.0.60: icmp_seq=3 ttl=64 time=4.05 ms --- 10.8.0.60 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2003ms rtt min/avg/max/mdev = 3.864/4.196/4.670/0.351 ms
Questo è tutto. Siamo giunti al termine della nostra guida su come assegnare indirizzi IP statici ai client OpenVPN.
Esercitazioni correlate
Connettiti a OpenVPN utilizzando Network Manager su CentOS 8/Ubuntu 18.04
Installa e configura il client OpenVPN su CentOS 8/Ubuntu 18.04
Configura il client VPN strongSwan su Ubuntu 18.04/CentOS 8