Vidensdatabase Enkle instruktioner til at arbejde med Profitserver-tjenesten
Main Vidensdatabase VPN-serveropsætning på Linux: PPTP eller OpenVPN?

VPN-serveropsætning på Linux: PPTP eller OpenVPN?


I dag bliver VPN-teknologi mere populær. Almindelige brugere bruger VPN til sikker adgang til internettet. Det hjælper også med at omgå lokalt blokerede websteder og tjenester og beskytter mod mulig ekstern ondsindet adfærd. Når du opretter forbindelse til en VPN-server, er der en sikker tunnel mellem din computer og serveren, som ikke kan tilgås udefra, så VPN-serveren bliver dit internetadgangspunkt. Der er masser af VPN-tjenester derude, både gratis og betalte, men hvis de af en eller anden grund ikke virker for dig, kan du altid konfigurere din egen VPN-server.

For at køre din egen VPN, bør du leje en VPS-server . Der findes forskellige softwareprogrammer, der giver dig mulighed for at oprette en VPN-forbindelse. De adskiller sig fra hinanden i de understøttede operativsystemer og de anvendte algoritmer. Vi vil se på to uafhængige tilgange til at konfigurere en VPN-server. Den første er baseret på PPTP-protokollen, der allerede betragtes som forældet og ikke sikker, men som er meget nem at konfigurere. Den anden bruger moderne og sikker software, OpenVPN, men kræver installation af en tredjepartsklientapplikation og en mere grundig opsætningsproces.

I vores testmiljø vil vi bruge en virtuel server drevet af Ubuntu Server 18.04. En firewall vil blive slukket på serveren, fordi dens konfiguration fortjener en separat artikel. Vi vil beskrive opsætningsprocessen på Windows 10.

Forberedelse

Uanset hvilken VPN-server du vælger, vil internetadgangen blive sat op ved hjælp af integreret hjælp af operativsystemet. For at åbne internetadgang via en ekstern servicegrænseflade skal du tillade pakkevideresendelse mellem grænsefladerne og konfigurere netværksadresseoversættelse.

For at aktivere pakkevideresendelse skal du åbne filen “/etc/sysctl.conf” og ændre parameterværdien “net.ipv4.ip_forward” til 1.

slå videresendelse af pakker til for VPN-opsætning

For at anvende ændringer uden at genstarte computeren skal du køre kommandoen

sudo sysctl -p /etc/sysctl.conf

Netværksadresseoversættelse konfigureres ved hjælp af iptables . Først skal du kontrollere navnet på din eksterne netværksgrænseflade ved at køre kommandoen "ip link show" - du skal bruge den i næste trin. Vores navn er "ens3".

ip link viser

Aktiver netværksadresseoversættelse på din eksterne grænseflade for alle lokale netværksknuder.

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

Bemærk, at du skal angive det rigtige navn på din servers grænseflade, det kan være anderledes end vores.

Som standard nulstilles alle regler oprettet af iptables efter genstart af serveren. For at forhindre dette skal du bruge værktøjet "iptables-persistent" . Installer følgende pakke:

sudo apt install iptables-persistent

På et tidspunkt under installationsprocessen vil du se et konfigurationsvindue, der foreslår, at du gemmer de nuværende iptables-regler. Da reglerne allerede er defineret, skal du blot bekræfte og klikke på "Ja" to gange. Reglerne vil nu automatisk blive anvendt, når serveren genstartes.

Slå adresseoversættelse til

PPTP -server

Server konfiguration

Installer pakken:

sudo apt install pptpd

Når installationen er færdig, skal du åbne filen “/etc/pptpd.conf” i en hvilken som helst teksteditor og redigere den således:

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

Derefter skal du redigere filen “/etc/ppp/pptpd-options” . De fleste parametre er konfigureret som standard.

#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

I næste trin skal du oprette en post for klientforbindelser. Lad os sige, at du vil tilføje brugeren “vpnuser” med adgangskoden “1” og tillade dynamisk adressering for ham. Åbn filen “/etc/ppp/chap-secrets” og tilføj følgende linje med brugerens parametre i slutningen af ​​filen:

vpnuser pptpd 1 *

Værdien "pptpd" er navnet på den tjeneste, vi har angivet i filen "pptpd-options" . I stedet for "*" kan du angive en fast IP-adresse. I resultatet skal filen "chap-secrets" se sådan ud:

VPN-server opsætning

For at anvende indstillingerne skal du nulstille pptpd- tjenesten og føje den til automatisk indlæsning.

sudo systemctl restart pptpd
sudo systemctl enable pptpd

Serverkonfigurationen er afsluttet.

Klientkonfiguration

Åbn “Start” - “Indstillinger” - “Netværk og internet” - “VPN” og klik på “Tilføj en VPN-forbindelse”.

Konfigurer klient til VPN-forbindelse

Indtast forbindelsesparametrene i det åbnede vindue, og klik på "Gem".

  • VPN-udbyder: "Windows (indbygget)"
  • Forbindelsesnavn: "vpn_connect" (du kan vælge et hvilket som helst navn)
  • Servernavn eller adresse: (angiv serverens eksterne IP-adresse)
  • VPN-type: "Auto"
  • Type log-in info: "Brugernavn og adgangskode"
  • Brugernavn: vpbruger (navn angivet i "chap-secrets"-filen på serveren)
  • Adgangskode: 1 (som i "chap-secrets" filen)

Når du har gemt parametrene, vil du se den nye VPN-forbindelse i vinduet. Venstreklik på forbindelsen, og vælg "Opret forbindelse" . Hvis forbindelsen er oprettet, vil du se statussen "Opret forbindelse" .

Tilføjelse af VPN-forbindelse

I indstillingerne finder du klientens og serverens interne adresser. Feltet "Destinationsadresse" viser den eksterne serveradresse.

Sådan opsætter du VPN-serveren selv

Når den er tilsluttet, bliver serverens interne IP-adresse, i vores tilfælde 172.16.0.1 , standardgatewayen for alle udgående pakker.

Tjek ekstern IP-adresse

Ved at bruge enhver onlinetjeneste kan du sikre dig, at computerens eksterne IP-adresse nu er den samme som din VPN-servers IP-adresse.

OpenVPN-server

Server konfiguration

Lad os fremme tilladelsesniveauet for den nuværende bruger, fordi vi skal bruge root-adgang til vores videre konfiguration.

sudo -s

Installer alle de nødvendige pakker. Vi skal bruge "Easy-RSA" -pakken til at administrere krypteringsnøgler.

apt install openvpn easy-rsa iptables-persistent

Tillad indgående forbindelser på port 1194 via UDP-protokollen og anvend iptables-regler.

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

sudo netfilter-persistent save

Opret en mappe med kopierede filer fra “Easy-RSA”-pakken, og naviger til den.

make-cadir ~/openvpn

cd ~/openvpn

Generer offentlig nøgleinfrastruktur (PKI).

./easyrsa init-pki

Generer rodcertifikatet for certifikatautoriteten (CA).

./easyrsa build-ca

Under oprettelsesprocessen bliver du bedt om at angive og huske en adgangskode. Du skal også besvare spørgsmål og indtaste oplysninger om nøgleejeren. Du kan lade standardværdierne i firkantede parenteser stå. Tryk på "Enter" for at afslutte indtastningen.

Generer en privat nøgle og en certifikatanmodning. Angiv et vilkårligt navn som argument; i vores tilfælde er det "vpn-server".

./easyrsa gen-req vpn-server nopass

Lad standardværdien for Common Name være den.

Underskriv den genererede servercertifikatanmodning.

./easyrsa sign-req server vpn-server

I dette trin skal du svare "ja" for at bekræfte signaturen, og derefter indtaste den adgangskode, der blev oprettet under genereringen af rodcertifikatet.

Generer Diffie-Hellman-parametre. Disse parametre bruges til sikker nøgleudveksling mellem serveren og klienten.

./easyrsa gen-dh

Alle nødvendige filer er blevet genereret. Lad os oprette en "keys"-mappe i OpenVPN-arbejdsmappen for at gemme nøglerne og kopiere de oprettede filer dertil.

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

