Wissensbasis Einfache Anweisungen zur Arbeit mit dem Profitserver-Dienst
Main Wissensbasis VPN-Server-Setup unter Linux: PPTP oder OpenVPN?

VPN-Server-Setup unter Linux: PPTP oder OpenVPN?


VPN-Technologie erfreut sich zunehmender Beliebtheit. Normale Nutzer nutzen VPN für den sicheren Internetzugang. Es hilft auch, lokal gesperrte Websites und Dienste zu umgehen und schützt vor möglichen externen Angriffen. Wenn Sie sich mit einem VPN-Server verbinden, entsteht ein sicherer Tunnel zwischen Ihrem Computer und dem Server, der von außen nicht zugänglich ist. Der VPN-Server wird so zu Ihrem Internetzugangspunkt. Es gibt viele kostenlose und kostenpflichtige VPN-Dienste. Sollten diese für Sie nicht funktionieren, können Sie jederzeit einen eigenen VPN-Server konfigurieren.

Um Ihr eigenes VPN zu betreiben, sollten Sie VPS-Server mietenEs gibt verschiedene Softwareprogramme zum Aufbau einer VPN-Verbindung. Sie unterscheiden sich in den unterstützten Betriebssystemen und den verwendeten Algorithmen. Wir betrachten zwei unabhängige Ansätze zur Einrichtung eines VPN-Servers. Der erste basiert auf dem PPTP-Protokoll, das zwar als veraltet und unsicher gilt, aber sehr einfach zu konfigurieren ist. Der andere Ansatz verwendet die moderne und sichere Software OpenVPN, erfordert aber die Installation einer Drittanbieter-Client-Anwendung und einen aufwändigeren Einrichtungsprozess.

In unserer Testumgebung verwenden wir einen virtuellen Server mit Ubuntu Server 18.04. Die Firewall auf dem Server ist deaktiviert, da deren Konfiguration einen separaten Artikel erfordert. Wir beschreiben die Einrichtung unter Windows 10.

Vorbereitung

Unabhängig davon, welchen VPN-Server Sie wählen, wird der Internetzugang über integrierte Funktionen des Betriebssystems eingerichtet. Um den Internetzugang über eine externe Serviceschnittstelle zu ermöglichen, müssen Sie die Paketweiterleitung zwischen den Schnittstellen zulassen und die Netzwerkadressübersetzung (NAT) konfigurieren.

Um die Paketweiterleitung einzuschalten, öffnen Sie die Datei „/etc/sysctl.conf“ und ändern „net.ipv4.ip_forward“ Parameterwert in 1.

Aktivieren Sie die Paketweiterleitung für die VPN-Einrichtung

Um Änderungen anzuwenden, ohne den Computer neu zu starten, führen Sie den Befehl aus

sudo sysctl -p /etc/sysctl.conf

Die Netzwerkadressübersetzung wird konfiguriert durch iptablesÜberprüfen Sie zunächst den Namen Ihrer externen Netzwerkschnittstelle, indem Sie den Befehl ausführen "IP-Link anzeigen" - Sie benötigen es im nächsten Schritt. Unser Name ist „ens3“.

IP-Link zeigen

Aktivieren Sie die Netzwerkadressübersetzung an Ihrer externen Schnittstelle für alle lokalen Netzwerkknoten.

sudo iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE

Beachten Sie, dass Sie den tatsächlichen Namen der Schnittstelle Ihres Servers angeben müssen. Dieser kann von unserem abweichen.

Standardmäßig werden alle von iptables erstellten Regeln nach dem Serverneustart zurückgesetzt. Um dies zu verhindern, verwenden Sie „iptables-persistent“ Dienstprogramm. Installieren Sie das folgende Paket:

sudo apt install iptables-persistent

Während der Installation wird ein Konfigurationsfenster angezeigt, in dem Sie die aktuellen iptables-Regeln speichern können. Da die Regeln bereits definiert sind, bestätigen Sie einfach und klicken Sie auf "Ja" zweimal. Ab sofort werden die Regeln nach dem Serverneustart automatisch angewendet.

Aktivieren Sie die Adressübersetzung

PPTP-Server

Serverkonfiguration

Installieren Sie das Paket:

sudo apt install pptpd

Öffnen Sie nach Abschluss der Installation die Datei „/etc/pptpd.conf“ in einem beliebigen Texteditor und bearbeiten Sie es wie folgt:

option /etc/ppp/pptpd-options #path to the settings file
logwtmp #client connections logging mechanism
connections 100 #number of simultaneous connections
localip 172.16.0.1 #the address that will serve as a client gateway
remoteip 172.16.0.2-200 #range of addresses

Bearbeiten Sie anschließend die Datei „/etc/ppp/pptpd-Optionen“Die meisten Parameter sind standardmäßig eingerichtet.

