Biblioteka Paprastos instrukcijos, kaip dirbti su Profitserver paslauga
pagrindinis Biblioteka VPN serverio sąranka „Linux“: PPTP arba OpenVPN?

VPN serverio sąranka „Linux“: PPTP arba OpenVPN?


Šiais laikais VPN technologija tampa vis populiaresnė. Paprasti vartotojai naudoja VPN saugiai prieigai prie interneto. Tai taip pat padeda apeiti vietoje blokuojamas svetaines ir paslaugas bei apsisaugoti nuo galimo išorinio kenkėjiško elgesio. Kai jungiatės prie VPN serverio, tarp jūsų kompiuterio ir serverio yra saugus tunelis, kurio negalima pasiekti iš išorės, todėl VPN serveris tampa jūsų interneto prieigos tašku. Yra daug VPN paslaugų, tiek nemokamų, tiek mokamų, bet jei dėl kokių nors priežasčių jos jums netinka, visada galite sukonfigūruoti savo VPN serverį.

Norėdami paleisti savo VPN, turėtumėte išsinuomoti VPS serverį. Yra skirtinga programinė įranga, leidžianti sukurti VPN ryšį. Ji skiriasi viena nuo kitos palaikomomis operacinėmis sistemomis ir naudojamais algoritmais. Apžvelgsime du nepriklausomus VPN serverio nustatymo būdus. Pirmasis yra pagrįstas PPTP protokolu, kuris jau laikomas pasenusiu ir nesaugiu, tačiau jį tikrai lengva konfigūruoti. Kitame naudojama moderni ir saugi programinė įranga OpenVPN, tačiau reikia įdiegti trečiosios šalies kliento programą ir atlikti kruopštesnį sąrankos procesą.

Bandomojoje aplinkoje naudosime virtualų serverį, maitinamą Ubuntu Server 18.04. Užkarda bus išjungta serveryje, nes jos konfigūracija nusipelno atskiro straipsnio. Aprašysime sąrankos procesą „Windows 10“.

Rengimas

Nesvarbu, kokį VPN serverį pasirinksite, prieiga prie interneto bus sukurta integruotomis operacinės sistemos priemonėmis. Norėdami atidaryti prieigą prie interneto per išorinę paslaugų sąsają, turite leisti paketų persiuntimą tarp sąsajų ir sukonfigūruoti tinklo adresų vertimą.

Norėdami įjungti paketų persiuntimą, atidarykite failą „/etc/sysctl.conf“ ir pasikeisti „net.ipv4.ip_forward“ parametro vertė į 1.

įjunkite paketų persiuntimą VPN sąrankai

Norėdami pritaikyti pakeitimus neperkraunant kompiuterio, paleiskite komandą

sudo sysctl -p /etc/sysctl.conf

Tinklo adresų vertimas sukonfigūruojamas naudojant iptables. Pirmiausia patikrinkite išorinės tinklo sąsajos, kurioje vykdoma komanda, pavadinimą „IP nuorodų šou“ – jums to prireiks kitame žingsnyje. Mūsų vardas yra „ens3“.

ip nuorodų šou

Įgalinkite tinklo adresų vertimą savo išorinėje sąsajoje visuose vietinio tinklo mazguose.

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

Atminkite, kad turite nurodyti tikrąjį savo serverio sąsajos pavadinimą, jis gali skirtis nuo mūsų.

Pagal numatytuosius nustatymus visos iptables sukurtos taisyklės nustatomos iš naujo po serverio paleidimo iš naujo. Norėdami to išvengti, naudokite „iptables-persistent“ naudingumas. Įdiekite šį paketą:

sudo apt install iptables-persistent

Tam tikru metu diegimo proceso metu pamatysite konfigūracijos langą, kuriame bus pasiūlyta išsaugoti esamas iptables taisykles. Kadangi taisyklės jau apibrėžtos, tiesiog patvirtinkite ir spustelėkite "Taip" du kartus. Nuo šiol taisyklės bus taikomos automatiškai po serverio paleidimo iš naujo.

Įjunkite adreso vertimą

PPTP serveris

Serverio konfigūracija

Įdiekite paketą:

sudo apt install pptpd

Baigę diegti atidarykite failą „/etc/pptpd.conf“ bet kuriame teksto rengyklėje ir redaguokite taip:

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

Po to redaguokite failą „/etc/ppp/pptpd-options“. Dauguma parametrų yra nustatyti pagal numatytuosius nustatymus.

#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

Kitame etape turėsite sukurti klientų ryšių įrašą. Tarkime, kad norite pridėti vartotoją „vpvartotojas“ su slaptažodžiu "1" ir leisti jam dinamišką adresą. Atidarykite failą „/etc/ppp/chap-secrets“ ir failo pabaigoje pridėkite šią eilutę su vartotojo parametrais:

vpnuser pptpd 1 *

"pptpd" reikšmė yra paslaugos, kurią nurodėme faile, pavadinimas „pptpd-parinktys“. Vietoj „*“ galite nurodyti fiksuotą IP adresą. Rezultate failas „Slaptos paslaptys“ turėtų atrodyti taip:

VPN serverio sąranka

Norėdami pritaikyti nustatymus, iš naujo nustatykite pptpd paslaugą ir pridėkite ją prie automatinio įkėlimo.

sudo systemctl restart pptpd
sudo systemctl enable pptpd

Serverio konfigūracija baigta.

Kliento konfigūracija

Atviras „Pradėti“ - "Nustatymai" - Tinklas ir internetas - „VPN“ ir spauskite „Pridėti VPN ryšį“

Nustatykite klientą VPN ryšiui

Atsidariusiame lange įveskite ryšio parametrus ir spustelėkite "Sutaupyti"

  • VPN teikėjas: „Windows (įmontuotas)“
  • Ryšio pavadinimas: „vpn_connect“ (galite pasirinkti bet kokį pavadinimą)
  • Serverio pavadinimas arba adresas: (nurodyti išorinį serverio IP adresą)
  • VPN tipas: „Auto“
  • Prisijungimo informacijos tipas: „Vartotojo vardas ir slaptažodis“
  • Vartotojo vardas: vpvartotojas (vardas nurodytas „chap-secrets“ faile serveryje)
  • Slaptažodis: 1 (kaip „chap-secrets“ faile)

Išsaugoję parametrus, lange pamatysite naują VPN ryšį. Kairiuoju pelės mygtuku spustelėkite ryšį ir pasirinkite "Connect". Sėkmingo ryšio atveju pamatysite „Prisijungta“ statusu.

Pridedamas VPN ryšys

Parinktyse rasite vidinius kliento ir serverio adresus. Laukas „Paskirties adresas“ rodo išorinio serverio adresą.

Kaip patiems nustatyti VPN serverį

Prisijungus, vidinis serverio IP adresas, 172.16.0.1 mūsų atveju tampa numatytuoju visų siunčiamų paketų šliuzu.

Patikrinkite išorinį IP adresą

Naudodami bet kurią internetinę paslaugą galite įsitikinti, kad išorinis kompiuterio IP adresas dabar yra toks pat kaip jūsų VPN serverio IP adresas.

OpenVPN serveris

Serverio konfigūracija

Padidinkime dabartinio vartotojo teisių lygį, nes tolesnei konfigūracijai mums reikės root prieigos.

sudo -s

Įdiekite visus reikiamus paketus. Mums reikės „Easy-RSA“ paketą šifravimo raktams valdyti.

apt install openvpn easy-rsa iptables-persistent

Leisti įeinančius ryšius 1194 prievadu per UDP protokolą ir taikyti „iptables“ taisykles.

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

sudo netfilter-persistent save

Sukurkite katalogą su nukopijuotais failais iš „Easy-RSA“ paketo ir eikite į jį.

make-cadir ~/openvpn

cd ~/openvpn

Sukurti viešojo rakto infrastruktūrą (PKI).

./easyrsa init-pki

Sugeneruokite sertifikatų tarnybos (CA) šakninį sertifikatą.

./easyrsa build-ca

Kūrimo proceso metu jūsų bus paprašyta nustatyti ir atsiminti slaptažodį. Taip pat turėsite atsakyti į klausimus ir įvesti informaciją apie rakto savininką. Galite palikti numatytąsias reikšmes, pateiktas laužtiniuose skliaustuose. Paspauskite „Enter“, kad užbaigtumėte įvestį.

Sugeneruokite privatųjį raktą ir sertifikato užklausą. Kaip argumentą nurodykite bet kokį pavadinimą; mūsų atveju tai yra „vpn-server“.

./easyrsa gen-req vpn-server nopass

Palikite „Common Name“ reikšmę kaip numatytąją.

Pasirašykite sugeneruotą serverio sertifikato užklausą.

./easyrsa sign-req server vpn-server

Šiame žingsnyje atsakykite „taip“, kad patvirtintumėte parašą, tada įveskite slaptažodį, kuris buvo sukurtas generuojant šakninį sertifikatą.

Generuoti Difio-Helmano parametrus. Šie parametrai naudojami saugiam raktų mainams tarp serverio ir kliento.

./easyrsa gen-dh

Visi reikalingi failai sugeneruoti. Sukurkime „keys“ aplanką „OpenVPN“ darbo kataloge, kuriame bus saugomi raktai, ir nukopijuokime ten sukurtus failus.

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

