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

Installa e configura OpenVPN Server su Fedora 29/CentOS 7

In questa guida impareremo come installare e configurare il server OpenVPN su Fedora 29/CentOS 7.
OpenVPN è un software VPN open source che ci consente di creare un tunnel VPN basato su SSL. Immagina di voler connetterti alla tua intranet cooperativa da una posizione remota. Bene, non preoccuparti perché se hai la configurazione del server VPN, questo può essere possibile. Virtual Private Network (VPN) fornisce un tunnel sicuro che estende la rete privata attraverso una rete pubblica, ovvero aiuta a creare una WAN (Wide Area Network) dalle reti locali (LAN) esistenti. Di conseguenza, gli utenti possono inviare in modo sicuro i dati attraverso le reti pubbliche come se fossero collegati direttamente alla propria LAN.

Puoi saperne di più su OpenVPN qui.

Installa e configura il server OpenVPN su Fedora 29/28/CentOS 7

Senza molta teoria, diamo un'occhiata a una procedura passo passo su come installare e configurare OpenVPN Server su Fedora 29/28/CentOS 7.

Aggiorna il tuo server.

dnf update << Fedora
yum update << Fedora/CentOS

Installa OpenVPN e Easy-RSA su Fedora 29/28

OpenVPN fornisce un demone VPN robusto e altamente flessibile mentre il pacchetto Easy-RSA viene utilizzato per generare coppie di chiavi SSL utilizzate per proteggere le connessioni VPN. Entrambi i pacchetti OpenVPN e Easy-RSA sono disponibili nei repository Fedora predefiniti. Esegui il comando seguente per installarli.

dnf install openvpn easy-rsa

Installa OpenVPN e Easy-RSA su CentOS 7

OpenVPN non è disponibile nei repository CentOS predefiniti ma è disponibile in EPEL, quindi è necessario installare i repository EPEL prima di poter installare OpenVPN.

Per aggiungere pacchetti extra per Enterprise Linux (EPEL), esegui uno dei seguenti comandi;

yum install epel-release

oppure

wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm

Installa OpenVPN e Easy-RSA

yum install openvpn easy-rsa

Crea la CA locale e genera le chiavi del server e il file del certificato

Crea una directory in cui archiviare le chiavi del server e i file dei certificati.

mkdir /etc/openvpn/easy-rsa

Copia gli script di generazione di chiavi/certificati installati da Easy-RSA dalla directory predefinita alla directory creata sopra.

