GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So installieren und konfigurieren Sie den OpenVPN-Server unter Ubuntu 20.04

OpenVPN ist eine Open-Source-VPN-Lösung für Unternehmen, die virtuelle private Netzwerktechniken verwenden, um sichere Punkt-zu-Punkt-Verbindungen mit Remote-Zugriffseinrichtungen herzustellen. OpenVPN ist eine vertrauenswürdige Technologie, die von vielen VPNs verwendet wird, um sicherzustellen, dass alle über das Internet gesendeten Daten verschlüsselt und privat sind.

Einfach ausgedrückt ermöglicht Ihnen OpenVPN, sich mit anderen Geräten innerhalb eines sicheren Netzwerks zu verbinden. Es ist plattformübergreifend und kann Windows, Mac, Android, iOS und Linux sein. OpenVPN bietet eine Vielzahl von Funktionen, darunter:

  • Unbegrenzte Bandbreite
  • Unbegrenzte Serverwechsel
  • Mehrgerätenutzung
  • Keine Protokollspeicherung
  • Protokollauswahl
  • Mehrere gleichzeitige Verbindungen

In diesem Tutorial lernen wir, wie man den OpenVPN-Server und -Client auf einem Ubuntu 20.04 VPS installiert und konfiguriert.

Voraussetzungen

  • Ein frisches Ubuntu 20.04 VPS auf der Atlantic.net Cloud Platform.
  • Auf Ihrem Server ist ein Root-Passwort konfiguriert.

Schritt 1:Atlantic.Net Cloud-Server erstellen

Melden Sie sich zunächst bei Ihrem Atlantic.Net Cloud Server an. Erstellen Sie einen neuen Server mit Ubuntu 20.04 als Betriebssystem und mindestens 1 GB RAM. Stellen Sie über SSH eine Verbindung zu Ihrem Cloud-Server her und melden Sie sich mit den oben auf der Seite hervorgehobenen Anmeldeinformationen an.

Sobald Sie sich bei Ihrem Ubuntu 20.04-Server angemeldet haben, führen Sie den folgenden Befehl aus, um Ihr Basissystem mit den neuesten verfügbaren Paketen zu aktualisieren.

apt-get update -y

Schritt 2:IP-Weiterleitung aktivieren

Als Nächstes müssen Sie die IP-Weiterleitung in Ihrem System aktivieren, damit OpenVPN den Datenverkehr korrekt durch das VPN leiten kann.

Sie können die IP-Weiterleitung aktivieren, indem Sie die Datei /etc/sysctl.conf:

bearbeiten
nano /etc/sysctl.conf

Entkommentieren Sie die folgende Zeile:

net.ipv4.ip_forward = 1

Speichern Sie die Datei, wenn Sie fertig sind, und führen Sie dann den folgenden Befehl aus, um die Änderungen zu übernehmen:

sysctl -p

Schritt 3:OpenVPN-Server installieren

apt-get install openvpn -y

Sobald die Installation abgeschlossen ist, können Sie mit dem nächsten Schritt fortfahren.

Schritt 4:Erstellen Sie die Zertifizierungsstelle

Um die Zertifizierungsstelle und die PKI-Infrastruktur einzurichten, müssen Sie EasyRSA in Ihr System herunterladen. Sie können es mit dem folgenden Befehl herunterladen:

wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.6/EasyRSA-unix-v3.0.6.tgz

Extrahieren Sie die heruntergeladene Datei nach dem Herunterladen mit dem folgenden Befehl:

tar -xvzf EasyRSA-unix-v3.0.6.tgz

Verschieben Sie als Nächstes das extrahierte Verzeichnis mit dem folgenden Befehl nach /etc/openvpn/:

mv EasyRSA-v3.0.6 /etc/openvpn/easy-rsa

Wechseln Sie als Nächstes in das Verzeichnis /etc/openvpn/easy-rsa und erstellen Sie eine EasyRSA-Konfigurationsdatei:

cd /etc/openvpn/easy-rsa
nano vars

Fügen Sie die folgenden Zeilen mit Ihrem Land, Ihrer Stadt und Ihrer bevorzugten E-Mail-Adresse hinzu:

set_var EASYRSA                 "$PWD"
set_var EASYRSA_PKI             "$EASYRSA/pki"
set_var EASYRSA_DN              "cn_only"
set_var EASYRSA_REQ_COUNTRY     "INDIA"
set_var EASYRSA_REQ_PROVINCE    "Gujarat"
set_var EASYRSA_REQ_CITY        "Junagadh"
set_var EASYRSA_REQ_ORG         "Atlantic CERTIFICATE AUTHORITY"
set_var EASYRSA_REQ_EMAIL     "[email protected]"
set_var EASYRSA_REQ_OU          "Atlantic EASY CA"
set_var EASYRSA_KEY_SIZE        2048
set_var EASYRSA_ALGO            rsa
set_var EASYRSA_CA_EXPIRE      7500
set_var EASYRSA_CERT_EXPIRE     365
set_var EASYRSA_NS_SUPPORT  "no"
set_var EASYRSA_NS_COMMENT            "Atlantic CERTIFICATE AUTHORITY"
set_var EASYRSA_EXT_DIR         "$EASYRSA/x509-types"
set_var EASYRSA_SSL_CONF        "$EASYRSA/openssl-easyrsa.cnf"
set_var EASYRSA_DIGEST          "sha256"

Speichern Sie die Datei, wenn Sie fertig sind.

Starten Sie als Nächstes das PKI-Verzeichnis mit dem folgenden Befehl:

./easyrsa init-pki

Sie sollten die folgende Ausgabe erhalten:

Note: using Easy-RSA configuration from: ./vars

init-pki complete; you may now create a CA or requests.
Your newly created PKI dir is: /etc/openvpn/easy-rsa/pki

Erstellen Sie als Nächstes die CA-Zertifikate mit dem folgenden Befehl:

./easyrsa build-ca

Sie sollten die folgende Ausgabe erhalten:

Note: using Easy-RSA configuration from: ./vars

Using SSL: openssl OpenSSL 1.1.1f  31 Mar 2020

Enter New CA Key Passphrase:
Re-Enter New CA Key Passphrase:
Generating RSA private key, 2048 bit long modulus (2 primes)
.....................................................................................................+++++
..................................................+++++
e is 65537 (0x010001)
Can't load /etc/openvpn/easy-rsa/pki/.rnd into RNG
139636302492992:error:2406F079:random number generator:RAND_load_file:Cannot open file:../crypto/rand/randfile.c:98:Filename=/etc/openvpn/easy-rsa/pki/.rnd
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields, there will be a default value,
If you enter '.', the field will be left blank.
-----
Common Name (eg: your user, host, or server name) [Easy-RSA CA]:
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

Der obige Befehl generiert zwei Dateien namens ca.key und ca.crt. Diese Zertifikate werden verwendet, um die Zertifikate Ihres Servers und Ihrer Clients zu signieren.

Schritt 5:Serverzertifikatdateien erstellen

Als Nächstes müssen Sie ein Schlüsselpaar und eine Zertifikatsanforderung für Ihren Server generieren.

Führen Sie den folgenden Befehl aus, um den Serverschlüssel mit dem Namen atlantic-server zu generieren:

./easyrsa gen-req atlantic-server nopass

Sie sollten die folgende Ausgabe sehen:

Note: using Easy-RSA configuration from: ./vars

Using SSL: openssl OpenSSL 1.1.1f  31 Mar 2020
Generating a RSA private key
.............................+++++
...+++++
writing new private key to '/etc/openvpn/easy-rsa/pki/private/atlantic-server.key.IMonKybM0y'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Common Name (eg: your user, host, or server name) [atlantic-server]:

Keypair and certificate request completed. Your files are:
req: /etc/openvpn/easy-rsa/pki/reqs/atlantic-server.req
key: /etc/openvpn/easy-rsa/pki/private/atlantic-server.key

Dadurch werden ein privater Schlüssel und eine Zertifikatsanforderungsdatei für den Server generiert.

Schritt 6:Signieren Sie den Serverschlüssel mit CA

Als Nächstes müssen Sie den Atlantic-Server-Schlüssel mit Ihrem CA-Zertifikat signieren:

Sie können den Serverschlüssel mit dem folgenden Befehl signieren:

./easyrsa sign-req server atlantic-server

Sie sollten die folgende Ausgabe sehen:

Note: using Easy-RSA configuration from: ./vars

Using SSL: openssl OpenSSL 1.1.1f  31 Mar 2020

You are about to sign the following certi
ficate.
Please check over the details shown below for accuracy. Note that this request
has not been cryptographically verified. Please be sure it came from a trusted
source or that you have verified the request checksum with the sender.

