GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> OpenVPN

Eine einfachste Möglichkeit, OpenVPN-Server unter Linux zu installieren und zu konfigurieren

Diese Anleitung beschreibt die Installation und Konfiguration des OpenVPN-Servers in RPM- und DEB-basierten Systemen. In dieser Anleitung verwenden wir ein Skript namens openvpn-install das den gesamten Installations- und Konfigurationsprozess des OpenVPN-Servers automatisiert. Dieses Skript hilft Ihnen, Ihren eigenen VPN-Server in wenigen Minuten einzurichten, auch wenn Sie OpenVPN noch nie zuvor verwendet haben.

Fangen wir an.

OpenVPN-Server unter Linux installieren und konfigurieren

Für den Zweck dieses Handbuchs werde ich zwei Systeme verwenden, die mit der CentOS 7 64-Bit-Edition ausgeführt werden. Einer fungiert als OpenVPN-Server, ein anderer als OpenVPN-Client. Das Folgende sind meine Testboxdetails.

OpenVPN-Server:

  • Betriebssystem :CentOS 7 64-Bit-Minimalversion
  • IP :192.168.43.150/24
  • Hostname :vpnserver.ostechnix.local

OpenVPN-Client:

  • Betriebssystem  :CentOS 7 64-Bit-Minimalversion
  • IP :192.168.43.199/24

Zuerst sehen wir uns die serverseitige Konfiguration an.

Installation und Konfiguration des OpenVPN-Servers

Laden Sie das openvpn-install-Skript von seiner GitHub-Seite herunter.

wget https://git.io/vpn -O openvpn-install.sh

Führen Sie dann das Skript mit dem folgenden Befehl als Root-Benutzer aus:

bash openvpn-install.sh

Sie werden gebeten, eine Reihe von Fragen zu beantworten. Beantworten Sie sie entsprechend.

Stellen Sie sicher, dass die IP-Adresse des VPN-Servers korrekt ist. Wenn Sie mehrere IP-Adressen verwenden, geben Sie die IP der Netzwerkschnittstelle ein, die OpenVPN überwachen soll.

Welcome to this quick OpenVPN "road warrior" installer

I need to ask you a few questions before starting the setup
 You can leave the default options and just press enter if you are ok with them

First I need to know the IPv4 address of the network interface you want OpenVPN
 listening to.
 IP address: 192.168.43.150

Wählen Sie aus, welches Protokoll Sie verwenden möchten. Ich möchte den TCP-Port verwenden, daher habe ich Nummer 2 ausgewählt.

Which protocol do you want for OpenVPN connections?
 1) UDP (recommended)
 2) TCP
Protocol [1-2]: 2

Geben Sie die Portnummer ein.

What port do you want OpenVPN listening to?
Port: 1194

Geben Sie die DNS-Serverdetails ein, die Sie mit dem VPN verwenden möchten. Ich möchte Google DNS-Resolver verwenden, also habe ich Option 2 ausgewählt.

Which DNS do you want to use with the VPN?
 1) Current system resolvers
 2) Google
 3) OpenDNS
 4) NTT
 5) Hurricane Electric
 6) Verisign
DNS [1-6]: 2

Wir haben den letzten Schritt erreicht. Geben Sie den Namen Ihres Client-Zertifikats ein. Der Name sollte ein einzelnes Wort sein und keine Sonderzeichen enthalten.

Finally, tell me your name for the client certificate
Please, use one word only, no special characters
Client name: client

Drücken Sie die EINGABETASTE, um die Installation des OPENVPN-Servers zu starten.

Okay, that was all I needed. We are ready to setup your OpenVPN server now
Press any key to continue...

Npw, dieses Skript beginnt mit der Installation aller erforderlichen Pakete zum Einrichten des OpenVPN-Servers. Anslo, es werden alle notwendigen Schlüssel und Zertifikate erstellt, um sich bei den VPN-Clients zu authentifizieren. Dies dauert einige Minuten.

Schließlich fragt Sie das Skript, ob Sie eine externe IP-Adresse haben. Wenn Sie keine haben, ignorieren Sie einfach, indem Sie es leer lassen und die EINGABETASTE drücken.

If your server is NATed (e.g. LowEndSpirit), I need to know the external IP
If that's not the case, just ignore this and leave the next field blank
External IP: 

Finished!

Your client configuration is available at /root/client.ovpn
If you want to add more clients, you simply need to run this script again!

