Knowledgebase Einfach Instruktioune fir mam Profitserver Service ze schaffen
Main Knowledgebase VPN Server Setup op Linux: PPTP oder OpenVPN?

VPN Server Setup op Linux: PPTP oder OpenVPN?


Hautdesdaags gëtt VPN Technologie méi populär. Gewéinlech Benotzer benotzen VPN fir sécher op den Internet ze kommen. Et hëlleft och lokal blockéiert Websäiten a Servicer ëmzegoen a géint méiglech extern béiswëlleg Verhalen ze schützen. Wann Dir mat engem VPN Server verbënnt, gëtt et e sécheren Tunnel tëscht Ärem Computer an dem Server deen net vu baussen zougänglech ass, sou datt de VPN Server Ären Internetzougangspunkt gëtt. Et gi vill VPN Servicer dobaussen, souwuel gratis a bezuelte, awer wa se aus irgendege Grënn net fir Iech schaffen, kënnt Dir ëmmer Ären eegene VPN Server konfiguréieren.

Fir Ären oun VPN ze lafen, sollt Dir VPS Server lounen. Et gëtt verschidde Software déi Iech erlaabt eng VPN Verbindung ze kreéieren. Et ënnerscheet sech vuneneen duerch Betribssystemer ënnerstëtzt an Algorithmen benotzt. Mir kucken op zwou onofhängeg Approche fir e VPN Server opzestellen. Deen éischten baséiert op PPTP Protokoll dee scho als obsolet ugesi gëtt an net sécher ass awer wierklech einfach ze konfiguréieren. Deen aneren benotzt modern a sécher Software OpenVPN awer erfuerdert d'Installatioun vun enger Drëtt Partei Client Applikatioun an e méi grëndleche Setup Prozess.

An eisem Testëmfeld benotze mir e virtuelle Server ugedriwwen vum Ubuntu Server 18.04. Eng Firewall gëtt um Server ausgeschalt well seng Konfiguratioun en separaten Artikel verdéngt. Mir beschreiwen de Setupprozess op Windows 10.

Virbereedung

Egal wéi ee VPN-Server Dir wielt, den Internetzougang gëtt mat integréierte Mëttele vum Betribssystem ageriicht. Fir den Internetzougang duerch en externen Service-Interface opzemaachen, musst Dir Paket-Forwarding tëscht den Interfaces erlaben an d'Netzadresseiwwersetzung konfiguréieren.

Fir Paket Forwarding opzemaachen, öffnen d'Datei "/etc/sysctl.conf" an änneren "net.ipv4.ip_forward" Parameter Wäert an 1.

aktivéiert Pakete Forwarding fir VPN Setup

Fir Ännerungen z'applizéieren ouni de Computer nei ze starten, fuert de Kommando aus

sudo sysctl -p /etc/sysctl.conf

Reseau Adress Iwwersetzung ass vun der heescht konfiguréiert Iteef. Als éischt, kontrolléiert den Numm vun Ärem externen Netzwierkinterface deen de Kommando leeft "IP Link weisen" - Dir wäert et am nächste Schrëtt brauchen. Eisen Numm ass "ens3".

ip Link weisen

Aktivéiert Netzwierkadress Iwwersetzung op Ärem externen Interface fir all lokal Netzwierkknäppchen.

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

Bedenkt datt Dir de richtegen Numm vun Ärem Server Interface uginn musst, et kann anescht sinn wéi eis.

Par défaut ginn all Reegelen, déi vun iptables erstallt ginn, zréckgesat nodeems de Server nei starten. Fir dat ze verhënneren, benotzt "iptables-persistent" Utility. Installéiert de folgende Paket:

sudo apt install iptables-persistent

Irgendwann während dem Installatiounsprozess gesitt Dir eng Konfiguratiounsfenster déi Iech virschloen datt Dir aktuell iptables Regelen späichert. Well d'Regele scho definéiert sinn, just confirméieren a klickt "Jo" zweemol. Zënter elo ginn d'Regele automatesch applizéiert nodeems de Server nei starten.

Aktivéiert Adress Iwwersetzung

PPTP Server

Serverkonfiguratioun

Installéiert de Pak:

sudo apt install pptpd

Nodeems d'Installatioun eriwwer ass, öffnen d'Datei "/etc/pptpd.conf" an all Texteditor an editéiert et esou:

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

Duerno ännert d'Datei "/etc/ppp/pptpd-optiounen". Déi meescht vun de Parameteren sinn par défaut ageriicht.

#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

Op der nächster Stuf musst Dir e Rekord fir Clientverbindungen erstellen. Loosst eis soen datt Dir e Benotzer wëllt addéieren "vpnuser" mat Passwuert "1" an erlaben dynamesch Adress fir him. De Fichier opmaachen "/etc/ppp/chap-secrets" a füügt déi folgend Zeil mat de Benotzerparameter um Enn vun der Datei un:

vpnuser pptpd 1 *

"pptpd" Wäert ass den Numm vum Service dee mir an der Datei uginn "pptpd-Optiounen". Amplaz vun "*" Dir kënnt eng fix IP Adress uginn. Als Resultat, de Fichier "Kapp Geheimnisser" soll esou ausgesinn:

VPN Server Setup

Fir d'Astellungen z'applizéieren, reset de pptpd Service a füügt et un d'Autoloading.

sudo systemctl restart pptpd
sudo systemctl enable pptpd

Server Konfiguratioun ass fäerdeg.

Client Configuratioun

Open “Start” - "Parameteren" - Netzwierk & Internet - "VPN" a klickt op "Füügt eng VPN Verbindung"

Setup Client fir VPN Verbindung

Gitt d'Verbindungsparameter an der Fënster opgemaach a klickt "Späicheren"

  • VPN Provider: "Windows (built-in)"
  • Verbindungsnumm: "vpn_connect" (Dir kënnt all Numm wielen)
  • Servernumm oder Adress: (spezifizéieren déi extern IP Adress vum Server)
  • VPN Typ: "Auto"
  • Typ vun Umeldungsinformatioun: "Benotzernumm a Passwuert"
  • Benotzernumm: vp Benotzer (Numm spezifizéiert an der "chap-secrets" Datei um Server)
  • Passwuert: 1 (wéi an der "chap-secrets" Datei)

Nodeems Dir Parameteren gespäichert hutt, gesitt Dir déi nei VPN Verbindung an der Fënster. Lénks klickt op d'Verbindung a wielt "Connect". Am Fall vun enger erfollegräicher Verbindung gesitt Dir "Verbonnen" Status.

Füügt VPN Verbindung

An den Optiounen fannt Dir intern Adresse vum Client an dem Server. Feld "Destinatioun Adress" weist déi extern Serveradress un.

Wéi ee VPN Server selwer opstellt

Wann ugeschloss ass, ass d'intern IP Adress vum Server, 172.16.0.1 an eisem Fall gëtt de Standardpaart fir all erausginn Pakete.

Kontrolléiert extern IP-Adress

Mat all Online Service kënnt Dir sécher sinn datt déi extern IP Adress vum Computer elo d'selwecht ass wéi d'IP Adress vun Ärem VPN Server.

OpenVPN Server

Serverkonfiguratioun

Loosst eis den Permissiounsniveau vum aktuelle Benotzer förderen, well fir eis weider Konfiguratioun brauche mir Root-Zougang.

sudo -s

Installéiert all déi néideg Pakete. Mir wäerten brauchen "Easy-RSA" Paket fir Verschlësselungsschlësselen ze managen.

apt install openvpn easy-rsa iptables-persistent

Erlaabt ukommende Verbindungen um Port 1194 iwwer den UDP-Protokoll a gëllt fir iptables-Reegelen.

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

sudo netfilter-persistent save

Erstellt en Dossier mat kopéierte Dateien aus dem "Easy-RSA" Pak a navigéiert eran.

make-cadir ~/openvpn

cd ~/openvpn

Generéiert eng ëffentlech Schlësselinfrastruktur (PKI).

./easyrsa init-pki

Generéiert de Rootzertifikat vun der Zertifizéierungsautoritéit (CA).

./easyrsa build-ca

Wärend dem Erstellungsprozess gitt Dir opgefuerdert, e Passwuert anzestellen an Iech drun ze erënneren. Dir musst och Froen beäntweren an Informatiounen iwwer de Schlësselbesëtzer aginn. Dir kënnt d'Standardwäerter, déi an de Klammeren uginn sinn, loossen. Dréckt op "Enter" fir d'Input ofzeschléissen.

Generéiert e private Schlëssel an eng Zertifikatsufro. Als Argument gitt en arbiträren Numm un; an eisem Fall ass et "vpn-server".

./easyrsa gen-req vpn-server nopass

Loosst de Wäert "Common Name" als Standard.

Ënnerschreift déi generéiert Ufro fir e Serverzertifikat.

./easyrsa sign-req server vpn-server

An dësem Schrëtt, äntwert mat "jo" fir d'Ënnerschrëft ze bestätegen, an da gitt d'Passwuert an, dat während der Generatioun vum Root-Zertifikat erstallt gouf.

Generéiert Diffie-Hellman-Parameteren. Dës Parameter gi fir e séchere Schlësselaustausch tëscht dem Server an dem Client benotzt.

./easyrsa gen-dh

All néideg Dateien goufen generéiert. Loosst eis en "keys"-Ordner am OpenVPN-Aarbechtsverzeichnis erstellen, fir d'Schlësselen ze späicheren, an déi erstallt Dateien dohinner kopéieren.

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

NAT konfiguréieren mat iptables Reegelen. Erstellt eng Datei mam Numm nat an et opmaachen fir ze beaarbechten an der /etc/openvpn/ Dossier.

