Kunskapsbas Enkla instruktioner för att arbeta med Profitserver-tjänsten
Huvudsida Kunskapsbas VPN-serverinstallation på Linux: PPTP eller OpenVPN?

VPN-serverinstallation på Linux: PPTP eller OpenVPN?


Nuförtiden blir VPN-tekniken mer populär. Vanliga användare använder VPN för att säkert komma åt Internet. Det hjälper också till att komma runt lokalt blockerade webbplatser och tjänster och skydda mot eventuellt externt skadligt beteende. När du ansluter till en VPN-server finns det en säker tunnel mellan din dator och servern som inte kan nås utifrån, så VPN-servern blir din internetåtkomstpunkt. Det finns massor av VPN-tjänster där ute, både gratis och betalda, men om de av någon anledning inte fungerar för dig kan du alltid konfigurera din egen VPN-server.

För att köra din oun VPN bör du hyra VPS-server. Det finns olika program som låter dig skapa en VPN-anslutning. Det skiljer sig från varandra genom operativsystem som stöds och algoritmer som används. Vi kommer att ta en titt på två oberoende metoder för att konfigurera en VPN-server. Den första är baserad på PPTP-protokoll som redan anses vara föråldrat och inte säkert men är väldigt lätt att konfigurera. Den andra använder modern och säker programvara OpenVPN men kräver installation av en tredjepartsklientapplikation och en mer grundlig installationsprocess.

I vår testmiljö kommer vi att använda en virtuell server som drivs av Ubuntu Server 18.04. En brandvägg kommer att stängas av på servern eftersom dess konfiguration förtjänar en separat artikel. Vi kommer att beskriva installationsprocessen på Windows 10.

FÖRBEREDNING

Oavsett vilken VPN-server du väljer kommer internetåtkomsten att ställas in med hjälp av operativsystemet integrerat. För att öppna Internetåtkomst via ett externt tjänstegränssnitt måste du tillåta vidarebefordran av paket mellan gränssnitten och konfigurera nätverksadressöversättning.

Öppna filen för att aktivera vidarebefordran av paket "/etc/sysctl.conf" och ändra "net.ipv4.ip_forward" parametervärde in 1.

aktivera vidarebefordran av paket för VPN-installation

För att tillämpa ändringar utan att starta om datorn, kör kommandot

sudo sysctl -p /etc/sysctl.conf

Nätverksadressöversättning konfigureras med hjälp av iptables. Kontrollera först namnet på ditt externa nätverksgränssnitt som kör kommandot "ip-länk visa" - du kommer att behöva det i nästa steg. Vårt namn är "ens3".

ip länkshow

Aktivera nätverksadressöversättning vid ditt externa gränssnitt för alla lokala nätverksnoder.

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

Observera att du måste ange det riktiga namnet på din servers gränssnitt, det kan skilja sig från vårt.

Som standard återställs alla regler skapade av iptables efter omstart av servern. För att förhindra det, använd "iptables-persistent" nytta. Installera följande paket:

sudo apt install iptables-persistent

Vid någon tidpunkt under installationsprocessen kommer du att se ett konfigurationsfönster som föreslår att du sparar nuvarande iptables-regler. Eftersom reglerna redan är definierade är det bara att bekräfta och klicka "Yes" dubbelt. Sedan nu kommer reglerna att tillämpas automatiskt efter omstart av servern.

Aktivera adressöversättning

PPTP-server

Server konfiguration

Installera paketet:

sudo apt install pptpd

Öppna filen efter att installationen är klar "/etc/pptpd.conf" i valfri textredigerare och redigera den så här:

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

Efter det, redigera filen "/etc/ppp/pptpd-options". De flesta parametrarna är inställda 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ästa steg måste du skapa en post för klientanslutningar. Låt oss säga att du vill lägga till en användare "vpuser" med lösenord "1" och tillåta dynamisk adressering för honom. Öppna filen "/etc/ppp/chap-secrets" och lägg till följande rad med användarens parametrar i slutet av filen:

vpnuser pptpd 1 *

"pptpd" värde är namnet på tjänsten som vi angav i filen "pptpd-alternativ". Istället för "*" du kan ange en fast IP-adress. I resultatet, filen "chap-hemligheter" ska se så här ut:

VPN-serverinställningar

För att tillämpa inställningarna återställ pptpd tjänsten och lägg till den i autoloading.

sudo systemctl restart pptpd
sudo systemctl enable pptpd

Serverkonfigurationen är klar.

Klientkonfiguration

Öppet "Start" - "Inställningar" - Nätverk & Internet - "VPN" och klicka "Lägg till en VPN-anslutning"

Konfigurera klient för VPN-anslutning

Ange anslutningsparametrarna i fönstret som öppnas och klicka "Spara"

  • VPN-leverantör: "Windows (inbyggt)"
  • Anslutningsnamn: "vpn_connect" (du kan välja vilket namn som helst)
  • Servernamn eller adress: (ange serverns externa IP-adress)
  • VPN-typ: "Auto"
  • Typ av inloggningsinformation: "Användarnamn och lösenord"
  • Användarnamn: vpuser (namnet anges i "chap-secrets"-filen på servern)
  • Lösenord: 1 (som i "chap-secrets"-filen)

När du har sparat parametrarna ser du den nya VPN-anslutningen i fönstret. Vänsterklicka på anslutningen och välj "Anslut". I fallet med en lyckad anslutning kommer du att se "Ansluten" status.

Lägger till VPN-anslutning

I Alternativen hittar du interna adresser till klienten och servern. Fält "Destinationsadress" visar den externa serveradressen.

Hur man ställer in en VPN-server själv

När den är ansluten, serverns interna IP-adress, 172.16.0.1 i vårt fall blir standardgatewayen för alla utgående paket.

