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 ditt eget VPN bör du hyra en VPS-server . Det finns olika programvaror som låter dig skapa en VPN-anslutning. De skiljer sig från varandra i vilka operativsystem som stöds och vilka algoritmer som används. Vi ska titta på två oberoende metoder för att konfigurera en VPN-server. Den första är baserad på PPTP-protokollet som redan anses vara föråldrat och osäkert men är väldigt enkelt 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.

För att aktivera paketvidarebefordran, öppna filen "/etc/sysctl.conf" och ändra parametervärdet "net.ipv4.ip_forward" till 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 genom att köra kommandot "ip link show" - du behöver 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 som skapas av iptables efter att servern startats om. För att förhindra detta, använd verktyget "iptables-persistent" . 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 aktuella iptables-regler. Eftersom reglerna redan är definierade, bekräfta bara och klicka på "Ja" två gånger. Reglerna kommer nu att tillämpas automatiskt efter att servern startats om.

Aktivera adressöversättning

PPTP-server

Server konfiguration

Installera paketet:

sudo apt install pptpd

När installationen är klar, öppna filen "/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

Redigera därefter 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 behöver du skapa en post för klientanslutningar. Låt oss säga att du vill lägga till användaren "vpnuser" med lösenordet "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 *

Värdet ”pptpd” är namnet på tjänsten som vi angav i filen ”pptpd-options” . Istället för ”*” kan du ange en fast IP-adress. I resultatet bör filen ”chap-secrets” se ut så här:

VPN-serverinställningar

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

sudo systemctl restart pptpd
sudo systemctl enable pptpd

Serverkonfigurationen är klar.

Klientkonfiguration

Öppna ”Start” - ”Inställningar” - ”Nätverk och internet” - ”VPN” och klicka på ”Lägg till en VPN-anslutning”.

Konfigurera klient för VPN-anslutning

Ange anslutningsparametrarna i det öppnade fönstret och klicka på "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" . Om anslutningen lyckas ser du statusen "Ansluten" .

Lägger till VPN-anslutning

I alternativen hittar du klientens och serverns interna adresser. Fältet "Destinationsadress" visar den externa serveradressen.

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

När den är ansluten blir serverns interna IP-adress, 172.16.0.1 i vårt fall, standardgateway 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 behöver paketet "Easy-RSA" 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 OpenVPNs officiella webbplats “ https://openvpn.net ” och gå till avsnittet “COMMUNITY”.

Заходим на официальный сайт проекта "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 klientkonfigurationsfilsmallen 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

Ändra ägaren till katalogen och alla filer "~/client1/" för att kunna distribuera dem till klienten. Låt oss göra "mihail" till ägaren i vårt fall.

chown -R mihail:mihail ~/client1

Gå till klientdatorn och kopiera innehållet i mappen "~/client1/" . Du kan göra det med hjälp av verktyget "PSCP" , som följer med Putty.

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

Du kan lagra nyckelfilerna "ca.crt" , "client1.crt" och "client1.key" var du vill. I vårt fall finns de i mappen "c:\Program Files\OpenVPN\keys" , och vi lägger konfigurationsfilen "client.ovpn" i katalogen "c:\Program Files\OpenVPN\config".

Nu ska vi 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 klientprogrammet "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.