#!/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

Späichert d'Datei a maacht se ausféierbar.

sudo chmod 755 /etc/openvpn/nat

Kopéiert d'Serverkonfiguratiounsvirlag.

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

Datei opmaachen "/etc/openvpn/server.conf" fir z'änneren, gitt sécher datt et déi folgend Zeilen enthält, a ännert se wann néideg:

#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

Aktivéiert d'Weiderleitung vum Traffic um Server.

sudo sysctl -w net.ipv4.ip_forward=1

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

Start OpenVPN fir d'Konfiguratioun anzesetzen.

systemctl restart openvpn@server

D'Serverkonfiguratioun ass fäerdeg!

Client Configuratioun

Gitt op déi offiziell Websäit vun OpenVPN "https://openvpn.net", gitt op d' "COMMUNITY" Rubrik.

Заходим на официальный сайт проекта "https://openvpn.net", переходим в раздел "COMUNITY".

Scrollt no ënnen an luet den Installateur fir Är Betribssystemversioun erof. An eisem Fall ass et Windows 11 ARM64.

пролистываем вниз a скачиваем инсталлятор fir своей версии операционной системы. В нашем случае это Windows 11 ARM64.

Installéiert d'Applikatioun andeems Dir all Parameteren als Standard hannerloosst.

Op der nächster Stuf musst Dir déi folgend Datei um Server virbereeden an se op de Client Computer transferéieren:

  • ëffentlech a privat Schlësselen;
  • Kopie vun der Zertifizéierung Zentrum Schlëssel;
  • config Datei Schabloun.

Verbannt Iech mam Server, erhéicht d'Rechter a navigéiert an eist erstallt Verzeichnis "~/openvpn".

sudo -s

cd ~/openvpn

Generéiert e private Schlëssel an eng Zertifikatsufro fir de Client. Als Argument gitt en arbiträren Numm un; an eisem Fall ass et "client1".

./easyrsa gen-req client1 nopass

Gitt d'Passwuert an, dat mir beim Erstelle vum Root-Zertifikat festgeluecht hunn, a loosst de Wäert "Common Name" als Standard.

Вводим пароль, который мы устанавливали при создании корневого сертификата и оставляем значение Common Name поиуючение.

Ënnerschreift déi generéiert Clientzertifikatsufro.

./easyrsa sign-req client client1

An dësem Schrëtt, äntwert mat "jo" fir d'Ënnerschrëft ze bestätegen, an da gitt d'Passwuert an, dat während der Generatioun vum Root-Zertifikat erstallt gouf.

На этом шаге отвечаем "jo" fir подтверждения подписи, после чего вводим пароль, который был созанисан пароль сертификата.

Fir d'Komfort erstellen mir en Dossier mam Numm 'client1' am Home-Verzeichnis a kopéiere all Dateien, déi fir den Transfer op de Clientcomputer geduecht sinn, dran.

mkdir ~/client1

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

Kopéiert de Client Configuratiounsdatei Schabloun an dee selwechte Verzeechnes. Ännert d'Dateierweiterung op ".ovpn" während der Kopie.

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

Ännert de Besëtzer vum Verzeichnis an all d'Dateien "~/client1/" fir se un de Client ze verdeelen. Loosst eis maachen "mihail" de Besëtzer an eisem Fall.

chown -R mihail:mihail ~/client1

Gitt op de Client Computer a kopéiert den Inhalt vun der "~/client1/" Dossier. Dir kënnt dat mat der Hëllef vun "PSCP" Utility, dat geet mat Putty.

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

Dir kënnt Schlësseldateien späicheren "ca.crt", "client1.crt", "client1.key" wou Dir wëllt. An eisem Fall sinn se an dësem Dossier "c:\Programmdateien\OpenVPN\keys", a mir Modus d'Configuratiounsdatei "client.ovpn" an d ' "c:\Programme\OpenVPN\config" Dossier.

Loosst eis elo de Client konfiguréieren. De Fichier opmaachen "c:\Programme\OpenVPN\config\client.ovpn" an engem Texteditor an ännert déi folgend 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

Loosst de Rescht onberéiert.

Späichert d'Datei a lancéiert d'Clientapplikatioun "OpenVPN GUI".

VPN Setup fäerdeg

Riets-klickt op d'App Ikon an der Taskbar a wielt "Connect". Wann d'Verbindung erfollegräich ass, gëtt d'Ikon gréng.

Benotzt all Online Service fir sécherzestellen datt Är ëffentlech IP Adress geännert huet an elo d'selwecht ass wéi d'IP Adress vum Server.

❮ Virdrun Artikel Wéi konfiguréiert Wireguard VPN op Ärem Server
Nächsten Artikel ❯ FTP Server Setup

Frot eis iwwer VPS

Mir sinn ëmmer prett Är Froen zu all Moment vum Dag oder Nuecht ze beäntweren.