#name of the service for new client records
name pptpd
#restrict obsolete authentication methods
refuse-pap
refuse-chap
refuse-mschap
#allow a more secure authentication method
require-mschap-v2
#enable encryption
require-mppe-128
#specify dns servers for clients (use any available servers)
ms-dns 8.8.8.8
ms-dns 8.8.4.4
proxyarp
nodefaultroute
lock
nobsdcomp
novj
novjccomp
nologfd

Im nächsten Schritt müssen Sie einen Datensatz für Clientverbindungen erstellen. Angenommen, Sie möchten einen Benutzer hinzufügen „VPN-Benutzer“ mit Passwort "1" und erlauben Sie ihm die dynamische Adressierung. Öffnen Sie die Datei „/etc/ppp/chap-secrets“ und fügen Sie am Ende der Datei die folgende Zeile mit den Benutzerparametern hinzu:

vpnuser pptpd 1 *

„pptpd“ Wert ist der Name des Dienstes, den wir in der Datei angegeben haben „pptpd-Optionen“. Anstatt "*" Sie können eine feste IP-Adresse angeben. Im Ergebnis wird die Datei „Kap-Geheimnisse“ Sollte so aussehen:

VPN-Server-Setup

Um die Einstellungen anzuwenden, setzen Sie die pptpd Dienst und fügen Sie ihn zum automatischen Laden hinzu.

sudo systemctl restart pptpd
sudo systemctl enable pptpd

Die Serverkonfiguration ist abgeschlossen.

Client-Konfiguration

Öffne "Anfang" - "Einstellungen" - Netzwerk & Internet - "VPN" und klicken auf „VPN-Verbindung hinzufügen“

Client für VPN-Verbindung einrichten

Geben Sie im geöffneten Fenster die Verbindungsparameter ein und klicken Sie auf "Speichern"

  • VPN-Anbieter: „Windows (integriert)“
  • Verbindungsname: „vpn_connect“ (Sie können einen beliebigen Namen wählen)
  • Servername oder -adresse: (geben Sie die externe IP-Adresse des Servers an)
  • VPN-Typ: „Auto“
  • Art der Anmeldeinformationen: „Benutzername und Passwort“
  • Benutzername: VPN-Benutzer (Name in der Datei „chap-secrets“ auf dem Server angegeben)
  • Passwort: 1 (wie in der Datei „chap-secrets“)

Nach dem Speichern der Parameter wird die neue VPN-Verbindung im Fenster angezeigt. Klicken Sie mit der linken Maustaste auf die Verbindung und wählen Sie "Connect". Bei erfolgreicher Verbindung sehen Sie "In Verbindung gebracht" Status.

VPN-Verbindung hinzufügen

In den Optionen finden Sie die internen Adressen des Clients und des Servers. Feld „Zieladresse“ zeigt die externe Serveradresse an.

So richten Sie einen VPN-Server selbst ein

Bei bestehender Verbindung wird die interne IP-Adresse des Servers angezeigt, 172.16.0.1 wird in unserem Fall zum Standard-Gateway für alle ausgehenden Pakete.

Externe IP-Adresse prüfen

Mithilfe eines beliebigen Onlinedienstes können Sie sicherstellen, dass die externe IP-Adresse des Computers jetzt mit der IP-Adresse Ihres VPN-Servers übereinstimmt.

OpenVPN Server

Serverkonfiguration

Erhöhen wir die Berechtigungsstufe des aktuellen Benutzers, da wir für unsere weitere Konfiguration Root-Zugriff benötigen.

sudo -s

Installieren Sie alle notwendigen Pakete. Wir benötigen „Easy-RSA“ Paket zur Verwaltung von Verschlüsselungsschlüsseln.

apt install openvpn easy-rsa iptables-persistent

Erlauben Sie eingehende Verbindungen auf Port 1194 über das UDP-Protokoll und wenden Sie iptables-Regeln an.

sudo iptables -I INPUT -p udp --dport 1194 -j ACCEPT

sudo netfilter-persistent save

Erstellen Sie ein Verzeichnis mit kopierten Dateien aus dem Paket „Easy-RSA“ und navigieren Sie dorthin.

make-cadir ~/openvpn

cd ~/openvpn

Generieren Sie eine Public Key Infrastructure (PKI).

./easyrsa init-pki

Generieren Sie das Stammzertifikat der Zertifizierungsstelle (CA).

./easyrsa build-ca

Während des Erstellungsprozesses werden Sie aufgefordert, ein Passwort festzulegen und sich dieses zu merken. Außerdem müssen Sie Fragen beantworten und Informationen zum Schlüsselinhaber eingeben. Sie können die in eckigen Klammern angegebenen Standardwerte übernehmen. Drücken Sie die Eingabetaste, um die Eingabe abzuschließen.