Die Installation und Konfiguration des OpenVPN-Servers ist abgeschlossen. Wie Sie in der letzten Ausgabe sehen, werden die Client-Konfigurationsdetails in einer Datei /root/client.ovpn gespeichert . Sie müssen diese Datei auf alle Ihre VPN-Client-Systeme kopieren.

Ich habe die client.ovpn-Datei auf meinen VPN-Client kopiert

scp client.ovpn [email protected]:/etc/openvpn/

Als nächstes müssen wir den OpenVPN-Client konfigurieren.

Herunterladen - Kostenloses Video:"Penetration Testing Methodologies Training Course (im Wert von 99 $!) KOSTENLOS"

OpenVPN-Client-Konfiguration

Stellen Sie sicher, dass Sie die Datei client.ovpn von Ihrem VPN-Serversystem kopiert haben. Ich habe diese Datei bereits in das Verzeichnis /etc/openvpn/ meines VPN-Client-Systems kopiert.

Installieren Sie das OpenVPN-Paket mit dem Paketmanager der Distribution.

yum install openvpn

Führen Sie als Nächstes den folgenden Befehl aus, um eine sichere Verbindung mit dem VPN-Server herzustellen.

openvpn --config /etc/openvpn/client.ovpn

Beispielausgabe:

Wed Apr 5 18:50:44 2017 Unrecognized option or missing parameter(s) in /etc/openvpn/client.ovpn:14: block-outside-dns (2.3.14)
Wed Apr 5 18:50:44 2017 OpenVPN 2.3.14 x86_64-redhat-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [MH] [IPv6] built on Dec 7 2016
Wed Apr 5 18:50:44 2017 library versions: OpenSSL 1.0.1e-fips 11 Feb 2013, LZO 2.06
Wed Apr 5 18:50:44 2017 Control Channel Authentication: tls-auth using INLINE static key file
Wed Apr 5 18:50:44 2017 Outgoing Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Apr 5 18:50:44 2017 Incoming Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Apr 5 18:50:44 2017 Socket Buffers: R=[87380->87380] S=[16384->16384]
Wed Apr 5 18:50:44 2017 Attempting to establish TCP connection with [AF_INET]192.168.43.150:1194 [nonblock]
Wed Apr 5 18:50:45 2017 TCP connection established with [AF_INET]192.168.43.150:1194
Wed Apr 5 18:50:45 2017 TCPv4_CLIENT link local: [undef]
Wed Apr 5 18:50:45 2017 TCPv4_CLIENT link remote: [AF_INET]192.168.43.150:1194
Wed Apr 5 18:50:45 2017 TLS: Initial packet from [AF_INET]192.168.43.150:1194, sid=c6fb554e 362eb192
Wed Apr 5 18:50:45 2017 VERIFY OK: depth=1, CN=ChangeMe
Wed Apr 5 18:50:45 2017 Validating certificate key usage
Wed Apr 5 18:50:45 2017 ++ Certificate has key usage 00a0, expects 00a0
Wed Apr 5 18:50:45 2017 VERIFY KU OK
Wed Apr 5 18:50:45 2017 Validating certificate extended key usage
Wed Apr 5 18:50:45 2017 ++ Certificate has EKU (str) TLS Web Server Authentication, expects TLS Web Server Authentication
Wed Apr 5 18:50:45 2017 VERIFY EKU OK
Wed Apr 5 18:50:45 2017 VERIFY OK: depth=0, CN=server
Wed Apr 5 18:50:45 2017 Data Channel Encrypt: Cipher 'AES-256-CBC' initialized with 256 bit key
Wed Apr 5 18:50:45 2017 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Apr 5 18:50:45 2017 Data Channel Decrypt: Cipher 'AES-256-CBC' initialized with 256 bit key
Wed Apr 5 18:50:45 2017 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Apr 5 18:50:45 2017 Control Channel: TLSv1.2, cipher TLSv1/SSLv3 DHE-RSA-AES256-GCM-SHA384, 2048 bit RSA
Wed Apr 5 18:50:45 2017 [server] Peer Connection Initiated with [AF_INET]192.168.43.150:1194
Wed Apr 5 18:50:48 2017 SENT CONTROL [server]: 'PUSH_REQUEST' (status=1)
Wed Apr 5 18:50:48 2017 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1 bypass-dhcp,dhcp-option DNS 8.8.8.8,dhcp-option DNS 8.8.4.4,route-gateway 10.8.0.1,topology subnet,ping 10,ping-restart 120,ifconfig 10.8.0.2 255.255.255.0'
Wed Apr 5 18:50:48 2017 OPTIONS IMPORT: timers and/or timeouts modified
Wed Apr 5 18:50:48 2017 OPTIONS IMPORT: --ifconfig/up options modified
Wed Apr 5 18:50:48 2017 OPTIONS IMPORT: route options modified
Wed Apr 5 18:50:48 2017 OPTIONS IMPORT: route-related options modified
Wed Apr 5 18:50:48 2017 OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
Wed Apr 5 18:50:48 2017 ROUTE_GATEWAY 192.168.43.1/255.255.255.0 IFACE=enp0s3 HWADDR=08:00:27:28:98:6b
Wed Apr 5 18:50:48 2017 TUN/TAP device tun0 opened
Wed Apr 5 18:50:48 2017 TUN/TAP TX queue length set to 100
Wed Apr 5 18:50:48 2017 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Wed Apr 5 18:50:48 2017 /usr/sbin/ip link set dev tun0 up mtu 1500
Wed Apr 5 18:50:48 2017 /usr/sbin/ip addr add dev tun0 10.8.0.2/24 broadcast 10.8.0.255
Wed Apr 5 18:50:48 2017 /usr/sbin/ip route add 192.168.43.150/32 dev enp0s3
Wed Apr 5 18:50:48 2017 /usr/sbin/ip route add 0.0.0.0/1 via 10.8.0.1
Wed Apr 5 18:50:48 2017 /usr/sbin/ip route add 128.0.0.0/1 via 10.8.0.1
Wed Apr 5 18:50:48 2017 Initialization Sequence Completed

