24
November
2021
VPN über PPTP in 5 Minuten
16:46

VPN über PPTP in 5 Minuten

Um Zugriff auf den Heimserver zu erhalten, auf dem der Receiver läuft, habe ich ein virtuelles privates Netzwerk (VPN) erstellt.
Die einfachste (aber nicht die sicherste) Methode ist VPN mit dem PPTP-Protokoll.

Zu Hause habe ich einen Zyxel Keenetic Lite III Internet-Router mit der neuesten Softwareversion installiert

2.15.C.6.0-1.

Mit dem Router können Sie virtuelle private Netzwerke (VPN) der folgenden Typen für den Zugriff auf Ihr Heimnetzwerk organisieren:

  1. PPTP-VPN-Server
  2. SSTP-VPN-Server
  3. L2TP/IPSEC VPN-Server,
  4. IPsec-VPN-Server

Ich habe mich wegen der Geschwindigkeit der Einrichtung für PPTP entschieden.
Ich denke über die Einrichtung von PPTP mit 40-Bit-Verschlüsselung nach, die den Datenverkehr vor der Einsichtnahme durch Dritte schützt und nach geltendem Recht im Gebiet der Zollunion Russlands, Weißrusslands und Kasachstans zulässig ist.

1. Hinzufügen des Moduls „PPTP-Server“ zum Zyxel-Router

Gehen Sie zur Systemsteuerung – Allgemeine Einstellungen:
router1

Ändern Sie den Satz der Systemmodule, indem Sie auf die Schaltfläche klicken „Komponentensatz ändern“
router2

Scrollen Sie in der Liste nach unten und aktivieren Sie im Abschnitt „Netzwerkfunktionen“ das Modul „PPTP-VPN-Server“
Nach dem Speichern der Modulkonfiguration wird der Router neu gestartet.

2. Ändern des Bereichs dynamischer IP-Adressen des Routers (DHCP)

Wir verbinden uns mit dem Router-Bedienfeld und im Abschnitt „ Heimnetzwerk „Sehen Sie sich die IP-Adresse Ihres Heimnetzwerks an.
Beispiel: 192.168.88.1 – kann in einen beliebigen Bereich „Private Netzwerke“ geändert werden, in diesem Beispiel wie angegeben.
Router3
Drücken Sie die Taste „ DHCP-Einstellungen anzeigen".
Router4
Wir geben 10 Clients an, beginnend mit der Adresse 192.168.88.1_ – das sind die Adressen von Geräten im Netzwerk (Smartphones, Fernseher).
Bitte beachten Sie, dass in diesem Fall DHCP-Adressen belegt sein können von 1 bis 10.

(Für das virtuelle private Netzwerk unten wird dasselbe Subnetz der Klasse „C“ verwendet, jedoch werden Adressen vergeben, die mit der Nummer 100 beginnen.)

3. Fügen Sie einen Benutzer für VPN hinzu

Der Router verwendet die auf der Registerkarte angegebenen Anmeldedaten/Passwörter, um Benutzer zu verbinden „Benutzer und Zugriff“.

Fügen Sie auf der Registerkarte „Benutzer und Zugriff“ einen neuen Benutzer hinzu und erstellen Sie ein komplexes Passwort (schreiben Sie es auf ein Blatt Papier).
Speichern Sie die Änderungen.
Router5

Vergessen Sie nicht, nach unten zu scrollen und das Kontrollkästchen VPN-Server zu aktivieren. Speichern Sie die Änderungen.
router55

4. Aktivieren Sie PPTP VPN und erlauben Sie die Benutzerverbindung

Aktiviert die PPTP-Komponente auf der Dashboard-Registerkarte namens „Bewerbungen“ im unteren linken Teil des Fensters.
Router6
Durch Klicken auf den Link „PPTP VPN-Server“ gelangen wir zum Einstellungsmenü des VPN-Servers.

