Baza znanja Preprosta navodila za delo s storitvijo Profitserver
Glavne Baza znanja Nastavitev strežnika VPN v sistemu Linux: PPTP ali OpenVPN?

Nastavitev strežnika VPN v sistemu Linux: PPTP ali OpenVPN?


Dandanes je tehnologija VPN vse bolj priljubljena. Navadni uporabniki uporabljajo VPN za varen dostop do interneta. Pomaga tudi obiti lokalno blokirana spletna mesta in storitve ter zaščititi pred morebitnim zunanjim zlonamernim vedenjem. Ko se povezujete s strežnikom VPN, je med vašim računalnikom in strežnikom varen tunel, do katerega ni mogoče dostopati od zunaj, zato strežnik VPN postane vaša internetna dostopna točka. Na voljo je veliko storitev VPN, tako brezplačnih kot plačljivih, a če vam iz nekega razloga ne delujejo, lahko vedno konfigurirate svoj strežnik VPN.

Za zagon lastnega VPN-ja morate najeti VPS strežnik . Obstaja različna programska oprema, ki vam omogoča ustvarjanje VPN povezave. Razlikujejo se po podprtih operacijskih sistemih in uporabljenih algoritmih. Ogledali si bomo dva neodvisna pristopa za nastavitev VPN strežnika. Prvi temelji na protokolu PPTP, ki že velja za zastarelega in nevarnega, vendar ga je zelo enostavno konfigurirati. Drugi uporablja sodobno in varno programsko opremo OpenVPN, vendar zahteva namestitev odjemalske aplikacije drugega ponudnika in temeljitejši postopek nastavitve.

V našem testnem okolju bomo uporabili virtualni strežnik, ki ga poganja Ubuntu Server 18.04. Na strežniku bo izklopljen požarni zid, ker si njegova konfiguracija zasluži poseben članek. Opisali bomo postopek namestitve v sistemu Windows 10.

Priprava

Ne glede na to, kateri strežnik VPN izberete, bo dostop do interneta nastavljen z integriranimi sredstvi operacijskega sistema. Če želite odpreti dostop do interneta prek vmesnika zunanje storitve, morate omogočiti posredovanje paketov med vmesnikoma in konfigurirati prevajanje omrežnega naslova.

Za vklop posredovanja paketov odprite datoteko »/etc/sysctl.conf« in spremenite vrednost parametra »net.ipv4.ip_forward« v 1.

vklopite posredovanje paketov za nastavitev VPN

Če želite uveljaviti spremembe brez ponovnega zagona računalnika, zaženite ukaz

sudo sysctl -p /etc/sysctl.conf

Prevajanje omrežnih naslovov se konfigurira s pomočjo iptables . Najprej preverite ime vašega zunanjega omrežnega vmesnika z ukazom »ip link show« – potrebovali ga boste v naslednjem koraku. Naše ime je »ens3«.

Ip link show

Omogočite prevod omrežnih naslovov na svojem zunanjem vmesniku za vsa vozlišča lokalnega omrežja.

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

Upoštevajte, da morate določiti pravo ime vmesnika vašega strežnika, lahko se razlikuje od našega.

Privzeto se vsa pravila, ki jih ustvari iptables, po ponovnem zagonu strežnika ponastavijo. Da bi to preprečili, uporabite pripomoček »iptables-persistent« . Namestite naslednji paket:

sudo apt install iptables-persistent

Med namestitvijo se bo na neki točki prikazalo okno za konfiguracijo, ki vam bo predlagalo shranjevanje trenutnih pravil iptables. Ker so pravila že definirana, jih le potrdite in dvakrat kliknite »Da« . Pravila se bodo zdaj po ponovnem zagonu strežnika samodejno uporabila.

Vklopite prevajanje naslovov

PPTP strežnik

Konfiguracija strežnika

Namestite paket:

sudo apt install pptpd

Po končani namestitvi odprite datoteko »/etc/pptpd.conf« v poljubnem urejevalniku besedil in jo uredite takole:

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

Nato uredite datoteko »/etc/ppp/pptpd-options« . Večina parametrov je privzeto nastavljenih.

#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

Na naslednji stopnji boste morali ustvariti zapis za odjemalske povezave. Recimo, da želite dodati uporabnika »vpnuser« z geslom »1« in mu dovoliti dinamično naslavljanje. Odprite datoteko »/etc/ppp/chap-secrets« in na konec datoteke dodajte naslednjo vrstico s parametri uporabnika:

vpnuser pptpd 1 *

