Scopri come installare e configurare OpenVPN Server su CentOS 8 seguendo il link sottostante;
Configura il server OpenVPN su CentOS 8
Installa e configura il client OpenVPN su CentOS 8/Ubuntu 18.04
Per dimostrare la comunicazione di due server su Intranet diverse, abbiamo due server, Ubuntu 18.04 e CentOS 8 che non possono comunicare in quanto si trovano su reti LAN diverse raggiungibili solo tramite il Server OpenVPN. I due server hanno solo interfacce NAT collegate.
Installa il client OpenVPN su Ubuntu 18.04
OpenVPN mantiene diversi repository software OpenVPN (OSS) da cui è possibile installare la versione più recente e stabile del client OpenVPN. Tuttavia, è necessario creare manualmente questi elenchi di fonti come mostrato di seguito;
Installa la chiave di firma del repository OpenVPN.
wget -O - https://swupdate.openvpn.net/repos/repo-public.gpg| sudo apt-key add -
Quindi, installa l'elenco dei sorgenti per Ubuntu 18.04.
echo "deb http://build.openvpn.net/debian/openvpn/stable $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/openvpn-aptrepo.list
Aggiorna la cache del pacchetto.
apt update
Installa il client OpenVPN su Ubuntu 18.04
apt install openvpn
Puoi quindi verificare la versione eseguendo il comando seguente;
openvpn --version
Installa il client OpenVPN su CentOS 8
Su CentOS 8, l'ultima OpenVPN, versione 2.4.8 al momento della stesura di questo documento, è fornita dai repository EPEL.
dnf info openvpn
Name : openvpn Version : 2.4.8 Release : 1.el8 Arch : x86_64 Size : 540 k Source : openvpn-2.4.8-1.el8.src.rpm Repo : epel Summary : A full-featured SSL VPN solution URL : https://community.openvpn.net/ License : GPLv2 ...
Per installare il client OpenVPN su CentOS 8, devi installare i repository EPEL, se non lo hai fatto;
dnf install epel-release
È quindi possibile installare il client OpenVPN eseguendo il comando;
dnf install openvpn
Configura client OpenVPN su CentOS 8/Ubuntu 18.04
Per potersi connettere al server OpenVPN, è necessario creare la configurazione del client contenente il certificato CA, il certificato del server client e la chiave.
Se hai seguito la nostra guida sulla configurazione del server OpenVPN su CentOS 8, abbiamo descritto come generare i file e le chiavi del certificato dei client.
Una volta generate le chiavi, copiale sul client e prendi nota del percorso in cui sono archiviate.
È inoltre necessario copiare la chiave HMAC e il certificato CA sul client.
È quindi possibile creare la configurazione del client OpenVPN.
Ad esempio, per creare un file di configurazione OpenVPN per il client, koromicha , i cui certificati e chiavi sono koromicha.crt e koromicha.key;
vim koromicha.ovpn
client tls-client pull dev tun proto udp4 remote 192.168.2.132 1194 resolv-retry infinite nobind #user nobody #group nogroup persist-key persist-tun key-direction 1 remote-cert-tls server auth-nocache comp-lzo verb 3 auth SHA512 tls-auth ta.key 1 ca ca.crt cert koromicha.crt key koromicha.key
Si noti che in questa configurazione, il certificato client, la chiave, il certificato CA e la chiave HMAC si trovano sullo stesso percorso della configurazione del client OpenVPN stessa, koromicha.ovpn.
ls
ca.crt koromicha.crt koromicha.key koromicha.ovpn ta.key
Per evitare problemi con i percorsi dei certificati e delle chiavi, puoi metterli inline nel file di configurazione;
client
tls-client
pull
dev tun
proto udp4
remote 192.168.2.132 1194
resolv-retry infinite
nobind
#user nobody
#group nogroup
persist-key
persist-tun
key-direction 1
remote-cert-tls server
auth-nocache
comp-lzo
verb 3
auth SHA512
<tls-auth>
-----BEGIN OpenVPN Static key V1-----
feb1af5407baa247d4e772c76aed6c75
...
-----END OpenVPN Static key V1-----
</tls-auth>
<ca>
-----BEGIN CERTIFICATE-----
MIIDTjCCAjagAwIBAgIUX0VQrHTgLDabUUIOAf7tD9cGp4YwDQYJKoZIhvcNAQEL
...
WA9BBk2shVWfR849Lmkep+GPyqHpU47dZAz37ARB2Gfu3w==
-----END CERTIFICATE-----
</ca>
<cert>
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
...
/7FvJaeLqmUHnvSs5eBlRZSgtOL19SCFkG0HXdnw3LtBaoHQXxgzOkDPW1+5
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+DI7kg6MsRoCs
...
6WdLcNtWKAcU294xJEZoOA8/
-----END PRIVATE KEY-----
</key>
Fai lo stesso su tutti i server client per ogni utente che deve connettersi alla VPN.
Se hai notato, le righe sottostanti sono commentate per evitare l'errore, ERRORE:comando di aggiunta percorso Linux non riuscito:programma esterno terminato con stato di errore:2 svuotando i percorsi creati prima di aggiungerli nuovamente alla riconnessione.
#user nobody #group nogroup
Il file di configurazione del client OpenVPN è ora pronto.
Puoi quindi connetterti al server OpenVPN su richiesta o configurare il tuo server per stabilire un file di configurazione VPN ogni volta che il sistema si riavvia.
Per connetterti su richiesta, usa semplicemente il comando openvpn as;
sudo openvpn client.ovpn
o
sudo openvpn --config client.ovpn
Se la connessione al server OpenVPN riesce, dovresti vedere un Initialization Sequence Completed
.
... Wed Apr 14 15:23:19 2020 ROUTE_GATEWAY 10.0.2.2/255.255.255.0 IFACE=enp0s3 HWADDR=08:00:27:8d:b0:f8 Wed Apr 14 15:23:19 2020 TUN/TAP device tun0 opened Wed Apr 14 15:23:19 2020 TUN/TAP TX queue length set to 100 Wed Apr 14 15:23:19 2020 /sbin/ip link set dev tun0 up mtu 1500 Wed Apr 14 15:23:19 2020 /sbin/ip addr add dev tun0 10.8.0.3/24 broadcast 10.8.0.255 Wed Apr 14 15:23:19 2020 /sbin/ip route add 192.168.2.132/32 via 10.0.2.2 Wed Apr 14 15:23:19 2020 /sbin/ip route add 0.0.0.0/1 via 10.8.0.1 Wed Apr 14 15:23:19 2020 /sbin/ip route add 128.0.0.0/1 via 10.8.0.1 Wed Apr 14 15:23:19 2020 Initialization Sequence Completed
Per controllare gli indirizzi IP;
[[email protected] ~]$ ip add show tun0 6: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100 link/none inet 10.8.0.3/24 brd 10.8.0.255 scope global tun0 valid_lft forever preferred_lft forever inet6 fe80::8d65:4038:acb0:b954/64 scope link stable-privacy valid_lft forever preferred_lft forever
[email protected]:~$ ip add show tun0 10: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100 link/none inet 10.8.0.2/24 brd 10.8.0.255 scope global tun0 valid_lft forever preferred_lft forever inet6 fe80::bd3d:27ff:84d5:e587/64 scope link stable-privacy valid_lft forever preferred_lft forever
Testare la connettività tra i due server remoti;
[email protected]:~$ ping 10.8.0.3 -c 4
PING 10.8.0.3 (10.8.0.3) 56(84) bytes of data.
64 bytes from 10.8.0.3: icmp_seq=1 ttl=64 time=3.78 ms
64 bytes from 10.8.0.3: icmp_seq=2 ttl=64 time=3.59 ms
64 bytes from 10.8.0.3: icmp_seq=3 ttl=64 time=3.61 ms
64 bytes from 10.8.0.3: icmp_seq=4 ttl=64 time=3.30 ms
--- 10.8.0.3 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3007ms
rtt min/avg/max/mdev = 3.307/3.576/3.786/0.172 ms
[[email protected] ~]$ ping 10.8.0.2 -c 4
PING 10.8.0.2 (10.8.0.2) 56(84) bytes of data.
64 bytes from 10.8.0.2: icmp_seq=1 ttl=64 time=6.77 ms
64 bytes from 10.8.0.2: icmp_seq=2 ttl=64 time=1.57 ms
64 bytes from 10.8.0.2: icmp_seq=3 ttl=64 time=4.37 ms
64 bytes from 10.8.0.2: icmp_seq=4 ttl=64 time=13.6 ms
--- 10.8.0.2 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 15ms
rtt min/avg/max/mdev = 1.571/6.572/13.577/4.443 ms
Dovresti anche essere in grado di ottenere l'accesso a Internet a seconda della configurazione dei percorsi del server.
Esecuzione del client OpenVPN come servizio Systemd
Per stabilire connessioni automaticamente ogni volta che il server si riavvia, puoi abilitare il servizio di sistema del client OpenVPN.
Prima di poterlo fare, cambia l'estensione del tuo file di configurazione VPN da .ovpn
a .conf
. Sostituisci i nomi dei file di conseguenza.
cp koromicha.ovpn koromicha.conf
Copia il .conf
file nella directory di configurazione del client OpenVPN, /etc/openvpn/client
.
cp koromicha.conf /etc/openvpn/client
Quindi, avvia il servizio di sistema del client OpenVPN. Sostituisci il nome koromicha con il nome del tuo file di configurazione .conf.
systemctl start [email protected]koromicha
Per controllare lo stato;
systemctl status [email protected]
● [email protected] - OpenVPN tunnel for koromicha
Loaded: loaded (/lib/systemd/system/[email protected]; disabled; vendor preset: enabled)
Active: active (running) since Wed 2020-04-14 16:00:35 EAT; 8s ago
Docs: man:openvpn(8)
https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage
https://community.openvpn.net/openvpn/wiki/HOWTO
Main PID: 6877 (openvpn)
Status: "Initialization Sequence Completed"
Tasks: 1 (limit: 2300)
CGroup: /system.slice/system-openvpn\x2dclient.slice/[email protected]
└─6877 /usr/sbin/openvpn --suppress-timestamps --nobind --config koromicha.conf
Elb 14 16:00:37 ubuntu1804.kifarunix-demo.com openvpn[6877]: Incoming Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key
Elb 14 16:00:37 ubuntu1804.kifarunix-demo.com openvpn[6877]: ROUTE_GATEWAY 10.0.2.2/255.255.255.0 IFACE=enp0s3 HWADDR=08:00:27:4b:ff:18
Elb 14 16:00:37 ubuntu1804.kifarunix-demo.com openvpn[6877]: TUN/TAP device tun0 opened
Elb 14 16:00:37 ubuntu1804.kifarunix-demo.com openvpn[6877]: TUN/TAP TX queue length set to 100
Elb 14 16:00:37 ubuntu1804.kifarunix-demo.com openvpn[6877]: /sbin/ip link set dev tun0 up mtu 1500
Elb 14 16:00:37 ubuntu1804.kifarunix-demo.com openvpn[6877]: /sbin/ip addr add dev tun0 10.8.0.2/24 broadcast 10.8.0.255
Elb 14 16:00:37 ubuntu1804.kifarunix-demo.com openvpn[6877]: /sbin/ip route add 192.168.2.132/32 via 10.0.2.2
Elb 14 16:00:37 ubuntu1804.kifarunix-demo.com openvpn[6877]: /sbin/ip route add 0.0.0.0/1 via 10.8.0.1
Elb 14 16:00:37 ubuntu1804.kifarunix-demo.com openvpn[6877]: /sbin/ip route add 128.0.0.0/1 via 10.8.0.1
Elb 14 16:00:37 ubuntu1804.kifarunix-demo.com openvpn[6877]: Initialization Sequence Completed
Per consentirne l'esecuzione all'avvio del sistema;
systemctl enable [email protected]
Hai installato e configurato correttamente il client OpenVPN su Ubuntu 18.04 e CentOS 8. Questo ci porta alla fine del nostro tutorial su come installare e configurare il client OpenVPN su CentOS 8/Ubuntu 18.04.
Esercitazioni correlate
Assegna indirizzi IP statici ai client OpenVPN
Configura il client VPN strongSwan su Ubuntu 18.04/CentOS 8
Configura IPSEC VPN utilizzando StrongSwan su Ubuntu 18.04
Installa e configura il server OpenVPN FreeBSD 12
Installa e configura OpenVPN Server su Fedora 29/CentOS 7