Request subject, to be signed as a server certificate for 365 days:

subject=
commonName                = atlantic-server

Type the word 'yes' to continue, or any other input to abort.
Confirm request details: yes
Using configuration from /etc/openvpn/easy-rsa/pki/safessl-easyrsa.cnf
Enter pass phrase for /etc/openvpn/easy-rsa/pki/private/ca.key:
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName            :ASN.1 12:'atlantic-server'
Certificate is to be certified until Jun 29 11:43:05 2021 GMT (365 days)

Write out database with 1 new entries
Data Base Updated

Certificate created at: /etc/openvpn/easy-rsa/pki/issued/atlantic-server.crt

Als nächstes überprüfen Sie die generierte Zertifikatsdatei mit dem folgenden Befehl:

openssl verify -CAfile pki/ca.crt pki/issued/atlantic-server.crt

Sie sollten die folgende Ausgabe erhalten:

pki/issued/atlantic-server.crt: OK

Führen Sie als Nächstes den folgenden Befehl aus, um einen starken Diffie-Hellman-Schlüssel für den Schlüsselaustausch zu generieren:

./easyrsa gen-dh

Sie sollten die folgende Ausgabe erhalten:

Note: using Easy-RSA configuration from: ./vars

Using SSL: openssl OpenSSL 1.1.1f  31 Mar 2020
Generating DH parameters, 2048 bit long safe prime, generator 2
This is going to take a long time
......................+...........................+............................................

DH parameters of size 2048 created at /etc/openvpn/easy-rsa/pki/dh.pem

Nachdem Sie alle Zertifikatsdateien erstellt haben, kopieren Sie sie in das Verzeichnis /etc/openvpn/server/:

cp pki/ca.crt /etc/openvpn/server/
cp pki/dh.pem /etc/openvpn/server/
cp pki/private/atlantic-server.key /etc/openvpn/server/
cp pki/issued/atlantic-server.crt /etc/openvpn/server/

Schritt 7:Client-Zertifikat und Schlüsseldatei generieren

Als Nächstes müssen Sie die Schlüssel- und Zertifikatsdatei für den Client erstellen.

Führen Sie zuerst den folgenden Befehl aus, um die Clientschlüsseldatei zu erstellen:

./easyrsa gen-req client nopass

Sie sollten die folgende Ausgabe erhalten:

Note: using Easy-RSA configuration from: ./vars

Using SSL: openssl OpenSSL 1.1.1f  31 Mar 2020
Generating a RSA private key
...+++++
........+++++
writing new private key to '/etc/openvpn/easy-rsa/pki/private/client.key.JmBal6cmr8'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Common Name (eg: your user, host, or server name) [client]:

Keypair and certificate request completed. Your files are:
req: /etc/openvpn/easy-rsa/pki/reqs/client.req
key: /etc/openvpn/easy-rsa/pki/private/client.key

Als nächstes signieren Sie den Client-Schlüssel mit Ihrem CA-Zertifikat:

./easyrsa sign-req client client

Sie sollten die folgende Ausgabe erhalten:

Note: using Easy-RSA configuration from: ./vars

Using SSL: openssl OpenSSL 1.1.1f  31 Mar 2020

You are about to sign the following certificate.
Please check over the details shown below for accuracy. Note that this request
has not been cryptographically verified. Please be sure it came from a trusted
source or that you have verified the request checksum with the sender.

Request subject, to be signed as a client certificate for 365 days:

subject=
commonName                = client

Type the word 'yes' to continue, or any other input to abort.
Confirm request details: yes
Using configuration from /etc/openvpn/easy-rsa/pki/safessl-easyrsa.cnf
Enter pass phrase for /etc/openvpn/easy-rsa/pki/private/ca.key:
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName            :ASN.1 12:'client'
Certificate is to be certified until Jun 29 11:46:58 2021 GMT (365 days)

Write out database with 1 new entries
Data Base Updated

Certificate created at: /etc/openvpn/easy-rsa/pki/issued/client.crt

Kopieren Sie als Nächstes alle Client-Zertifikate und Schlüsseldateien in das Verzeichnis /etc/openvpn/client/:

cp pki/ca.crt /etc/openvpn/client/
cp pki/issued/client.crt /etc/openvpn/client/
cp pki/private/client.key /etc/openvpn/client/