Konfigurer NAT ved hjælp af iptables regler. Opret en fil med navnet nat og åbn den til redigering i /etc/openvpn/ mappe.

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

Gem filen, og gør den eksekverbar.

sudo chmod 755 /etc/openvpn/nat

Kopier serverkonfigurationsskabelonen.

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

Åbn filen “/etc/openvpn/server.conf” til redigering, sørg for at den indeholder følgende linjer, og rediger dem om nødvendigt:

#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ér videresendelse af trafik på serveren.

sudo sysctl -w net.ipv4.ip_forward=1

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

Start OpenVPN for at anvende konfigurationen.

systemctl restart openvpn@server

Serverkonfigurationen er færdig!

Klientkonfiguration

Gå til OpenVPNs officielle hjemmeside “ https://openvpn.net ”, og gå til afsnittet “FÆLLESSKAB”.

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

Rul ned og download installationsprogrammet til din operativsystemversion. I vores tilfælde er det Windows 11 ARM64.

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

Installer applikationen og efterlader alle parametre som standard.

På næste trin skal du forberede følgende fil på serveren og overføre dem til klientcomputeren:

  • offentlige og private nøgler;
  • kopi af nøglen til certificeringscenteret;
  • config fil skabelon.

Opret forbindelse til serveren, forøg privilegier, og naviger til vores oprettede mappe "~/openvpn".

sudo -s

cd ~/openvpn

Generer en privat nøgle og en certifikatanmodning for klienten. Angiv et vilkårligt navn som argument; i vores tilfælde er det "klient1".

./easyrsa gen-req client1 nopass

Indtast den adgangskode, vi angav, da vi oprettede rodcertifikatet, og behold standardværdien for Common Name.

Вводим пароль, который мы устанавливали при создании корневого сертификата и оставляем значение Fælles navn по умолчение.

Underskriv den genererede klientcertifikatanmodning.

./easyrsa sign-req client client1

I dette trin skal du svare "ja" for at bekræfte signaturen, og derefter indtaste den adgangskode, der blev oprettet under genereringen af rodcertifikatet.

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

For nemheds skyld opretter vi en mappe med navnet 'client1' i hjemmemappen og kopierer alle filer, der skal overføres til klientcomputeren, ind i den.

mkdir ~/client1

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

Kopier klientkonfigurationsfilskabelonen til den samme mappe. Skift filtypenavnet til ".ovpn" under kopieringen.

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

Skift ejeren af ​​mappen og alle filerne “~/client1/” for at kunne distribuere dem til klienten. Lad os gøre “mihail” til ejeren i vores tilfælde.

chown -R mihail:mihail ~/client1

Gå til klientcomputeren og kopier indholdet af mappen “~/client1/” . Du kan gøre det ved hjælp af værktøjet “PSCP” , der følger med Putty.

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

Du kan gemme nøglefilerne “ca.crt” , “client1.crt” , “client1.key”, hvor du vil. I vores tilfælde er de i denne mappe “c:\Program Files\OpenVPN\keys” , og vi gemmer konfigurationsfilen “client.ovpn” i mappen “c:\Program Files\OpenVPN\config”.

Lad os nu gå i gang med at konfigurere klienten. Åbn filen “c:\Program Files\OpenVPN\config\client.ovpn” i en teksteditor og rediger følgende linjer:

#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

Lad resten stå urørt.

Gem filen, og start klientprogrammet “OpenVPN GUI”.

VPN-opsætning afsluttet

Højreklik på appikonet i proceslinjen, og vælg "Opret forbindelse" . Hvis forbindelsen oprettes, bliver ikonet grønt.

Brug en hvilken som helst onlinetjeneste til at sikre, at din offentlige IP-adresse er ændret og nu er den samme som serverens IP-adresse.

❮ Forrige artikel FTP-server opsætning
Næste artikel ❯ Sådan konfigurerer du Wireguard VPN på din server

Spørg os om VPS

Vi er altid klar til at besvare dine spørgsmål når som helst på dagen eller natten.