NAT konfigūravimas naudojant iptables taisyklės. Sukurkite failą pavadinimu nat ir atidarykite jį redagavimui programoje /etc/openvpn/ katalogas.

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

Išsaugokite failą ir paverskite jį vykdomuoju.

sudo chmod 755 /etc/openvpn/nat

Nukopijuokite serverio konfigūracijos šabloną.

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

Atidarykite failą „/etc/openvpn/server.conf“ norėdami redaguoti, įsitikinkite, kad jame yra šios eilutės, ir redaguokite jas, jei reikia:

#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

Įgalinti srauto peradresavimą serveryje.

sudo sysctl -w net.ipv4.ip_forward=1

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

Paleiskite „OpenVPN“, kad pritaikytumėte konfigūraciją.

systemctl restart openvpn@server

Serverio konfigūracija baigta!

Kliento konfigūracija

Eikite į oficialią „OpenVPN“ svetainę “https://openvpn.net“, eikite į „BENDRUOMENĖ“ skyrius.

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

Slinkite žemyn ir atsisiųskite savo operacinės sistemos versijos diegimo programą. Mūsų atveju tai yra „Windows 11 ARM64“.

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

Įdiekite programą palikdami visus parametrus pagal numatytuosius nustatymus.

Kitame etape turėsite paruošti šį failą serveryje ir perkelti juos į kliento kompiuterį:

  • viešieji ir privatieji raktai;
  • sertifikavimo centro rakto kopija;
  • konfigūracijos failo šabloną.

Prisijunkite prie serverio, padidinkite teises ir eikite į mūsų sukurtą katalogą "~/openvpn".

sudo -s

cd ~/openvpn

Sukurkite klientui privatųjį raktą ir sertifikato užklausą. Kaip argumentą nurodykite bet kokį pavadinimą; mūsų atveju tai yra „klientas1“.

./easyrsa gen-req client1 nopass

Įveskite slaptažodį, kurį nustatėme kurdami šakninį sertifikatą, ir palikite „Common Name“ reikšmę kaip numatytąją.

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

Pasirašykite sugeneruotą kliento sertifikato užklausą.

./easyrsa sign-req client client1

Šiame žingsnyje atsakykite „taip“, kad patvirtintumėte parašą, tada įveskite slaptažodį, kuris buvo sukurtas generuojant šakninį sertifikatą.

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

Patogumui sukurkime aplanką pavadinimu „client1“ pagrindiniame kataloge ir nukopijuokime į jį visus failus, skirtus perkelti į kliento kompiuterį.

mkdir ~/client1

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

Nukopijuokite kliento konfigūracijos failo šabloną į tą patį katalogą. Pakeiskite failo plėtinį į ".ovpn" kopijuojant.

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

Pakeiskite katalogo ir visų failų savininką "~/client1/" kad būtų galima juos paskirstyti klientui. Pagaminkime "Mihailas" mūsų atveju savininkas.

chown -R mihail:mihail ~/client1

Eikite į kliento kompiuterį ir nukopijuokite turinį "~/client1/" aplanką. Tai galite padaryti su pagalba "PSCP" naudingumas, kuris tinka Putty.

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

Galite saugoti pagrindinius failus „ca.crt“, „client1.crt“, „klientas1.raktas“ kur tik nori. Mūsų atveju jie yra šiame aplanke „c:\Program Files\OpenVPN\keys“, ir mes sureguliuojame konfigūracijos failą „client.ovpn“ į „c:\Program Files\OpenVPN\config“ katalogas.

Dabar pereikime prie kliento konfigūravimo. Atidarykite failą „c:\Program Files\OpenVPN\config\client.ovpn“ teksto rengyklėje ir redaguokite šias eilutes:

#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

Likusią dalį palikite nepaliestą.

Išsaugokite failą ir paleiskite kliento programą „OpenVPN GUI“.

VPN sąranka baigta

Dešiniuoju pelės mygtuku spustelėkite programos piktogramą užduočių juostoje ir pasirinkite "Connect". Jei ryšys sėkmingas, piktograma taps žalia.

Naudokite bet kurią internetinę paslaugą, kad įsitikintumėte, jog jūsų viešasis IP adresas pasikeitė ir dabar yra toks pat kaip serverio IP adresas.

❮ Ankstesnis straipsnis FTP serverio sąranka
Kitas straipsnis ❯ Kaip nustatyti „Wireguard VPN“ savo serveryje

Klauskite mūsų apie VPS

Mes visada pasiruošę atsakyti į jūsų klausimus bet kuriuo dienos ar nakties metu.