Schritt 8:OpenVPN-Server konfigurieren

Zu diesem Zeitpunkt sind alle Zertifikate und Schlüsseldateien bereit. Erstellen Sie als Nächstes eine neue OpenVPN-Konfigurationsdatei im Verzeichnis /etc/openvpn/:

nano /etc/openvpn/server.conf

Fügen Sie die folgenden Zeilen pro Zertifikat und Schlüsselpfad hinzu:

port 1194
proto udp
dev tun
ca /etc/openvpn/server/ca.crt
cert /etc/openvpn/server/atlantic-server.crt
key /etc/openvpn/server/atlantic-server.key
dh /etc/openvpn/server/dh.pem
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1"

push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
duplicate-cn
cipher AES-256-CBC
tls-version-min 1.2
tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-
CBC-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-128-
CBC-SHA256
auth SHA512
auth-nocache
keepalive 20 60
persist-key
persist-tun
compress lz4
daemon
user nobody
group nogroup
log-append /var/log/openvpn.log
verb 3

Speichern Sie die Datei, wenn Sie fertig sind, starten Sie dann den OpenVPN-Dienst und aktivieren Sie ihn nach dem Systemneustart mit dem folgenden Befehl:

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

Führen Sie den folgenden Befehl aus, um den Status des OpenVPN-Dienstes zu überprüfen:

systemctl status [email protected]

Sie sollten die folgende Ausgabe erhalten:

Loaded: loaded (/lib/systemd/system/[email protected]; disabled; vendor preset: enabled)
Active: active (running) since Mon 2020-06-29 11:48:25 UTC; 7s ago
Docs: man:openvpn(8)
https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage
https://community.openvpn.net/openvpn/wiki/HOWTO
Main PID: 2868 (openvpn)
Status: "Initialization Sequence Completed"
Tasks: 1 (limit: 2353)
Memory: 2.0M
CGroup: /system.slice/system-openvpn.slice/[email protected]
└─2868 /usr/sbin/openvpn --daemon ovpn-server --status /run/openvpn/server.status 10 --cd /etc/openvpn --script-security 2 --conf>

Jun 29 11:48:25 vpnserver systemd[1]: Starting OpenVPN connection to server...
Jun 29 11:48:25 vpnserver systemd[1]: Started OpenVPN connection to server.

Sobald der OpenVPN-Dienst erfolgreich gestartet wurde, erstellt er eine neue Netzwerkschnittstelle mit dem Namen tun0. Sie können dies mit dem folgenden Befehl überprüfen:

ip a show tun0

Sie sollten die neue Schnittstelle tun0 in der folgenden Ausgabe erhalten:

4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state 
UNKNOWN group default qlen 100
link/none
inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0
valid_lft forever preferred_lft forever
inet6 fe80::5f83:99a:30d:eb0/64 scope link stable-privacy
valid_lft forever preferred_lft forever

Schritt 9:Client-Konfigurationsdatei erstellen

Als nächstes müssen Sie eine OpenVPN-Client-Konfigurationsdatei mit dem Namen client.ovpn erstellen. Sie benötigen diese Datei, um Ihren OpenVPN-Server vom Client-System aus zu verbinden.

nano /etc/openvpn/client/client.ovpn

Fügen Sie die folgenden Zeilen hinzu:

client
dev tun
proto udp
remote your-vpn-server-ip 1194
ca ca.crt
cert client.crt
key client.key
cipher AES-256-CBC
auth SHA512
auth-nocache
tls-version-min 1.2
tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-
CBC-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-128-
CBC-SHA256
resolv-retry infinite
compress lz4
nobind
persist-key
persist-tun
mute-replay-warnings
verb 3

Speichern Sie die Datei, wenn Sie fertig sind.

Schritt 10:OpenVPN-Client installieren und konfigurieren

Als nächstes müssen Sie OpenVPN auf dem Client-System installieren und sich mit dem OpenVPN-Server verbinden.

Melden Sie sich zuerst beim Client-Rechner an und installieren Sie das OpenVPN-Paket mit dem folgenden Befehl:

apt-get install openvpn -y

Als nächstes müssen Sie die OpenVPN-Client-Konfigurationsdateien vom OpenVPN-Server auf den Client-Rechner kopieren.

Führen Sie auf dem Clientcomputer den folgenden Befehl aus, um alle Clientkonfigurationsdateien herunterzuladen:

scp -r [email protected]:/etc/openvpn/client .

Sobald alle Dateien kopiert sind, ändern Sie das Verzeichnis zum Client und führen Sie den folgenden Befehl aus, um eine Verbindung zum OpenVPN-Server herzustellen:

cd client
openvpn --config client.ovpn

Sobald Sie mit dem OpenVPN-Server verbunden sind, sollten Sie die folgende Ausgabe sehen:

Jun 29 11:48:27 2020 TCP/UDP: Preserving recently used remote address: 
[AF_INET]69.87.218.145:1194
Jun 29 11:48:27 2020 Socket Buffers: R=[212992->212992] S=[212992->212992]
Jun 29 11:48:27 2020 UDP link local: (not bound)
Jun 29 11:48:27 2020 UDP link remote: [AF_INET]69.87.218.145:1194
Jun 29 11:48:27 2020 TLS: Initial packet from [AF_INET]69.87.218.145:1194, sid=6d27e1cb 
524bd8cd
Jun 29 11:48:27 2020 VERIFY OK: depth=1, CN=Easy-RSA CA
Jun 29 11:48:27 2020 VERIFY OK: depth=0, CN=atlantic-server
Jun 29 11:48:27 2020 Control Channel: TLSv1.3, cipher TLSv1.3 TLS_AES_256_GCM_SHA384, 
2048 bit RSA
Jun 29 11:48:27 2020 [atlantic-server] Peer Connection Initiated with 
[AF_INET]69.87.218.145:1194
Jun 29 11:48:27 2020 SENT CONTROL [atlantic-server]: 'PUSH_REQUEST' (status=1)
Jun 29 11:48:27 2020 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway 
def1,dhcp-option DNS 208.67.222.222,dhcp-option DNS 208.67.220.220,route 10.8.0.1,topology 
net30,ping 20,ping-restart 60,ifconfig 10.8.0.6 10.8.0.5,peer-id 0,cipher AES-256-GCM'
Jun 29 11:48:27 2020 OPTIONS IMPORT: timers and/or timeouts modified
Jun 29 11:48:27 2020 OPTIONS IMPORT: --ifconfig/up options modified
Jun 29 11:48:27 2020 OPTIONS IMPORT: route options modified

Nach erfolgreicher Verbindung weist OpenVPN Ihrem System eine IP-Adresse zu. Sie können dies mit dem folgenden Befehl überprüfen:

ip a show tun0

Ausgabe:

4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state 
UNKNOWN group default qlen 100
link/none
inet 10.8.0.6 peer 10.8.0.5/32 scope global tun0
valid_lft forever preferred_lft forever
inet6 fe80::7226:57b1:f101:313b/64 scope link stable-privacy
valid_lft forever preferred_lft forever

Sie können auch das OpenVPN-Serverprotokoll überprüfen, um den Verbindungsstatus mit dem folgenden Befehl zu überprüfen:

tail -f /var/log/openvpn.log

Schlussfolgerung

Herzliche Glückwünsche! Sie haben erfolgreich einen VPN-Server mit OpenVPN auf einem Ubuntu 20.04 VPS eingerichtet. Sie können jetzt sicher auf das Internet zugreifen und Ihre Identität, Ihren Standort und Ihren Datenverkehr schützen. Weitere Informationen finden Sie in der offiziellen OpenVPN-Dokumentation.


Linux
  1. So installieren und konfigurieren Sie den OpenVPN-Zugriffsserver

  2. So installieren und konfigurieren Sie einen NFS-Server unter Ubuntu 20.04

  3. So installieren und konfigurieren Sie OpenVPN Server unter Debian 10

  4. So installieren und konfigurieren Sie den DHCP-Server unter Ubuntu 20.04

  5. So installieren und konfigurieren Sie den Redis-Server in Ubuntu

So installieren und verwenden Sie pgAdmin unter Ubuntu 18.04

So installieren und konfigurieren Sie Parse Server unter Ubuntu 20.04

So installieren und konfigurieren Sie Elasticsearch unter Ubuntu 20.04

So installieren und konfigurieren Sie Nextcloud unter Ubuntu 20.04

So installieren und konfigurieren Sie einen TeamSpeak Server auf Ubuntu 18.04

So installieren und konfigurieren Sie einen Minecraft-Server unter Ubuntu 18.04