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

So richten Sie einen Linux-VPN-Server und -Client mit OpenVPN ein

VPN steht für Virtual Private Network.

Ein virtuelles privates Netzwerk ermöglicht es einem Computer, Daten von einem privaten Netzwerk zu einem anderen privaten Netzwerk zu senden und zu empfangen, die über ein öffentliches Netzwerk (Internet) verbunden sind.

Dies ist hilfreich für diejenigen, die sich außerhalb des Intranets des Unternehmens befinden und sich sicher mit dem Büronetzwerk verbinden möchten, um auf die internen Server zuzugreifen. VPN ist auch hilfreich, wenn Sie mehrere Zweigstellen miteinander verbinden.

Auch wenn Sie nicht mehrere Zweigstellen miteinander verbinden, können Sie dennoch die VPN-Einrichtung verwenden, damit Ihre Mitarbeiter eine Remote-Verbindung von ihrem Laptop zum Rechenzentrum und Zugriff auf die Systeme.

Manchmal kauft das Unternehmen Mietleitungen, um ein WAN (Wide Area Network) zu bilden, und kommuniziert mit seinen Niederlassungen. Obwohl Standleitungen sicher und zuverlässig sind, sind sie teuer.

VPN füllt die Lücke, indem es eine virtuelle Punkt-zu-Punkt-Verbindung über ein öffentliches Netzwerk bereitstellt. Ein VPN kann problemlos erweitert werden, um mehr Benutzer an verschiedenen geografischen Standorten aufzunehmen.

VPN-Arten

Auf hoher Ebene gibt es zwei Arten von VPN:

  • Fernzugriff
  • Site-to-Site

Remote Access verbindet einen einzelnen Computer über VPN mit einem Netzwerk. „Site to Site“ verbindet zwei Netzwerke über VPN miteinander.

Was ist OpenVPN

Vom OpenVPN-Mann:

OpenVPN ist ein Open-Source-VPN-Daemon von James Yonan. OpenVPN ist ein robuster und hochflexibler VPN-Daemon. OpenVPN unterstützt SSL/TLS-Sicherheit, Ethernet-Bridging, TCP- oder UDP-Tunneltransport über Proxys oder NAT, Unterstützung für dynamische IP-Adressen und DHCP, Skalierbarkeit für Hunderte oder Tausende von Benutzern und Portierbarkeit auf die meisten wichtigen Betriebssystemplattformen.

Dieses Tutorial erläutert den Vorgang zum Einrichten und Konfigurieren von OpenVPN-Server und -Client für den Fernzugriff.

Ich. Konfiguration von OpenVPN – Serverseite

1. Installieren Sie OpenVPN

Installieren Sie das openvpn-Paket sowohl auf dem Server als auch auf dem Client-Rechner.

$ sudo apt-get install openvpn

Verwenden Sie den jeweiligen Paketmanager der Distribution, mit der Sie arbeiten. Wenn Sie yum verwenden, gehen Sie wie folgt vor

$ yum install openvpn

2. Erstellen Sie Verzeichnisse und setzen Sie Env-Variablen

Erstellen Sie ein Verzeichnis in /etc/openvpn und kopieren Sie die easy-rsa Inhalt dazu. Dies geschieht, um sicherzustellen, dass an den Skripten vorgenommene Änderungen nicht verloren gehen, wenn das Paket aktualisiert wird. Ändern Sie den Eigentümer als aktuellen Benutzer, sodass der aktuelle Benutzer die Berechtigung zum Erstellen von Dateien hat.

$ sudo mkdir /etc/openvpn/easy-rsa

$ sudo cp /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa

$ sudo chown -R $USER /etc/openvpn/easy-rsa/

Bearbeiten Sie als Nächstes die Datei /etc/openvpn/easy-rsa/vars um sich an Ihre Umgebung anzupassen.

export KEY_COUNTRY="IN"
export KEY_PROVINCE="TN"
export KEY_CITY="CHN"
export KEY_ORG="tgs"
export KEY_EMAIL="[email protected]"

3. Erstellen der CA – Zertifizierungsstelle (Root-Zertifikat)

Der nächste Schritt beim Aufbau eines OpenVPN-Servers ist die Einrichtung einer Public-Key-Infrastruktur, damit sich Server und Clients gegenseitig authentifizieren können.

$ cd /etc/openvpn/easy-rsa/

$ source vars

$ ./clean-all

$ ln -s openssl-1.0.0.cnf openssl.cnf

$ ./build-ca

