Kennisbank Eenvoudige instructies om met de Profitserver-service te werken
Hoofd Kennisbank VPN-server instellen op Linux: PPTP of OpenVPN?

VPN-server instellen op Linux: PPTP of OpenVPN?


Tegenwoordig wordt VPN-technologie populairder. Gewone gebruikers gebruiken VPN om veilig toegang te krijgen tot internet. Het helpt ook om lokaal geblokkeerde websites en services te omzeilen en beschermt tegen mogelijk extern kwaadaardig gedrag. Wanneer u verbinding maakt met een VPN-server, is er een veilige tunnel tussen uw computer en de server die niet van buitenaf toegankelijk is, dus de VPN-server wordt uw internettoegangspunt. Er zijn veel VPN-services beschikbaar, zowel gratis als betaald, maar als ze om een ​​of andere reden niet voor u werken, kunt u altijd uw eigen VPN-server configureren.

Om uw VPN te laten draaien, moet u: VPS-server huren. Er is verschillende software waarmee u een VPN-verbinding kunt maken. Deze verschillen van elkaar door de ondersteunde besturingssystemen en gebruikte algoritmen. We zullen twee onafhankelijke benaderingen bekijken om een ​​VPN-server in te stellen. De eerste is gebaseerd op het PPTP-protocol dat al als verouderd en niet veilig wordt beschouwd, maar heel eenvoudig te configureren is. De andere maakt gebruik van moderne en veilige software OpenVPN, maar vereist de installatie van een clienttoepassing van derden en een grondiger installatieproces.

In onze testomgeving gaan we een virtuele server gebruiken die aangestuurd wordt door Ubuntu Server 18.04. Een firewall wordt op de server uitgeschakeld omdat de configuratie een apart artikel verdient. We zullen het installatieproces op Windows 10 beschrijven.

Voorbereiding

Ongeacht welke VPN-server u kiest, de internettoegang wordt ingesteld door geïntegreerde middelen van het besturingssysteem. Om internettoegang te openen via een externe service-interface moet u packet forwarding tussen de interfaces toestaan ​​en network address translation configureren.

Om pakketdoorsturing in te schakelen, opent u het bestand “/etc/sysctl.conf” en veranderen “net.ipv4.ip_forward” parameterwaarde in 1.

Pakketdoorsturing inschakelen voor VPN-instellingen

Om wijzigingen toe te passen zonder de computer opnieuw op te starten, voert u de opdracht uit

sudo sysctl -p /etc/sysctl.conf

Netwerkadresvertaling wordt geconfigureerd door middel van iptablesControleer eerst de naam van uw externe netwerkinterface door de opdracht uit te voeren "ip-link tonen" - je hebt het nodig bij de volgende stap. Onze naam is “ens3”.

ip linkshow

Schakel netwerkadresvertaling in op uw externe interface voor alle lokale netwerkknooppunten.

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

Houd er rekening mee dat u de echte naam van de interface van uw server moet opgeven. Deze kan afwijken van de onze.

Standaard worden alle regels die door iptables zijn gemaakt, gereset na het opnieuw opstarten van de server. Om dat te voorkomen, gebruikt u “iptables-persistent” hulpprogramma. Installeer het volgende pakket:

sudo apt install iptables-persistent

Op een bepaald punt tijdens het installatieproces ziet u een configuratievenster dat u zal voorstellen om de huidige iptables-regels op te slaan. Omdat de regels al zijn gedefinieerd, hoeft u alleen maar te bevestigen en te klikken "Ja" tweemaal. Vanaf nu worden de regels automatisch toegepast na het opnieuw opstarten van de server.

Adresvertaling inschakelen

PPTP-server

Server configuratie

Installeer het pakket:

sudo apt install pptpd

Nadat de installatie is voltooid, opent u het bestand “/etc/pptpd.conf” in een willekeurige teksteditor en bewerk het als volgt:

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

Bewerk daarna het bestand “/etc/ppp/pptpd-opties”De meeste parameters zijn standaard ingesteld.

#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

In de volgende fase moet u een record maken voor clientverbindingen. Stel dat u een gebruiker wilt toevoegen “vpngebruiker” met wachtwoord "1" en dynamische adressering voor hem toestaan. Open het bestand “/etc/ppp/chap-geheimen” en voeg de volgende regel met de parameters van de gebruiker toe aan het einde van het bestand:

vpnuser pptpd 1 *

“pptpd” waarde is de naam van de service die we in het bestand hebben opgegeven “pptpd-opties”. In plaats van "*" u kunt een vast IP-adres opgeven. In het resultaat, het bestand “geheimen van kerels” Zou er als volgt uitzien:

VPN-server instellen

Om de instellingen toe te passen, reset u de pptpd service en voeg deze toe aan autoloading.

sudo systemctl restart pptpd
sudo systemctl enable pptpd

De serverconfiguratie is voltooid.

Client configuratie

Open "Begin" - “Instellingen” - Netwerk & Internet - "VPN" en klik op “VPN-verbinding toevoegen”

Client instellen voor VPN-verbinding

Voer de verbindingsparameters in het geopende venster in en klik "Opslaan"

  • VPN-provider: “Windows (ingebouwd)”
  • Verbindingsnaam: “vpn_connect” (u kunt elke naam kiezen)
  • Servernaam of adres: (geef het externe IP-adres van de server op)
  • VPN-type: “Auto”
  • Type aanmeldgegevens: “Gebruikersnaam en wachtwoord”
  • Gebruikersnaam: VPN-gebruiker (naam gespecificeerd in het bestand “chap-secrets” op de server)
  • Wachtwoord: 1 (zoals in het bestand “chap-secrets”)

Nadat u de parameters hebt opgeslagen, ziet u de nieuwe VPN-verbinding in het venster. Klik met de linkermuisknop op de verbinding en selecteer "Connect". In het geval van een succesvolle verbinding, zult u zien "Verbonden" statuut.

VPN-verbinding toevoegen

In de Opties vindt u de interne adressen van de client en de server. Veld “Bestemmingsadres” geeft het externe serveradres weer.

Hoe u zelf een VPN-server instelt

Wanneer verbonden, het interne IP-adres van de server, 172.16.0.1 wordt in ons geval de standaardgateway voor alle uitgaande pakketten.

Controleer extern IP-adres

Met behulp van een online service kunt u ervoor zorgen dat het externe IP-adres van de computer nu hetzelfde is als het IP-adres van uw VPN-server.

OpenVPN-server

Server configuratie

Laten we het permissieniveau van de huidige gebruiker verhogen, want voor onze verdere configuratie hebben we root-toegang nodig.

sudo -s

Installeer alle benodigde pakketten. We zullen nodig hebben “Eenvoudig-RSA” pakket om encryptiesleutels te beheren.

apt install openvpn easy-rsa iptables-persistent

Sta binnenkomende verbindingen op poort 1194 toe via het UDP-protocol en pas iptables-regels toe.

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

sudo netfilter-persistent save

Maak een map met gekopieerde bestanden uit het pakket “Easy-RSA” en navigeer ernaartoe.

make-cadir ~/openvpn

cd ~/openvpn

Genereer Public Key Infrastructure (PKI).

./easyrsa init-pki

Genereer het basiscertificaat van de certificeringsinstantie (CA).

./easyrsa build-ca

Tijdens het aanmaken wordt u gevraagd een wachtwoord in te stellen en te onthouden. U moet ook vragen beantwoorden en informatie over de sleuteleigenaar invoeren. U kunt de standaardwaarden tussen vierkante haken laten staan. Druk op "Enter" om de invoer te voltooien.

Genereer een privésleutel en een certificaataanvraag. Geef als argument een willekeurige naam op; in ons geval is dat "vpn-server".

./easyrsa gen-req vpn-server nopass

Laat de waarde voor Algemene naam op de standaardwaarde staan.

Onderteken de gegenereerde servercertificaataanvraag.

./easyrsa sign-req server vpn-server

Beantwoord in deze stap 'ja' om de handtekening te bevestigen en voer vervolgens het wachtwoord in dat is aangemaakt tijdens het genereren van het rootcertificaat.

Genereer Diffie-Hellman-parameters. Deze parameters worden gebruikt voor veilige sleuteluitwisseling tussen de server en de client.

./easyrsa gen-dh

Alle benodigde bestanden zijn gegenereerd. Laten we een map "keys" aanmaken in de OpenVPN-werkmap om de sleutels op te slaan en de aangemaakte bestanden daarheen kopiëren.

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

Configureer NAT met behulp van iptables regels. Maak een bestand met de naam nat en open het voor bewerking in de /etc/openvpn/ directory.

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

