Kunnskapsbase Enkle instruksjoner for å jobbe med Profitserver-tjenesten
Hoved Kunnskapsbase VPN-serveroppsett på Linux: PPTP eller OpenVPN?

VPN-serveroppsett på Linux: PPTP eller OpenVPN?


Nå for tiden blir VPN-teknologi mer populær. Vanlige brukere bruker VPN for sikker tilgang til Internett. Det hjelper også å komme seg rundt lokalt blokkerte nettsteder og tjenester og beskytte mot mulig ekstern ondsinnet oppførsel. Når du kobler til en VPN-server, er det en sikker tunnel mellom datamaskinen og serveren som ikke kan nås utenfra, så VPN-serveren blir ditt Internett-tilgangspunkt. Det er mange VPN-tjenester der ute, både gratis og betalte, men hvis de av en eller annen grunn ikke fungerer for deg, kan du alltid konfigurere din egen VPN-server.

For å kjøre oun VPN, bør du leie VPS-server. Det er forskjellig programvare som lar deg opprette en VPN-tilkobling. Det skiller seg fra hverandre med operativsystemer som støttes og algoritmer som brukes. Vi vil ta en titt på to uavhengige tilnærminger for å sette opp en VPN-server. Den første er basert på PPTP-protokollen som allerede anses som foreldet og ikke sikker, men som er veldig enkel å konfigurere. Den andre bruker moderne og sikker programvare OpenVPN, men krever installasjon av en tredjeparts klientapplikasjon og en mer grundig oppsettprosess.

I vårt testmiljø skal vi bruke en virtuell server drevet av Ubuntu Server 18.04. En brannmur vil bli slått av på serveren fordi konfigurasjonen fortjener en egen artikkel. Vi vil beskrive installasjonsprosessen på Windows 10.

Forberedelse

Uansett hvilken VPN-server du velger, vil Internett-tilgangen settes opp ved hjelp av integrert operativsystem. For å åpne Internett-tilgang gjennom et eksternt tjenestegrensesnitt må du tillate pakkevideresending mellom grensesnittene og konfigurere nettverksadresseoversettelse.

Åpne filen for å slå på pakkevideresending "/etc/sysctl.conf" og endre «net.ipv4.ip_forward» parameterverdi inn 1.

slå på videresending av pakker for VPN-oppsett

For å bruke endringer uten å starte datamaskinen på nytt, kjør kommandoen

sudo sysctl -p /etc/sysctl.conf

Nettverksadresseoversettelse konfigureres ved hjelp av iptables. Kontroller først navnet på det eksterne nettverksgrensesnittet som kjører kommandoen "ip-link show" - du trenger det på neste trinn. Vårt navn er "ens3".

ip-link vis

Aktiver nettverksadresseoversettelse ved ditt eksterne grensesnitt for alle lokale nettverksnoder.

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

Merk at du må spesifisere det virkelige navnet på serverens grensesnitt, det kan være forskjellig fra vårt.

Som standard blir alle regler opprettet av iptables tilbakestilt etter omstart av serveren. For å forhindre det, bruk "iptables-vedvarende" nytte. Installer følgende pakke:

sudo apt install iptables-persistent

På et tidspunkt under installasjonsprosessen vil du se et konfigurasjonsvindu som foreslår at du lagrer gjeldende iptables-regler. Siden reglene allerede er definert, er det bare å bekrefte og klikke "Ja" to ganger. Siden nå vil reglene bli brukt automatisk etter omstart av serveren.

Slå på adresseoversettelse

PPTP-server

Server konfigurasjon

Installer pakken:

sudo apt install pptpd

Etter at installasjonen er avsluttet, åpne filen "/etc/pptpd.conf" i et hvilket som helst tekstredigeringsprogram og rediger det slik:

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

Etter det, rediger filen "/etc/ppp/pptpd-options". De fleste parametere er satt opp 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

På neste trinn må du opprette en post for klienttilkoblinger. La oss si at du vil legge til en bruker "vpnuser" med passord "1" og tillate dynamisk adressering for ham. Åpne filen "/etc/ppp/chap-secrets" og legg til følgende linje med brukerens parametere på slutten av filen:

vpnuser pptpd 1 *

"pptpd" verdi er navnet på tjenesten vi spesifiserte i filen "pptpd-alternativer". I stedet for "*" du kan angi en fast IP-adresse. I resultatet, filen "chap-hemmeligheter" skal se slik ut:

VPN-serveroppsett

For å bruke innstillingene tilbakestill pptpd tjenesten og legg den til autoloading.

sudo systemctl restart pptpd
sudo systemctl enable pptpd

Serverkonfigurasjonen er fullført.

Klientkonfigurasjon

Open "Start" - “Innstillinger” - Nettverk og Internett - "VPN" og klikk "Legg til en VPN-tilkobling"

Konfigurer klient for VPN-tilkobling

Skriv inn tilkoblingsparametrene i vinduet som åpnes og klikk "Lagre"

  • VPN-leverandør: "Windows (innebygd)"
  • Tilkoblingsnavn: "vpn_connect" (du kan velge hvilket som helst navn)
  • Servernavn eller adresse: (spesifiser den eksterne IP-adressen til serveren)
  • VPN-type: "Auto"
  • Type påloggingsinformasjon: «Brukernavn og passord»
  • Brukernavn: vpbruker (navnet spesifisert i "chap-secrets"-filen på serveren)
  • Passord: 1 (som i "chap-secrets"-filen)

Etter å ha lagret parametere, vil du se den nye VPN-tilkoblingen i vinduet. Venstreklikk på tilkoblingen og velg "Connect". I tilfelle av en vellykket tilkobling, vil du se "Tilkoblet" status.

Legger til VPN-tilkobling

I Alternativer finner du interne adresser til klienten og serveren. Felt "Destinasjonsadresse" viser den eksterne serveradressen.

Slik setter du opp VPN-serveren selv

Når den er tilkoblet, den interne IP-adressen til serveren, 172.16.0.1 i vårt tilfelle blir standard gateway for alle utgående pakker.

Sjekk ekstern IP-adresse

Ved å bruke en hvilken som helst nettjeneste kan du sørge for at den eksterne IP-adressen til datamaskinen nå er den samme som VPN-serverens IP-adresse.

OpenVPN-server

Server konfigurasjon

La oss fremme tillatelsesnivået til den nåværende brukeren fordi for vår videre konfigurasjon trenger vi root-tilgang.

sudo -s

Installer alle nødvendige pakker. Vi trenger "Easy-RSA" pakke for å administrere krypteringsnøkler.

apt install openvpn easy-rsa iptables-persistent

Tillat innkommende tilkoblinger på port 1194 via UDP-protokollen og bruk iptables-regler.

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

sudo netfilter-persistent save

Opprett en katalog med kopierte filer fra «Easy-RSA»-pakken og naviger til den.

make-cadir ~/openvpn

cd ~/openvpn

Generer offentlig nøkkelinfrastruktur (PKI).

./easyrsa init-pki

Generer rotsertifikatet for sertifiseringsinstansen (CA).

./easyrsa build-ca

Under opprettelsesprosessen blir du bedt om å angi og huske et passord. Du må også svare på spørsmål og legge inn informasjon om nøkkeleieren. Du kan la standardverdiene stå i hakeparenteser. Trykk «Enter» for å fullføre inntastingen.

Generer en privat nøkkel og en sertifikatforespørsel. Som argument, angi et vilkårlig navn; i vårt tilfelle er det «vpn-server».

./easyrsa gen-req vpn-server nopass

La standardverdien for Fellesnavn være satt til standardverdien.

Signer den genererte serversertifikatforespørselen.

./easyrsa sign-req server vpn-server

På dette trinnet svarer du «ja» for å bekrefte signaturen, og skriver deretter inn passordet som ble opprettet under genereringen av rotsertifikatet.

Generer Diffie-Hellman-parametere. Disse parameterne brukes for sikker nøkkelutveksling mellom serveren og klienten.