Überprüfen Sie nun, ob tun0 (VPN-Schnittstelle) erstellt wird, und überprüfen Sie die IP-Adresse der VPN-Schnittstelle mit dem Befehl „ip addr“:

ip addr

Beispielausgabe:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
 inet 127.0.0.1/8 scope host lo
 valid_lft forever preferred_lft forever
 inet6 ::1/128 scope host 
 valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
 link/ether 08:00:27:28:98:6b brd ff:ff:ff:ff:ff:ff
 inet 192.168.43.199/24 brd 192.168.43.255 scope global dynamic enp0s3
 valid_lft 42359sec preferred_lft 42359sec
 inet6 fe80::a00:27ff:fe28:986b/64 scope link 
 valid_lft forever preferred_lft forever
3: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 100
 link/none 
 inet 10.8.0.2/24 brd 10.8.0.255 scope global tun0
 valid_lft forever preferred_lft forever

Wie Sie in der obigen Ausgabe sehen können, hat unser VPN-Server dem VPN-Client automatisch die IP-Adresse 10.8.0.2 zugewiesen.

Versuchen Sie nun, den VPN-Server von Ihrem VPN-Clientsystem aus zu pingen:

ping -c3 10.8.0.1

Beispielausgabe:

PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data.
64 bytes from 10.8.0.1: icmp_seq=1 ttl=64 time=1.05 ms
64 bytes from 10.8.0.1: icmp_seq=2 ttl=64 time=1.94 ms
64 bytes from 10.8.0.1: icmp_seq=3 ttl=64 time=2.49 ms

--- 10.8.0.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 1.057/1.832/2.495/0.594 ms

Herzliche Glückwünsche! Wir haben jetzt erfolgreich OpenVPN-Server und -Client in CentOS installiert und konfiguriert. Diese Methode ist für DEB-basierte Systeme wie Ubuntu und Linux Mint gleich. Im Gegensatz zur manuellen Installation erleichtert dieses Skript die OpenVPN-Installation und -Konfiguration erheblich.

Prost!


OpenVPN
  1. Konfigurieren Sie Ihren OpenVPN-Server unter Linux

  2. Installieren Sie OpenVPN auf Ihrem Linux-PC

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

  4. Installieren und konfigurieren Sie den OpenVPN-Client unter Rocky Linux 8

  5. OpenVPN-Server unter Ubuntu 20.04 installieren und einrichten

So richten Sie einen OpenVPN-Server unter Ubuntu 22.04 ein und konfigurieren ihn

So installieren und konfigurieren Sie den OpenVPN-Server in CentOS 8/7

So installieren und konfigurieren Sie einen NFS-Server auf einem Linux-System

So installieren und konfigurieren Sie Apache SVN Server auf einem Linux-Desktop

4 einfache Schritte zum Installieren und Konfigurieren von VMware Server 2 unter Linux

So installieren und konfigurieren Sie den DNS-Server unter Linux