Wir korrigieren die Adresse zum internen Netzwerk, lassen aber die Startadresse für VPN-Clients mit der Zahl 100 beginnen.
Router7
Dort prüfen wir auch, ob der zuvor hinzugefügte Benutzer vpnuser aktiviert ist. Er kann sich mit dem Server verbinden.
Router8
Speichern. Die Servereinrichtung ist abgeschlossen.

5. Erste Verbindung zu VPN PPTP von einem Android-Smartphone

Klicken Sie unter „Einstellungen“ – „Netzwerk und Internet“ – „Erweitert“ – VPN auf „+“.
Im VPN-Profil auf Ihrem Smartphone:

  • Name

  • Typ - PPTP

  • Serveradresse – Geben Sie die externe (weiße) IP-Adresse des Heimnetzwerk-Routers ein

  • inkl. PPP-Verschlüsselung (MPPE)

  • Benutzername – VPN-Benutzer

  • Passwort – Passwort des VPN-Benutzers
    *Speichern
    VPN

Mit VPN verbinden – tippen Sie auf den Namen der VPN-Verbindung in der Verbindung und drücken Sie die Taste „Verbinden“^
VPN2

Die Einrichtung ist abgeschlossen.

!Hinweis: wenn die Verbindung über WLAN nicht funktioniert, liegt der Grund in den Einstellungen des Routers der Organisation, der keine Nachrichten vom PPTP-Server an den Client hinter NAT zulässt. In diesem Fall müssen Sie Ihr Smartphone von WLAN auf mobiles Internet umstellen.

Die folgenden Schritte sind erforderlich, um eine Verbindung von einem Linux-Client aus herzustellen (nicht erforderlich).

6. Installieren des PPTP-VPN-Clients auf einem Client-Computer, auf dem Linux ausgeführt wird

sudo apt-get update
sudo apt-get install pptp-linux

7. Einrichten eines PPTP-VPN-Clients

Habe die Datei wie folgt erstellt und bearbeitet. Von der Kommandozeile aus führen wir den Befehl aus:

sudo nano /etc/ppp/peers/test-vpn

Inhalt der Datei „/etc/ppp/peers/test-vpn“, wobei in der ersten Zeile 56.78.90.12 angegeben ist -„weiße“ IP-Adresse des Routers, hinter dem der Homeserver installiert ist:

pty "pptp 56.78.90.12 --nolaunchpppd"
name vpnuser #логин
remotename TEST #имя соединения
require-mppe-40 #включаем поддержку MPPE
defaultroute #создавать маршрут по умолчанию
replacedefaultroute #принудительно изменять маршрут по умолчанию
unit 12 #номер ppp интерфейса
persist #восстанавливать подключение при обрыве связи
maxfail 10 #количество попыток переподключения
holdoff 2 #интервал между подключениями
file /etc/ppp/options.pptp
ipparam $TUNNEL

Speichern: Strg+O, Eingabetaste, Strg+X.

Verfügt der Teilnehmer nicht über eine feste „weiße“ IP-Adresse, muss diese beim Anbieter angebunden (bestellt, bezahlt) werden. Dieser Dienst wird oft als „ Direkte IP-Adresse „oder“Statische dedizierte IP oder „ Feste IP-Adresse". In meinem Tarifplan war die direkte „weiße“ IP-Adresse kostenlos (Sie können sie in Ihrem „persönlichen Konto“ aktivieren und deaktivieren). Wenn der Router nur über eine dynamische externe IP-Adresse verfügt, ist eine Verbindung über PPTP nicht möglich. In diesem Fall können Sie es mit der Methode SSTP über „Cloud“ versuchen Zyxel.

Zusatz: Dateiinhalt /etc/ppp/options.pptp auf dem Client:

lock
noauth
refuse-pap
refuse-eap
refuse-chap
refuse-mschap
require-mppe
asyncmap 0
debug
crtscts
hide-password
modem
mtu 1500
noipx
persist


8. Angabe des Benutzernamens und Passworts auf dem Client in der Datei „secrets“.

sudo nano /etc/ppp/chap-secrets

Ich habe den folgenden Text eingefügt, wobei der erste Parameter der Benutzername, der zweite der Verbindungsname und der dritte das Passwort ist:

"vpnuser" TEST "mypassword"

mypassword muss mit dem Passwort desselben Benutzers auf dem Server übereinstimmen (siehe Punkt 3).

[Markierung]9. Linux-Kernel-Module aktivieren und eine Firewall auf dem Client einrichten[/mark]

Auf den meisten Linux-Distributionen müssen Sie das Kernelmodul „nf_conntrack_pptp“ aktivieren, um Folgendes ausführen zu können:

sudo modprobe ip_gre
sudo modprobe nf_nat_pptp
sudo modprobe nf_conntrack_pptp

In der Firewall müssen Sie die Verbindung von der Serverseite zum Client zulassen:

sudo ufw allow proto gre from внешний_IP_адрес_сервера
sudo service ufw restart

10. Erste Verbindung von einem Linux-Client zu einem Heimnetzwerk über VPN

Führen Sie auf dem Client (einem anderen PC) den folgenden Befehl aus:

sudo pon test-vpn nodetach

Dadurch wird eine Verbindung zum VPN und zum Heimnetzwerk hergestellt. Die Ausgabe des Programms „pon“ ist wie folgt:

Verwendung der Schnittstelle ppp12
Verbinden: ppp12 <--> /dev/pts/1
CHAP-Authentifizierung erfolgreich
MPPE 40-Bit-Zustandsloskomprimierung aktiviert
Ersetzen der alten Standardroute zu enp2s0 [192.168.0.1]
lokale IP-Adresse 192.168.88.100
Remote-IP-Adresse 192.168.88.1

Somit wurde eine Client-Verbindung unter der Adresse 192.168.88.100 aufgebaut
und alle Geräte im Netzwerk sind verfügbar, wobei 192.168.88.0 das Heimnetzwerk ist,
1-10 - Netzwerkgeräte im Heimnetzwerk, 100-110 über VPN verbundene Clients.

Die externe IP-Adresse des Clients ändert sich in die IP-Adresse des Heimnetzwerks im Internet, siehe 2ip.ru. Alle Websites sind über NAT erreichbar.
Das Einrichten des VPN dauerte etwa 5 Minuten. 😀

Um die VPN-Verbindung zu trennen, klicken Sie auf Strg+C.

12. Diagnostik (falls erforderlich)

Systemprotokollausgabe mit Tracking.

tail -f /var/log/syslog

13. Ergänzung. Zulassen, dass eine Verbindung als Standardbenutzer (nicht privilegiert) gestartet wird

Der Mangel muss behoben werden – das Starten von pon mit dem Befehl sudo.

Sudo war notwendig, weil... Beim Herstellen einer Verbindung ohne Root-Rechte tritt ein Fehler auf:

„anon warn[pptp_gre_bind:pptp_gre.c:102]: socket: Vorgang nicht zulässig
anon fatal[main:pptp.c:360]: GRE-Socket kann nicht gebunden werden, Abbruch.
Modem hängt auf
Verbindung beendet.“

Den Fehler zu beheben ist einfach (wenn Sie wissen wie) – führen Sie zwei Befehle im Terminal aus:

Erste Mannschaft— Wir gewähren das Recht, „pptp“ im Namen des Superusers auszuführen.
Wobei „chmod u+s“ die Einstellung des setuid bit ist, die sich auf den Start des Programms auswirkt: Anstatt die Berechtigungen des aktuellen Benutzers zu verwenden, wird das Programm mit den Berechtigungen des Eigentümers ausgeführt (und der Eigentümer der ausführbaren Datei /usr/sbin/pptp ist root):

sudo chmod u+s /usr/sbin/pptp

Zweites Team fügt einen Benutzer zur „dip“-Gruppe des Benutzers „username“ hinzu, der den pptp-Client auf diesem Computer ausführt (das können Sie mit dem Befehl herausfinden whoami). Hier ist „dip“ eine Gruppe mit dem Recht, einen PPTP-Tunnel zu starten.

sudo usermod -aG dip username