./easyrsa gen-dh

Alle nødvendige filer er generert. La oss opprette en "keys"-mappe i OpenVPN-arbeidskatalogen for å lagre nøklene og kopiere de opprettede filene 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

Konfigurer NAT ved hjelp av iptables regler. Opprett en fil med navnet nat og åpne den for redigering i /etc/openvpn/ katalogen.

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

Lagre filen og gjør den kjørbar.

sudo chmod 755 /etc/openvpn/nat

Kopier serverkonfigurasjonsmalen.

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

Åpne filen "/etc/openvpn/server.conf" for redigering, sørg for at den inneholder følgende linjer, og rediger dem om nødvendig:

#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

Aktiver videresending av trafikk 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 å bruke konfigurasjonen.

systemctl restart openvpn@server

Serverkonfigurasjonen er fullført!

Klientkonfigurasjon

Gå til den offisielle nettsiden til OpenVPN "https://openvpn.net", gå til «FELLESSKAP» seksjon.

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

Bla ned og last ned installasjonsprogrammet for operativsystemversjonen din. I vårt tilfelle er det Windows 11 ARM64.

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

Installer applikasjonen og la alle parametere være som standard.

På neste trinn må du klargjøre følgende fil på serveren og overføre dem til klientdatamaskinen:

  • offentlige og private nøkler;
  • kopi av sertifiseringssenternøkkelen;
  • konfigurasjonsfilmal.

Koble til serveren, hev privilegiene og naviger til den opprettede katalogen vår "~/openvpn".

sudo -s

cd ~/openvpn

Generer en privat nøkkel og en sertifikatforespørsel for klienten. Som argument, angi et vilkårlig navn; i vårt tilfelle er det «klient1».

./easyrsa gen-req client1 nopass

Skriv inn passordet vi anga da vi opprettet rotsertifikatet, og la standardverdien for Fellesnavn være beholdt.

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

Signer den genererte klientsertifikatforespørselen.

./easyrsa sign-req client client1

På dette trinnet svarer du «ja» for å bekrefte signaturen, og skriver deretter inn passordet som ble opprettet under genereringen av rotsertifikatet.

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

For enkelhets skyld, la oss opprette en mappe med navnet 'client1' i hjemmekatalogen og kopiere alle filene som er ment for overføring til klientdatamaskinen, inn i den.

mkdir ~/client1

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

Kopier klientkonfigurasjonsfilmalen til samme katalog. Endre filtypen til ".ovpn" mens du kopierer.

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

Endre eieren av katalogen og alle filene «~/klient1/» for å kunne distribuere dem til klienten. La oss lage "mihail" eieren i vårt tilfelle.

chown -R mihail:mihail ~/client1

Gå til klientdatamaskinen og kopier innholdet i «~/klient1/» mappe. Det kan du gjøre ved hjelp av "PSCP" verktøyet, som følger med Putty.

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

Du kan lagre nøkkelfiler «ca.crt», "klient1.crt", "klient1.nøkkel" hvor du vil. I vårt tilfelle ligger de i denne mappen "c:\Program Files\OpenVPN\keys", og vi moduser konfigurasjonsfilen "client.ovpn" inn "c:\Program Files\OpenVPN\config" katalogen.

La oss nå komme til å konfigurere klienten. Åpne filen "c:\Program Files\OpenVPN\config\client.ovpn" i et tekstredigeringsprogram 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

La resten stå urørt.

Lagre filen og start klientapplikasjonen "OpenVPN GUI".

VPN-oppsett fullført

Høyreklikk på appikonet på oppgavelinjen og velg "Connect". Hvis tilkoblingen er vellykket, blir ikonet grønt.

Bruk en hvilken som helst nettjeneste for å sikre at den offentlige IP-adressen din er endret og nå er den samme som serverens IP-adresse.

❮ Forrige artikkel Slik setter du opp Wireguard VPN på serveren din
Neste artikkel ❯ FTP-serveroppsett

Spør oss om VPS

Vi er alltid klare til å svare på spørsmålene dine når som helst på dagen eller natten.