Sla het bestand op en maak het uitvoerbaar.

sudo chmod 755 /etc/openvpn/nat

Kopieer de serverconfiguratiesjabloon.

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

Open het bestand “/etc/openvpn/server.conf” Zorg ervoor dat het bestand de volgende regels bevat en bewerk ze indien nodig:

#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

Schakel verkeer doorsturen op de server in.

sudo sysctl -w net.ipv4.ip_forward=1

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

Start OpenVPN om de configuratie toe te passen.

systemctl restart openvpn@server

De serverconfiguratie is voltooid!

Client configuratie

Ga naar de officiële website van OpenVPN “https://openvpn.net”, ga naar de “GEMEENSCHAP” pagina.

U kunt een verbinding maken met “https://openvpn.net”, in de “GEMEENSCHAP”.

Scroll naar beneden en download het installatieprogramma voor jouw besturingssysteemversie. In ons geval is dat Windows 11 ARM64.

Zorg ervoor dat u geen gebruik maakt van het apparaat. U kunt gebruik maken van Windows 11 ARM64.

Installeer de applicatie en laat alle parameters op de standaardwaarden staan.

In de volgende fase moet u het volgende bestand op de server voorbereiden en naar de clientcomputer overbrengen:

  • openbare en privésleutels;
  • kopie van de sleutel van het certificeringscentrum;
  • configuratiebestand sjabloon.

Maak verbinding met de server, verhoog uw rechten en navigeer naar de door u aangemaakte directory "~/openvpn".

sudo -s

cd ~/openvpn

Genereer een privésleutel en een certificaataanvraag voor de client. Geef als argument een willekeurige naam op; in ons geval is dat "client1".

./easyrsa gen-req client1 nopass

Voer het wachtwoord in dat we hebben ingesteld bij het aanmaken van het rootcertificaat en laat de waarde voor de Algemene naam op de standaardwaarde staan.

Zorg ervoor dat u uw krediet- en kredietkosten verlaagt значение Algemene naam по умолчанию.

Onderteken de gegenereerde clientcertificaataanvraag.

./easyrsa sign-req client client1

Beantwoord in deze stap 'ja' om de handtekening te bevestigen en voer vervolgens het wachtwoord in dat is aangemaakt tijdens het genereren van het rootcertificaat.

Als u "ja" wilt zeggen, kunt u het beste weten Zorg ervoor dat het apparaat een goede werking heeft.

Voor het gemak maken we een map met de naam 'client1' in de thuismap en kopiëren we alle bestanden die we naar de clientcomputer willen overbrengen naar deze map.

mkdir ~/client1

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

Kopieer de client config file template naar dezelfde directory. Wijzig de bestandsextensie naar “.ovpn” tijdens het kopiëren.

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

De eigenaar van de map en alle bestanden wijzigen “~/klant1/” om ze te kunnen distribueren naar de klant. Laten we “Mihail” in ons geval de eigenaar.

chown -R mihail:mihail ~/client1

Ga naar de clientcomputer en kopieer de inhoud van de “~/klant1/” map. Dat kan met behulp van “PSCP-programma” hulpprogramma dat bij Putty hoort.

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

U kunt sleutelbestanden opslaan “ca.crt”, “klant1.crt”, “client1.sleutel” waar je maar wilt. In ons geval staan ​​ze in deze map “c:\Program Files\OpenVPN\sleutels”, en we modereren het configuratiebestand “klant.ovpn” in de “c:\Programmabestanden\OpenVPN\config” directory.

Laten we nu de client configureren. Open het bestand “c:\Program Files\OpenVPN\config\client.ovpn” in een teksteditor en bewerk de volgende regels:

#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

Laat de rest onaangeroerd.

Sla het bestand op en start de clienttoepassing “OpenVPN-GUI”.

VPN-installatie voltooid

Klik met de rechtermuisknop op het app-pictogram in de taakbalk en kies "Connect"Als de verbinding succesvol is, wordt het pictogram groen.

Controleer via een onlinedienst of uw openbare IP-adres is gewijzigd en nu hetzelfde is als het IP-adres van de server.

❮ Vorig artikel FTP-server instellen
Volgend artikel ❯ Hoe u Wireguard VPN op uw server instelt

Vraag ons over VPS

Wij staan ​​altijd klaar om uw vragen te beantwoorden, op elk moment van de dag of nacht.