cp -air /usr/share/easy-rsa/3/* /etc/openvpn/easy-rsa

Vai a /etc/openvpn/easy-rsa directory e avvia la nuova PKI.

cd /etc/openvpn/easy-rsa
./easyrsa init-pki

Crea il certificato CA. Verrà richiesta la password di crittografia e il nome comune del server.

./easyrsa build-ca
...
writing new private key to '/etc/openvpn/easy-rsa/pki/private/ca.key.EajtR0SkLM'
Enter PEM pass phrase: PASSWORD
Verifying - Enter PEM pass phrase: PASSWORD
-----
...
-----
Common Name (eg: your user, host, or server name) [Easy-RSA CA]:server

CA creation complete and you may now import and sign cert requests.
Your new CA certificate file for publishing is at:
/etc/openvpn/easy-rsa/pki/ca.crt

Come affermato, il certificato CA è archiviato in /etc/openvpn/easy-rsa/pki/ca.crt .

Genera il file della chiave Diffie-Hellman che può essere utilizzato durante l'handshake TLS con i client in connessione.

./easyrsa gen-dh

Questo genererà la chiave DH e memorizzerà come /etc/openvpn/easy-rsa/pki/dh.pem .

Genera una chiave e un file di certificato per il server.

./easyrsa build-server-full server nopass

Genera una chiave e un file di certificato per il client.

./easyrsa build-client-full client nopass

Nel caso in cui sia necessario invalidare un certificato precedentemente firmato, generare un certificato di revoca.

./easyrsa gen-crl

Questo memorizza il certificato di revoca in /etc/openvpn/easy-rsa/pki/crl.pem .

Genera chiave di autenticazione precondivisa TLS/SSL

openvpn --genkey --secret /etc/openvpn/easy-rsa/pki/ta.key

Copia certificati/chiavi generati nella directory di configurazione del server.

cp -rp /etc/openvpn/easy-rsa/pki/{ca.crt,dh.pem,ta.key,issued,private} /etc/openvpn/server/

Configura il server OpenVPN

OpenVPN ha un file di configurazione di esempio all'interno della sua directory di documentazione e quindi, per facilitarci la vita, copieremo l'esempio /usr/share/doc/openvpn{-2.4.6,}/sample/sample-config-files/server.conf file in /etc/openvpn per la modifica.

Su Fedora

cp /usr/share/doc/openvpn/sample/sample-config-files/server.conf /etc/openvpn/server/

Su CentOS 7

cp /usr/share/doc/openvpn-2.4.6/sample/sample-config-files/server.conf /etc/openvpn/server/

Modifica il server.conf file come segue;

vim /etc/openvpn/server/server.conf

Modifica il file in modo che assomigli al seguente;

# Which TCP/UDP port should OpenVPN listen on?
# Change to match your port and open it in the firewall
port 1194

# TCP or UDP server?
proto udp

# "dev tun" will create a routed IP tunnel
dev tun

# Change path for certificates
ca ca.crt
cert issued/server.crt
key private/server.key

# Diffie hellman exchange key path
dh dh.pem

# Network topology
topology subnet

# OpenVPN Network IP. For below, The server will take 10.8.0.1 for itself,
# the rest will be made available to clients.
server 172.16.0.0 255.255.255.0

# this directive will configure all clients to redirect their default
# network gateway through the VPN
push "redirect-gateway def1 bypass-dhcp"

# DNS servers
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"

# For compression compatible with older clients use comp-lzo.
comp-lzo

# Run VPN with limited privileges
user nobody
group nobody

# Status log file
status /var/log/openvpn/openvpn-status.log

# TLS/SSL pre-shared authentication key
tls-auth ta.key 0

# Make VPN log directory and log file
log-append /var/log/openvpn/openvpn.log

#Append this line to change authentication algorithm (HMAC) from SHA1 to SHA512
auth SHA512

Crea la directory di registro;

mkdir /var/log/openvpn/

Salva il file di configurazione

Configura percorso

Abilita l'inoltro IP

L'abilitazione dell'inoltro IP garantisce che il traffico dal client venga instradato attraverso l'indirizzo IP del server in modo che l'indirizzo IP del client sia mascherato.

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf

Esegui il comando seguente per apportare le modifiche;

sysctl --system

Consenti la porta del servizio OpenVPN attraverso il firewall

firewall-cmd --add-port=1194/udp --permanent

Attiva IP Masquerading

firewall-cmd --add-masquerade --permanent

Inoltra il traffico ricevuto sulla sottorete OpenVPN specificata a un'interfaccia tramite la quale verranno inviati i pacchetti.

Trova l'interfaccia attraverso la quale vengono inviati i pacchetti eseguendo il comando seguente;

ip route get 8.8.8.8
8.8.8.8 via 192.168.43.1 dev enp0s8 src 192.168.43.23

Il nome dell'interfaccia potrebbe essere diverso per il tuo caso. Sostituisci di conseguenza.

firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 172.16.0.0/24 -o enp0s8 -j MASQUERADE

Ricarica firewalld per rendere effettive le modifiche.

firewall-cmd --reload

Avvia e imposta OpenVPN start all'avvio.

systemctl start [email protected]
systemctl enable [email protected]

Quando il servizio OpenVPN viene eseguito, creerà un'interfaccia di tunneling, tun0;

ip add show tun0
4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
    link/none 
    inet 172.16.0.1/24 brd 172.16.0.255 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 fe80::1155:c60c:c009:48c9/64 scope link stable-privacy 
       valid_lft forever preferred_lft forever

Al server VPN viene assegnato l'indirizzo IP, 172.16.0.1 mentre al primo client verrà assegnato 172.16.0.2.

Configura client VPN

Affinché il client VPN si connetta al server VPN, è necessaria una copia del certificato CA, della chiave client, del certificato client e della chiave di autenticazione TLS/SSL generati sopra. Quindi, copia questi file sul client di destinazione e posizionali in una directory conveniente.

cd /etc/openvpn/easy-rsa/pki/
scp {ca.crt,issued/client.crt,private/client.key,ta.key} [email protected]:~/

Installa il client OpenVPN

  • Se stai usando un server Linux/Unix come client, installa il client OpenVPN usando ad esempio il rispettivo gestore di pacchetti;
    apt install openvpn
    yum install openvpn
  • Se ti connetti da un computer Windows, puoi semplicemente scaricare il programma di installazione del client OpenVPN dalla pagina dei download di OpenVPN e installarlo.

Crea il file di configurazione OpenVPN per il client come mostrato di seguito. Ad esempio, ho copiato il certificato e i file chiave nella mia home directory sul client.

[email protected]:/home/amos# ls
ca.crt client.crt client.key ta.key
vim client.ovpn
client
tls-client
pull
dev tun
proto udp
remote 192.168.43.69 1194
resolv-retry infinite
nobind
dhcp-option DNS 8.8.8.8
user nobody
group nogroup
persist-key
persist-tun
key-direction 1
tls-auth ta.key 1
comp-lzo
verb 3
ca ca.crt
cert client.crt
key client.key
auth SHA512

Per connetterti al server OpenVPN dal client, esegui uno dei comandi seguenti;

sudo openvpn client.ovpn

o

sudo openvpn --config client.ovpn

Se la connessione riesce, dovresti vedere un Initialization Sequence Completed .

Mon Dec 31 03:54:39 2018 TUN/TAP device tun0 opened
Mon Dec 31 03:54:39 2018 TUN/TAP TX queue length set to 100
Mon Dec 31 03:54:39 2018 do_ifconfig, tt->did_ifconfig_ipv6_setup=0
Mon Dec 31 03:54:39 2018 /sbin/ip link set dev tun0 up mtu 1500
Mon Dec 31 03:54:39 2018 /sbin/ip addr add dev tun0 172.16.0.2/24 broadcast 172.16.0.255
Mon Dec 31 03:54:39 2018 /sbin/ip route add 192.168.43.69/32 dev enp0s8
Mon Dec 31 03:54:39 2018 /sbin/ip route add 0.0.0.0/1 via 172.16.0.1
Mon Dec 31 03:54:39 2018 /sbin/ip route add 128.0.0.0/1 via 172.16.0.1
Mon Dec 31 03:54:39 2018 GID set to nogroup
Mon Dec 31 03:54:39 2018 UID set to nobody
Mon Dec 31 03:54:39 2018 Initialization Sequence Completed

Se puoi controllare l'interfaccia, dovresti vedere un'interfaccia di tunneling creata.

ip add sh tun0
20: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
    link/none 
    inet 172.16.0.2/24 brd 172.16.0.255 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 fe80::dc37:c115:60f:6b86/64 scope link flags 800 
       valid_lft forever preferred_lft forever

Ti sei connesso con successo al tuo server VPN.

Questo è tutto su come installare e configurare il server OpenVPN su Fedora 29/CentOS 7. Il tuo server OpenVPN è completamente operativo. Divertiti.

Esercitazioni correlate

Configura IPSEC VPN utilizzando StrongSwan su Ubuntu 18.04

Configura il client VPN strongSwan su Ubuntu 18.04/CentOS 8

Configura la VPN IPSEC usando StrongSwan su Debian 10


No
OpenVPN
  1. Come installare e configurare DRBD su CentOS

  2. Come installare e utilizzare TeamSpeak Server su CentOS 7

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

  4. Configura il server OpenVPN su CentOS 8

  5. Installa e configura il server OpenVPN FreeBSD 12

Come installare server e client OpenVPN con Easy-RSA 3 su CentOS 8

Come installare server e client OpenVPN su CentOS 7

Installa e configura FreeIPA Server su CentOS 8

Installa e configura Check_MK Server su CentOS 7

Configurazione di un server OpenVPN con CentOS e Viscosity

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