Vrednost »pptpd« je ime storitve, ki smo jo določili v datoteki »pptpd-options« . Namesto »*« lahko določite fiksni IP-naslov. Rezultat bi morala biti datoteka »chap-secrets« :

Nastavitev strežnika VPN

Če želite uporabiti nastavitve, ponastavite storitev pptpd in jo dodajte v samodejno nalaganje.

sudo systemctl restart pptpd
sudo systemctl enable pptpd

Konfiguracija strežnika je končana.

Konfiguracija odjemalca

Odprite »Start« - »Nastavitve« - »Omrežje in internet« - »VPN« in kliknite »Dodaj povezavo VPN«.

Nastavite odjemalca za povezavo VPN

V odprto okno vnesite parametre povezave in kliknite »Shrani«.

  • Ponudnik VPN: »Windows (vgrajeno)«
  • Ime povezave: “vpn_connect” (izberete lahko poljubno ime)
  • Ime ali naslov strežnika: (navedite zunanji naslov IP strežnika)
  • Vrsta VPN: "Samodejno"
  • Vrsta podatkov za prijavo: “Uporabniško ime in geslo”
  • Uporabniško ime: vpnuser (ime je navedeno v datoteki »chap-secrets« na strežniku)
  • geslo: 1 (kot v datoteki »chap-secrets«)

Po shranjevanju parametrov boste v oknu videli novo VPN povezavo. Kliknite povezavo z levo tipko miške in izberite »Poveži se« . V primeru uspešne povezave boste videli stanje »Povezano« .

Dodajanje povezave VPN

V Možnostih boste našli interne naslove odjemalca in strežnika. Polje »Ciljni naslov« prikazuje naslov zunanjega strežnika.

Kako sami nastaviti strežnik VPN

Ko je vzpostavljena povezava, notranji IP-naslov strežnika, v našem primeru 172.16.0.1 , postane privzeti prehod za vse odhodne pakete.

Preverite zunanji naslov IP

S katero koli spletno storitvijo se lahko prepričate, da je zunanji naslov IP računalnika zdaj enak naslovu IP vašega strežnika VPN.

Strežnik OpenVPN

Konfiguracija strežnika

Povečajmo raven dovoljenj trenutnega uporabnika, ker bomo za nadaljnjo konfiguracijo potrebovali korenski dostop.

sudo -s

Namestite vse potrebne pakete. Za upravljanje šifrirnih ključev bomo potrebovali paket »Easy-RSA« .

apt install openvpn easy-rsa iptables-persistent

Dovoli dohodne povezave na vratih 1194 prek protokola UDP in uporabi pravila iptables.

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

sudo netfilter-persistent save

Ustvarite imenik s kopiranimi datotekami iz paketa »Easy-RSA« in se pomaknite vanj.

make-cadir ~/openvpn

cd ~/openvpn

Ustvari infrastrukturo javnih ključev (PKI).

./easyrsa init-pki

Ustvarite korensko potrdilo overitelja potrdil (CA).

./easyrsa build-ca

Med postopkom ustvarjanja boste pozvani, da nastavite in si zapomnite geslo. Prav tako boste morali odgovoriti na vprašanja in vnesti podatke o lastniku ključa. Privzete vrednosti, navedene v oglatih oklepajih, lahko pustite privzete. Za dokončanje vnosa pritisnite »Enter«.

Ustvarite zasebni ključ in zahtevo za potrdilo. Kot argument navedite poljubno ime; v našem primeru je to »vpn-strežnik«.

./easyrsa gen-req vpn-server nopass

Vrednost Common Name pustite privzeto.

Podpišite ustvarjeno zahtevo za strežniško potrdilo.

./easyrsa sign-req server vpn-server

V tem koraku odgovorite z »da«, da potrdite podpis, nato pa vnesite geslo, ki je bilo ustvarjeno med ustvarjanjem korenskega potrdila.

Generirajte Diffie-Hellmanove parametre. Ti parametri se uporabljajo za varno izmenjavo ključev med strežnikom in odjemalcem.

./easyrsa gen-dh

Vse potrebne datoteke so bile ustvarjene. V delovnem imeniku OpenVPN ustvarimo mapo »keys«, kamor bomo shranili ključe, in tja kopirali ustvarjene datoteke.

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

Konfigurirajte NAT z uporabo iptables pravila. Ustvarite datoteko z imenom nat in ga odprite za urejanje v /etc/openvpn/ imenik.

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

Shranite datoteko in jo naredite izvedljivo.

sudo chmod 755 /etc/openvpn/nat

