GNU/Linux >> Linux Esercitazione >  >> Panels >> OpenVPN

Installa e configura il client OpenVPN su CentOS 8/Ubuntu 18.04

Per connetterti a un server OpenVPN per consentirti di accedere alle risorse locali della tua intranet, avresti semplicemente bisogno di un client OpenVPN. In questa guida impareremo come installare e configurare il client OpenVPN su CentOS 8/Ubuntu 18.04. Nota che il software OpenVPN può essere configurato per funzionare sia come server che come client.

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

OpenVPN
  1. Installa e configura il client OpenVPN su Rocky Linux 8

  2. Installa e configura il server OpenVPN su Ubuntu 20.04

  3. Connettiti a OpenVPN utilizzando Network Manager su CentOS 8/Ubuntu 18.04

  4. Configura il client VPN strongSwan su Ubuntu 18.04/CentOS 8

  5. Installa e configura il server OpenVPN FreeBSD 12

Come installare e configurare GitLab su CentOS 7 / Ubuntu 18.04 e Debian 9

Come configurare e configurare un server OpenVPN su Ubuntu 22.04

Come installare e configurare NFS su Ubuntu 22.04/20.04

Come installare e configurare Smartctl su CentOS/RHEL 8 e Ubuntu 20.04

Come installare e configurare il server OpenVPN in CentOS 8/7

Come installare e configurare GlusterFS su CentOS 7/CentOS 8