Generieren Sie einen privaten Schlüssel und eine Zertifikatsanforderung. Geben Sie als Argument einen beliebigen Namen an; in unserem Fall ist es „VPN-Server“.

./easyrsa gen-req vpn-server nopass

Belassen Sie den Standardwert für den allgemeinen Namen.

Signieren Sie die generierte Server-Zertifikatsanforderung.

./easyrsa sign-req server vpn-server

Bestätigen Sie in diesem Schritt die Signatur mit „Ja“ und geben Sie anschließend das Kennwort ein, das bei der Generierung des Stammzertifikats erstellt wurde.

Diffie-Hellman-Parameter generieren. Diese Parameter dienen dem sicheren Schlüsselaustausch zwischen Server und Client.

./easyrsa gen-dh

Alle notwendigen Dateien wurden generiert. Erstellen wir einen Ordner „keys“ im OpenVPN-Arbeitsverzeichnis, um die Schlüssel zu speichern und die erstellten Dateien dorthin zu kopieren.

mkdir /etc/openvpn/keys

sudo cp pki/ca.crt pki/issued/vpn-server.crt pki/private/vpn-server.key pki/dh.pem /etc/openvpn/keys

Konfigurieren Sie NAT mit iptables Regeln. Erstellen Sie eine Datei mit dem Namen nat und öffnen Sie es zur Bearbeitung im /etc/openvpn/ Verzeichnis.

#!/bin/sh

# Reset firewall settings
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X

# (eth0 in our case, may vary)
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# (eth0 in our case, may vary)
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT

# Allow OpenVPN connections (eth0 in our case, may vary)
iptables -A INPUT -i eth0 -p udp --dport 1194 -j ACCEPT

iptables -A INPUT -i tun0 -j ACCEPT

# (eth0 in our case, may vary):
iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT

# (eth0 in our case, may vary)
iptables -A FORWARD -i eth0 -o tun0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Enable masquerading for the local network (eth0 in our case, may vary)
iptables -t nat -A POSTROUTING -o eth0 -s 10.8.0.0/24 -j MASQUERADE

# Deny incoming connections from outside
iptables -A INPUT -i eth0 -j DROP

# Deny transit traffic from outside (eth0 in our case, may vary)
iptables -A FORWARD -i eth0 -o tun0 -j DROP

sudo netfilter-persistent save

Speichern Sie die Datei und machen Sie sie ausführbar.

sudo chmod 755 /etc/openvpn/nat

Kopieren Sie die Serverkonfigurationsvorlage.

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

Öffnen Sie die Datei „/etc/openvpn/server.conf“ Stellen Sie zum Bearbeiten sicher, dass es die folgenden Zeilen enthält, und bearbeiten Sie sie bei Bedarf:

#Port, protocol, and interface

port 1194

proto udp

dev tun
#Path to the encryption keys

ca /etc/openvpn/keys/ca.crt

cert /etc/openvpn/keys/vpn-server.crt

key /etc/openvpn/keys/vpn-server.key

dh /etc/openvpn/keys/dh.pem

#SHA256 Hashing Algorithm

auth SHA256
#Switching off additional encryption

#tls-auth ta.key 0
#Network parameters

server 10.8.0.0 255.255.255.0

ifconfig-pool-persist /var/log/openvpn/ipp.txt

push "redirect-gateway def1 bypass-dhcp"

push "dhcp-option DNS 8.8.8.8"

push "dhcp-option DNS 8.8.4.4"
#Ping every 10 seconds to check the connection.

keepalive 10 120
#Set up AES-256 encryption for the tunnel.

cipher AES-256-GCM
#Demoting the service OpenVPN after launch

user nobody

group nogroup
#Switching on parameters saving after reboot

persist-key

persist-tun
#Set log verbosity

verb 3
#Redirecting logs

log-append /var/log/openvpn/openvpn.log
#Script the rule installation launch.

up /etc/openvpn/nat

Aktivieren Sie die Verkehrsweiterleitung auf dem Server.

sudo sysctl -w net.ipv4.ip_forward=1

echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf

Starten Sie OpenVPN, um die Konfiguration anzuwenden.

systemctl restart openvpn@server

Die Serverkonfiguration ist abgeschlossen!

Client-Konfiguration

Gehen Sie zur offiziellen Website von OpenVPN „https://openvpn.net”, gehen Sie zu „GEMEINSCHAFT“ .

Sie haben sich für das offizielle Website-Projekt „https://openvpn.net“ entschieden und sind dort unter „COMUNITY“ gelandet.

Scrollen Sie nach unten und laden Sie das Installationsprogramm für Ihre Betriebssystemversion herunter. In unserem Fall ist es Windows 11 ARM64.

Wir empfehlen Ihnen, ein Installationsprogramm für unsere Betriebssysteme herunterzuladen und herunterzuladen. Im Moment ist es Windows 11 ARM64.