Kopirajte predlogo konfiguracije strežnika.

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

Odprite datoteko »/etc/openvpn/server.conf« za urejanje, preverite, ali vsebuje naslednje vrstice, in jih po potrebi uredite:

#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

Omogočite posredovanje prometa na strežniku.

sudo sysctl -w net.ipv4.ip_forward=1

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

Zaženite OpenVPN, da uporabite konfiguracijo.

systemctl restart openvpn@server

Konfiguracija strežnika je končana!

Konfiguracija odjemalca

Pojdite na uradno spletno stran OpenVPN » https://openvpn.net « in pojdite v razdelek »SKUPNOST«.

Odprite uradno spletno mesto projekta “https://openvpn.net”, pojdite v razdelek “SKUPNOST”.

Pomaknite se navzdol in prenesite namestitveni program za vašo različico operacijskega sistema. V našem primeru je to Windows 11 ARM64.

prolistyvaem navzdol in skačivaem namestitev za svojo različico operacijskega sistema. V našem primeru je Windows 11 ARM64.

Namestite aplikacijo in pustite vse parametre privzete.

Na naslednji stopnji boste morali na strežniku pripraviti naslednjo datoteko in jo prenesti v odjemalski računalnik:

  • javni in zasebni ključi;
  • kopija ključa certifikacijskega centra;
  • predloga konfiguracijske datoteke.

Povežite se s strežnikom, povišajte privilegije in se pomaknite do ustvarjenega imenika. "~/openvpn".

sudo -s

cd ~/openvpn

Za odjemalca ustvarite zasebni ključ in zahtevo za potrdilo. Kot argument navedite poljubno ime; v našem primeru je to »odjemalec1«.

./easyrsa gen-req client1 nopass

Vnesite geslo, ki smo ga nastavili pri ustvarjanju korenskega potrdila, in pustite vrednost Common Name privzeto.

Vnesite geslo, ki smo ga namestili pri ustvarjanju kornevnega certifikata in dodajamo privzeto vrednost Common Name.

Podpišite ustvarjeno zahtevo za odjemalsko potrdilo.

./easyrsa sign-req client client1

V tem koraku odgovorite z »da«, da potrdite podpis, nato pa vnesite geslo, ki je bilo ustvarjeno med ustvarjanjem korenskega potrdila.

Na tem koraku odgovorite "da" za potrditev podpisov, potem ko vnesete geslo, ki je bilo ustvarjeno pri ustvarjanju kornevnega certifikata.

Za lažjo uporabo ustvarimo v domačem imeniku mapo z imenom 'client1' in vanjo kopirajmo vse datoteke, namenjene prenosu na odjemalski računalnik.

mkdir ~/client1

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

Kopirajte predlogo konfiguracijske datoteke odjemalca v isti imenik. Med kopiranjem spremenite končnico datoteke v ».ovpn« .

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

Spremenite lastnika imenika in vseh datotek »~/client1/« , da jih boste lahko distribuirali odjemalcu. V našem primeru naj bo lastnik »mihail« .

chown -R mihail:mihail ~/client1

Pojdite na odjemalski računalnik in kopirajte vsebino mape »~/client1/« . To lahko storite s pomočjo pripomočka »PSCP« , ki je del programa Putty.

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

Ključne datoteke »ca.crt« , »client1.crt« in »client1.key« lahko shranite kamor koli želite. V našem primeru so v mapi »c:\Program Files\OpenVPN\keys« , konfiguracijsko datoteko »client.ovpn« pa shranimo v imenik »c:\Program Files\OpenVPN\config«.

Zdaj pa se lotimo konfiguracije odjemalca. V urejevalniku besedil odprite datoteko »c:\Program Files\OpenVPN\config\client.ovpn« in uredite naslednje vrstice:

#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

Ostalo pustite nedotaknjeno.

Shranite datoteko in zaženite odjemalsko aplikacijo »OpenVPN GUI«.

Nastavitev VPN je končana

Z desno miškino tipko kliknite ikono aplikacije v opravilni vrstici in izberite »Poveži se« . Če je povezava uspešna, se ikona obarva zeleno.

S katero koli spletno storitvijo se prepričajte, da se je vaš javni naslov IP spremenil in je zdaj enak naslovu IP strežnika.

❮ Prejšnji članek Nastavitev strežnika FTP
Naslednji članek ❯ Kako nastaviti Wireguard VPN na vašem strežniku

Vprašajte nas o VPS

Vedno smo pripravljeni odgovoriti na vaša vprašanja kadarkoli podnevi ali ponoči.