Kontrollera extern IP-adress

Genom att använda vilken onlinetjänst som helst kan du se till att datorns externa IP-adress nu är densamma som din VPN-servers IP-adress.

OpenVPN-server

Server konfiguration

Låt oss främja behörighetsnivån för den nuvarande användaren eftersom vi behöver root-åtkomst för vår vidare konfiguration.

sudo -s

Installera alla nödvändiga paket. Vi kommer att behöva "Easy-RSA" paket för att hantera krypteringsnycklar.

apt install openvpn easy-rsa iptables-persistent

Tillåt inkommande anslutningar på port 1194 via UDP-protokollet och tillämpa iptables-regler.

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

sudo netfilter-persistent save

Skapa en katalog med kopierade filer från paketet "Easy-RSA" och navigera till den.

make-cadir ~/openvpn

cd ~/openvpn

Generera infrastruktur för offentlig nyckel (PKI).

./easyrsa init-pki

Generera rotcertifikatet för certifikatutfärdaren (CA).

./easyrsa build-ca

Under skapandeprocessen blir du ombedd att ange och komma ihåg ett lösenord. Du måste också svara på frågor och ange information om nyckelägaren. Du kan behålla standardvärdena inom hakparenteser. Tryck på "Enter" för att slutföra inmatningen.

Generera en privat nyckel och en certifikatförfrågan. Ange ett godtyckligt namn som argument; i vårt fall är det "vpn-server".

./easyrsa gen-req vpn-server nopass

Lämna standardvärdet för Vanligt namn.

Signera den genererade servercertifikatbegäran.

./easyrsa sign-req server vpn-server

I det här steget, svara "ja" för att bekräfta signaturen och ange sedan lösenordet som skapades under genereringen av rotcertifikatet.

Generera Diffie-Hellman-parametrar. Dessa parametrar används för säkert nyckelutbyte mellan servern och klienten.

./easyrsa gen-dh

Alla nödvändiga filer har genererats. Nu skapar vi en "keys"-mapp i OpenVPN:s arbetskatalog för att lagra nycklarna och kopierar de skapade filerna dit.

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

Konfigurera NAT med hjälp av iptables regler. Skapa en fil med namnet nat och öppna den för redigering i /etc/openvpn/ katalog.

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

Spara filen och gör den körbar.

sudo chmod 755 /etc/openvpn/nat

Kopiera serverkonfigurationsmallen.

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

Öppna filen "/etc/openvpn/server.conf" för redigering, se till att den innehåller följande rader och redigera dem om det behövs:

#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

Aktivera vidarebefordran av trafik på servern.

sudo sysctl -w net.ipv4.ip_forward=1

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

Starta OpenVPN för att tillämpa konfigurationen.

systemctl restart openvpn@server

Serverkonfigurationen är klar!

Klientkonfiguration

Gå till den officiella webbplatsen för OpenVPN "https://openvpn.net", gå till "COMMUNITY" sektion.

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

Scrolla ner och ladda ner installationsprogrammet för din operativsystemversion. I vårt fall är det Windows 11 ARM64.

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

Installera programmet och lämna alla parametrar som standard.

I nästa steg måste du förbereda följande fil på servern och överföra dem till klientdatorn:

  • offentliga och privata nycklar;
  • kopia av certifieringscentrets nyckel;
  • konfigurationsfilmall.

Anslut till servern, höj behörigheterna och navigera till vår skapade katalog "~/openvpn".

sudo -s

cd ~/openvpn

Generera en privat nyckel och en certifikatförfrågan för klienten. Ange ett godtyckligt namn som argument; i vårt fall är det "klient1".

./easyrsa gen-req client1 nopass

Ange lösenordet vi angav när vi skapade rotcertifikatet och lämna värdet för Common Name som standard.

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

Signera den genererade klientcertifikatbegäran.

./easyrsa sign-req client client1

I det här steget, svara "ja" för att bekräfta signaturen och ange sedan lösenordet som skapades under genereringen av rotcertifikatet.

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

För enkelhetens skull skapar vi en mapp med namnet 'client1' i hemkatalogen och kopierar alla filer som är avsedda att överföras till klientdatorn till den.

mkdir ~/client1

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

Kopiera klientkonfigurationsfilmallen till samma katalog. Ändra filändelsen till ".ovpn" medan du kopierar.

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

Byt ägare till katalogen och alla filer "~/klient1/" för att kunna distribuera dem till kunden. Låt oss göra "mihail" ägaren i vårt fall.

chown -R mihail:mihail ~/client1

Gå till klientdatorn och kopiera innehållet i "~/klient1/" mapp. Det kan du göra med hjälp av "PSCP" verktyg, som går med Putty.

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

Du kan lagra nyckelfiler "ca.crt", "client1.crt", "klient1.nyckel" var du vill. I vårt fall finns de i den här mappen “c:\Program Files\OpenVPN\keys”, och vi modifierar konfigurationsfilen "client.ovpn" i "c:\Program Files\OpenVPN\config" katalog.

Låt oss nu börja konfigurera klienten. Öppna filen "c:\Program Files\OpenVPN\config\client.ovpn" i en textredigerare och redigera följande rader:

#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

Lämna resten orörd.

Spara filen och starta klientapplikationen "OpenVPN GUI".

VPN-installationen avslutad

Högerklicka på appikonen i aktivitetsfältet och välj "Anslut". Om anslutningen lyckas blir ikonen grön.

Använd valfri onlinetjänst för att se till att din offentliga IP-adress har ändrats och nu är densamma som serverns IP-adress.

❮ Föregående artikel FTP-serverinställningar
Nästa artikel ❯ Hur man ställer in Wireguard VPN på din server

Fråga oss om VPS

Vi är alltid redo att svara på dina frågor när som helst på dygnet.