Nach dieser zusätzlichen Konfiguration wird die Verbindung vom Client aus mit einem Befehl gestartet, der der Batchdatei „vpn.sh“ hinzugefügt werden kann:

pon test-vpn nodetach

14. Lösung des Problems mit der Beendigung des PPTP-Tunnels, Erhöhung der Zuverlässigkeit

In meinem Fall hing die PPTP-Verbindung nach 5–10 Sekunden mit dem Fehler rcvd [LCP TermAck id=0xb] ein.

  1. Der Fehler wird hauptsächlich durch ein minderwertiges Patchkabel verursacht. Nach dem Austausch des Kabels war das Problem behoben. Die Punkt-zu-Punkt-Geschwindigkeit wurde von 26 auf 46 Mbit/s erhöht. Daher reagiert das PPP-Protokoll empfindlich auf die Leitungsqualität.

  2. Wenn die Zeile fehlerhaft ist, hilft das Hinzufügen zur Datei „/etc/ppp/options“ nächster Parameter

    noauth

(Die Verbindung basiert auf dem Vertrauen von Client und Server).

  1. Es empfiehlt sich auch, den Kanal zu konfigurieren – die MTU-Größe zu reduzieren. Ich habe es wie folgt ausgewählt: Zuerst habe ich in der Datei „/etc/ppp/options“ die maximale Größe von 1500 angegeben. Nachdem der Tunnel installiert war, habe ich mit dem Ping-Befehl sever_name -M do -s 1400 und dem Verringern der Zahl die MTU-Größe gefunden – in meinem Fall 1318.

Ich habe den gefundenen MTU-Wert in die Datei eingegeben./etc/ppp/options

mtu 1318

Bei schlechter Qualität des externen Kanals (Paketverluste, Verbindungsabbrüche und Wiederverbindungen) hilft eine starke Reduzierung der MTU bis auf 500:

mtu 500

Optionsdatei für komplexe Bedingungen:

noauth
asyncmap 0
crtscts
lock
hide-password
modem
-mn
debug
mtu 500
lcp-echo-interval 2
lcp-echo-failure 5
lcp-restart 3
lcp-max-configure 2
noipx

persist

Führen Sie dann den Verbindungsbefehl aus

pon test-vpn nodetach

Abhängigkeit der Übertragungsgeschwindigkeit von der MTU-Blockgröße

Gemessene iPerf-Geschwindigkeit zwischen zwei über VPN verbundenen PCs wird in der Tabelle angezeigt:

MTU-Wert,
Bytes
VPN PPTP-Geschwindigkeit,
Mbit/s
500 25,6
768 32,5
1000 35,5...40,7
1056 42,1...47,9
1256 43,3...53,0
1280 48...49,1
MTU auto (=1500) 42,5...53,6

15. Verfügbarkeitsprüfung

Nach außen hin ist am Router der Port 1723/TCP geöffnet:

sudo nmap IP_адрес_сервера -p 1723

PORT STATE SERVICE
1723/tcp open pptp

Im Inneren stehen nach der Verbindung mit dem lokalen Netzwerk über VPN PPTP lokale IP-Adressen zur Verfügung:

ping внутренний_ip_адрес_сервера_или_роутера

wo внутренний_ip_адрес_сервера_или_роутера – die Adresse des Computers oder Routers im internen Netzwerk, mit dem wir eine Verbindung herstellen.

Im Router müssen Sie im Abschnitt „DHCP-Server“ den PC registrieren, mit dem Sie eine Verbindung herstellen, damit er dies tut statisch iP-Adresse.

16. Verbindung zum Server über RDP mit Remmina herstellen

Für RDP verwende ich den Remmina-Client:

sudo apt-get install remmina

Start:

remmina

Kurz gesagt, ich habe eine Verbindung zu einem Remote-PC hergestellt. Die Anzeige von Bildschirminformationen und die PC-Steuerung funktionieren einwandfrei.

17. Lösung des Problems „gesendet [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x86451d9c> ]“

1) Kernel-Module in den Speicher laden:

sudo modprobe ip_gre
sudo modprobe nf_nat_pptp
sudo modprobe nf_conntrack_pptp
sudo modprobe nf_conntrack_proto_gre

2) Versuchen Sie, vorübergehend eine Verbindung als Root herzustellen:

sudo pon test-vpn nodetach

18. Konfigurieren von PPTP VPN mit der Network Manager-GUI

В системном лотке нажал на иконку сети _левой_ кнопкой мыши

![Starten Sie mit dem Hinzufügen von VPN PPTP](pptp-00.png „Linksklick auf das Netzwerksymbol in der Taskleiste“)
Ausgewählter VPN-Verbindungstyp zum Hinzufügen – PPTP:
![VPN-Typ auswählen – PPTP](pptp-01.png „VPN-Typ – PPTP“)
Und drückte den Knopf „Erstellen…“.

Oben im Fenster habe ich eingestellt Verbindungsname zB „PPTP“.

Auf der zweiten Registerkarte von links zeigt VPN die Serverparameter an
![PPTP-Parameter konfigurieren (Teil 1) – Registerkarte „VPN“](pptp-02.png „Einstellungen (Teil 1) – Registerkarte „VPN“)
*Tor*- Sie müssen eine externe feste IP-Adresse oder einen FQDN Ihres Heimnetzwerk-Routers angeben
Benutzername**- Dies ist der Benutzername im Heimrouter, der als VPN-PPTP-Server fungiert
*Passwort- Dies ist das Passwort des Benutzers mit dem im vorherigen Eingabefeld angegebenen Namen

Hinweis: Um ein Passwort einzugeben, klicken Sie auf die Schaltfläche mit einer Raute und einem Fragezeichen auf der rechten Seite des Eingabefelds und wählen Sie aus, ob das Passwort für alle Benutzer des Computers oder nur für diesen Benutzer gespeichert werden soll oder ob es bei jedem Verbindungsaufbau abgefragt werden soll.

Sie müssen zusätzliche Verbindungseigenschaften festlegen – die Schaltfläche „Erweitert“:
![PPTP-Parameter konfigurieren (Teil 2) – Schaltfläche „Erweitert“](pptp-03.png „Einstellungen (Teil 2) – Schaltfläche „Erweitert“)

  • Ankreuzen „MPPE-Verschlüsselung verwenden“.

Tasten drücken Bewerben – Speichern um die Verbindungserstellung abzuschließen.

Verbindung mit Ihrem Heimnetzwerk herstellen – klicken Sie in der Taskleiste auf das Netzwerksymbol und wählen Sie die zuvor erstellte VPN-Verbindung aus.
Wenn die Verbindung erfolgreich ist, ändert das Netzwerksymbol in der Taskleiste sein Aussehen:
![vpn verbunden](vpn-connected.png „vpn verbunden“)

Wenn beim Herstellen der Verbindung nichts passiert ist, drehte sich das Netzwerksymbol und kehrte in seine ursprüngliche Form zurück – schauen Sie sudo tail -n 30 /var/log/syslog auf der Clientseite und im Router-„Systemprotokoll“ auf Fehler auf der Serverseite.

19. Lösung des Problems im Syslog auf dem Router „mppe-Verschlüsselung erforderlich, aber abgelehnt, beenden“, auf dem Client „LCP durch Peer beendet“ beim Herstellen einer Verbindung mit NetworkManager

Klicken Sie in den NetworkManager-Verbindungseinstellungen auf „Erweitert“ und aktivieren Sie die MPPE-Verschlüsselung, wie im Bild oben. (Ankreuzen „MPPE-Verschlüsselung verwenden“).


Quellen:



ПосLetzte Änderung: 03.06.2024 – Absatz Nr. 9 „9. Aktivieren von Linux-Kernelmodulen und Einrichten einer Firewall auf dem Client“ und der letzte Absatz Nr. 19 (bei Verbindungsfehlern mit NetworkManager) hinzugefügt, die Nummerierung der Absätze wurde geändert.



Verwandte Veröffentlichungen