Generating a 1024 bit RSA private key
........++++++
......++++++
unable to write 'random state'
writing new private key to 'ca.key'
-----
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.
-----
Country Name (2 letter code) [IN]:
State or Province Name (full name) [TN]:
Locality Name (eg, city) [CHN]:
Organization Name (eg, company) [tgs]:
Organizational Unit Name (eg, section) [changeme]:
Common Name (eg, your name or your server's hostname) [changeme]:
Name [changeme]:lakshmanan
Email Address [[email protected]]:[email protected]

Einmal ./build-ca abgeschlossen ist, sehen Sie eine Datei mit dem Namen „ca.key “ und „ca.crt ” in /etc/openvpn/easy-rsa/keys/

Denken Sie daran, dass die Datei „.key ” Dateien sind vertraulich zu behandeln.

4. Zertifikat für Server erstellen

Der nächste Schritt besteht darin, ein Zertifikat für unseren Openvpn-Server zu erstellen.

$ /etc/openvpn/easy-rsa/build-key-server vpnserver
...
...

Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y

Beachten Sie, dass vpnserver der HOSTNAME des Servers ist. Dieser Befehl nimmt Eingaben vom Benutzer entgegen, ähnlich wie der vorherige. Dieser Befehl erstellt das Zertifikat und die Schlüsseldateien für den Server.

5. Zertifikat für Client erstellen

Der VPN-Client benötigt auch ein Zertifikat, um sich beim Server zu authentifizieren. Wenn Sie mehrere Clients konfigurieren möchten, müssen Sie für jeden Client ein separates Zertifikat erstellen.

$ ./build-key vpnclient1
...
...

Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y

vpnclient1 ist der Hostname des Clients. Dieser Befehl erstellt das Zertifikat und die Schlüsseldateien für den Client.

6. Diffie-Hellman-Parameter erstellen

$ ./build-dh

Sobald alle oben genannten Schritte erfolgreich abgeschlossen sind, haben Sie viele Schlüssel- und Zertifikatsdateien in /etc/openvpn/easy-rsa/keys .

7. Kopieren Sie die Zertifikate an die entsprechenden Speicherorte

Wir haben Root-Zertifikat, Server-Zertifikat und Client-Zertifikat erstellt. Wir müssen diese an die entsprechenden Stellen kopieren.

$ cd /etc/openvpn/easy-rsa/keys/

$ sudo cp ca.crt vpnserver.crt vpnserver.key dh1024.pem /etc/openvpn/

$ scp ca.crt vpnclient1.key  vpnclient1.crt root@vpnclient1:/etc/openvpn

Jetzt haben wir das Client-Zertifikat und den Schlüssel auf den Client-Computer kopiert. Denken Sie daran, beim Kopieren der Schlüsseldateien ein sicheres Medium wie scp zu verwenden.

8. Konfiguration des Servers

OpenVPN stellt eine standardmäßige server.conf bereit. Sie können es an Ihre Bedürfnisse anpassen.

$ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/

$ sudo gzip -d /etc/openvpn/server.conf.gz

Bearbeiten Sie die Datei „/etc/openvpn/server.conf „.

...
ca ca.crt
cert vpnserver.crt
key vpnserver.key
dh dh1024.pem
...

Starten Sie nun den OpenVPN-Server:

$ sudo /etc/init.d/openvpn start
 * Starting virtual private network daemon(s)... 
 * Autostarting VPN 'server'

$ ifconfig tun0
tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.8.0.1  P-t-P:10.8.0.2  Mask:255.255.255.255

Standardmäßig protokolliert openVPN Fehler in der Syslog-Datei.

II. OpenVPN konfigurieren – Client-Seite

9. Client-Konfigurationsdateien einrichten

Jetzt werden wir openVPN so konfigurieren, dass es als Client funktioniert. Denken Sie daran, dass wir das openvpn-Paket bereits im Client installiert haben und „ca.crt“, „vpnclient1.key“, vpnclient1.crt“ in /etc/openvpn/ haben

Kopieren Sie das Beispiel client.conf nach /etc/openvpn .

$ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/

Bearbeiten Sie die /etc/openvpn/client.conf .

...
# Specify that this is openvpn client
client

remote vpnserver 1194

ca ca.crt

cert vpnclient1.crt

key vpnclient1.key
...

Starten Sie nun das OpenVPN im Client

$ /etc/init.d/openvpn start
 * Starting virtual private network daemon(s)... 
 * Autostarting VPN 'client'

$ ifconfig tun0
tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.8.0.6  P-t-P:10.8.0.5  Mask:255.255.255.255

10. Testen Sie das VPN-Setup

Pingen Sie den vpnserver vom Client-Rechner aus, um zu sehen, ob VPN funktioniert oder nicht.

$ ping 10.8.0.1

PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data.
64 bytes from 10.8.0.1: icmp_req=1 ttl=64 time=2.14 ms

Wenn Sie pingen können, haben Sie die richtigen Einstellungen vorgenommen.

Bitte beachten Sie Folgendes:

  1. Stellen Sie sicher, dass Client und Server dasselbe Protokoll und dieselbe Portnummer verwenden.
  2. Client und Server müssen bezüglich einiger Parameter wie Schlüsselgröße, Komprimierung usw. die gleiche Konfiguration verwenden.
  3. Erhöhen Sie im Falle eines Problems die Protokollausführlichkeit in der Konfiguration und überprüfen Sie die Syslog-Datei auf Fehlerbehebung.

Linux
  1. So richten Sie NTP-Server und -Client unter Debian 9 Stretch Linux ein

  2. So richten Sie NFS-Server und -Client unter Rocky/Alma Linux 8 ein

  3. So installieren und richten Sie cPanel auf einem Linux-Server ein

  4. Anleitung zum Einrichten und Konfigurieren von YPServ Linux NIS Server und Client

  5. So installieren und konfigurieren Sie Linux NTP-Server und -Client

So richten Sie einen VPN-Server mit Pritunl unter Ubuntu 18.04 LTS ein

So richten Sie einen Sicherungsserver mit Rsnapshot unter Linux ein

So richten Sie einen Streaming Media Server mit Jellyfin unter Linux ein

So konfigurieren Sie NFS-Client und -Server unter Linux

So richten Sie NTP-Server und -Client unter Ubuntu 20.04 LTS ein

So verbinden Sie sich mit OpenVPN mit einem VPN