Installieren Sie die Anwendung und belassen Sie alle Parameter in den Standardeinstellungen.

Im nächsten Schritt müssen Sie die folgenden Dateien auf dem Server vorbereiten und auf den Clientcomputer übertragen:

  • öffentliche und private Schlüssel;
  • Kopie des Schlüssels des Zertifizierungszentrums;
  • Konfigurationsdateivorlage.

Verbinden Sie sich mit dem Server, erhöhen Sie die Berechtigungen und navigieren Sie zu unserem erstellten Verzeichnis "~/openvpn".

sudo -s

cd ~/openvpn

Generieren Sie einen privaten Schlüssel und eine Zertifikatsanforderung für den Client. Geben Sie als Argument einen beliebigen Namen an; in unserem Fall ist es „client1“.

./easyrsa gen-req client1 nopass

Geben Sie das Kennwort ein, das wir beim Erstellen des Stammzertifikats festgelegt haben, und belassen Sie den Wert für den allgemeinen Namen auf dem Standardwert.

Im Laufe des Parols haben wir uns im Zuge der Befragung eines kornischen Zertifikats entschieden und eine Genehmigung für den gebräuchlichen Namen erhalten.

Signieren Sie die generierte Client-Zertifikatsanforderung.

./easyrsa sign-req client client1

Bestätigen Sie in diesem Schritt die Signatur mit „Ja“ und geben Sie anschließend das Kennwort ein, das bei der Generierung des Stammzertifikats erstellt wurde.

Nachdem ich für die Nachfolge-Nachricht „Ja“ angegeben hatte, wurde mir nach dem gesamten Parol ein neues Zertifikat vorgelegt.

Der Einfachheit halber erstellen wir im Home-Verzeichnis einen Ordner mit dem Namen „client1“ und kopieren alle Dateien, die auf den Client-Computer übertragen werden sollen, dorthin.

mkdir ~/client1

cp pki/issued/client1.crt pki/private/client1.key pki/ca.crt ~/client1/

Kopieren Sie die Client-Konfigurationsdateivorlage in dasselbe Verzeichnis. Ändern Sie die Dateierweiterung in „.ovpn“ während des Kopierens.

cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client1/client.ovpn

Ändern Sie den Besitzer des Verzeichnisses und aller Dateien „~/client1/“ um sie an den Kunden verteilen zu können. Lasst uns „Mihail“ in unserem Fall der Eigentümer.

chown -R mihail:mihail ~/client1

Gehen Sie zum Client-Computer und kopieren Sie den Inhalt der „~/client1/“ Ordner. Dies können Sie mit Hilfe von „PSCP“ Dienstprogramm, das zu Putty gehört.

PSCP -r mihail@[IP_сервера]:/home/mihail/client1 c:\client1

Sie können Schlüsseldateien speichern „ca.crt“, „client1.crt“, „client1.key“ wo immer Sie wollen. In unserem Fall befinden sie sich in diesem Ordner „c:\Programme\OpenVPN\keys“, und wir moderieren die Konfigurationsdatei „client.ovpn“ in die „c:\Programme\OpenVPN\config“ Verzeichnis.

Nun beginnen wir mit der Konfiguration des Clients. Öffnen Sie die Datei „c:\Programme\OpenVPN\config\client.ovpn“ in einem Texteditor und bearbeiten Sie die folgenden Zeilen:

#announce that this is the client

client
#interface and protocol just like on the server

dev tun

proto udp
#IP address of the server and port

remote ip_address 1194
#saving parameters after reload

persist-key

persist-tun
#key paths

ca “c:\\Program Files\\OpenVPN\\keys\\ca.cert”

cert “c:\\Program Files\\OpenVPN\\keys\\client1.crt”

key “c:\\Program Files\\OpenVPN\\keys\\client1.key”
#enable server verification

remote-cert-tls server
#disable extra encryption

#tls-auth ta.key 1

cipher AES-256-CBC

auth-nocache

verb 3

Den Rest lassen Sie unberührt.

Speichern Sie die Datei und starten Sie die Clientanwendung „OpenVPN-GUI“.

VPN-Einrichtung abgeschlossen

Klicken Sie mit der rechten Maustaste auf das App-Symbol in der Taskleiste und wählen Sie "Connect". Wenn die Verbindung erfolgreich ist, wird das Symbol grün.

Stellen Sie mithilfe eines beliebigen Onlinedienstes sicher, dass sich Ihre öffentliche IP-Adresse geändert hat und nun mit der IP-Adresse des Servers übereinstimmt.

❮ Vorheriger Artikel So richten Sie Wireguard VPN auf Ihrem Server ein
Nächster Artikel ❯ FTP-Server-Setup

Fragen Sie uns nach VPS

Wir stehen Ihnen jederzeit und rund um die Uhr für Ihre Fragen zur Verfügung.