Tänapäeval muutub VPN-tehnoloogia populaarsemaks. Tavakasutajad kasutavad turvaliseks Interneti-juurdepääsuks VPN-i. Samuti aitab see pääseda mööda lokaalselt blokeeritud veebisaitidest ja teenustest ning kaitsta võimaliku välise pahatahtliku käitumise eest. Kui loote ühenduse VPN-serveriga, on teie arvuti ja serveri vahel turvatunnel, millele väljastpoolt juurde ei pääse, nii et VPN-serverist saab teie Interneti-pöörduspunkt. Seal on palju VPN-teenuseid, nii tasuta kui ka tasulisi, kuid kui need mingil põhjusel teie jaoks ei tööta, saate alati oma VPN-serveri konfigureerida.
Oma VPN-i käitamiseks peaksite rentima VPS-serveri . VPN-ühenduse loomiseks on olemas erinevat tarkvara. Need erinevad üksteisest toetatud operatsioonisüsteemide ja kasutatavate algoritmide poolest. Vaatleme kahte sõltumatut lähenemisviisi VPN-serveri seadistamiseks. Esimene põhineb PPTP-protokollil, mida peetakse juba vananenuks ja ebaturvaliseks, kuid mida on väga lihtne seadistada. Teine kasutab kaasaegset ja turvalist OpenVPN-tarkvara, kuid nõuab kolmanda osapoole kliendirakenduse installimist ja põhjalikumat seadistusprotsessi.
Meie testkeskkonnas hakkame kasutama virtuaalserverit, mida toetab Ubuntu Server 18.04. Tulemüür lülitatakse serveris välja, kuna selle konfiguratsioon väärib eraldi artiklit. Kirjeldame Windows 10 häälestusprotsessi.
Ettevalmistamine
Olenemata sellest, millise VPN-serveri valite, luuakse Interneti-juurdepääs operatsioonisüsteemi integreeritud vahenditega. Interneti-juurdepääsu avamiseks välise teenuseliidese kaudu peate lubama liideste vahel pakettide edastamise ja konfigureerima võrguaadressi tõlkimise.
Pakettide edastamise sisselülitamiseks avage fail „/etc/sysctl.conf” ja muutke parameetri „net.ipv4.ip_forward” väärtuseks 1.
Muudatuste rakendamiseks ilma arvutit taaskäivitamata käivitage käsk
sudo sysctl -p /etc/sysctl.conf
Võrguaadresside teisendamine konfigureeritakse iptables'i abil . Esmalt kontrollige oma välise võrguliidese nime, käivitades käsu „ip link show” – seda vajate järgmises etapis. Meie nimi on „ens3”.
Lubage võrguaadresside tõlkimine oma välises liideses kõigi kohaliku võrgu sõlmede jaoks.
sudo iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
Pange tähele, et peate määrama oma serveri liidese tegeliku nime, see võib meie omast erineda.
Vaikimisi lähtestatakse kõik iptables'i loodud reeglid pärast serveri taaskäivitamist. Selle vältimiseks kasutage utiliiti „iptables-persistent” . Paigaldage järgmine pakett:
sudo apt install iptables-persistent
Installiprotsessi mingul hetkel kuvatakse konfiguratsiooniaken, mis soovitab salvestada praegused iptables'i reeglid. Kuna reeglid on juba määratletud, kinnitage lihtsalt ja klõpsake kaks korda nuppu „Jah“ . Nüüd rakendatakse reegleid automaatselt pärast serveri taaskäivitamist.
PPTP-server
Serveri konfiguratsioon
Paigaldage pakett:
sudo apt install pptpd
Pärast installimise lõppu avage fail "/etc/pptpd.conf" mis tahes tekstiredaktoris ja muutke seda järgmiselt:
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
Pärast seda muutke faili „/etc/ppp/pptpd-options” . Enamik parameetreid on vaikimisi seadistatud.
#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
Järgmises etapis peate looma kliendiühenduste kirje. Oletame, et soovite lisada kasutaja „vpnuser” parooliga „1” ja lubada talle dünaamilise adresseerimise. Avage fail „/etc/ppp/chap-secrets” ja lisage faili lõppu järgmine rida kasutaja parameetritega:
vpnuser pptpd 1 *
„pptpd” väärtus on teenuse nimi, mille me määrasime failis „pptpd-options” . „*” asemel võite määrata fikseeritud IP-aadressi. Tulemuseks peaks fail „chap-secrets” välja nägema selline:
Sätete rakendamiseks lähtestage pptpd teenus ja lisage see automaatse laadimise hulka.
sudo systemctl restart pptpd
sudo systemctl enable pptpd
Serveri seadistamine on lõpetatud.
Kliendi konfiguratsioon
Avage „Start” - „Seaded” - „Võrk ja Internet” - „VPN” ja klõpsake nuppu „Lisa VPN-ühendus”.
Avanevas aknas sisestage ühenduse parameetrid ja klõpsake nuppu "Salvesta".
- VPN-i pakkuja: "Windows (sisseehitatud)"
- Ühenduse nimi: "vpn_connect" (saate valida mis tahes nime)
- Serveri nimi või aadress: (määrake serveri väline IP-aadress)
- VPN-i tüüp: "Automaatne"
- Sisselogimisteabe tüüp: "Kasutajanimi ja parool"
- Kasutaja nimi: vpkasutaja (nimi on määratud serveri failis "chap-secrets")
- Salasõna: 1 (nagu failis "chap-secrets")
Pärast parameetrite salvestamist näete aknas uut VPN-ühendust. Vasakklõpsake ühendusel ja valige „Ühenda“ . Eduka ühenduse korral näete olekut „Ühendatud“.
Valike alt leiad kliendi ja serveri sisemised aadressid. Väli „Sihtkoha aadress“ kuvab välise serveri aadressi.
Pärast ühenduse loomist saab serveri sisemine IP-aadress, meie puhul 172.16.0.1 , kõigi väljaminevate pakettide vaikeväravaks.
Mis tahes võrguteenust kasutades saate veenduda, et arvuti väline IP-aadress on nüüd sama, mis teie VPN-serveri IP-aadress.
OpenVPN server
Serveri konfiguratsioon
Edendagem praeguse kasutaja õiguste taset, sest edasiseks seadistamiseks vajame juurjuurdepääsu.
sudo -s
Paigalda kõik vajalikud paketid. Krüpteerimisvõtmete haldamiseks vajame paketti „Easy-RSA” .
apt install openvpn easy-rsa iptables-persistent
Luba sissetulevad ühendused pordi 1194 kaudu UDP protokolli kaudu ja rakenda iptables'i reegleid.
sudo iptables -I INPUT -p udp --dport 1194 -j ACCEPT
sudo netfilter-persistent save
Looge kataloog „Easy-RSA” paketist kopeeritud failidega ja navigeerige sinna.
make-cadir ~/openvpn
cd ~/openvpn
Avaliku võtme infrastruktuuri (PKI) loomine.
./easyrsa init-pki
Genereerige sertifitseerimisasutuse (CA) juursertifikaat.
./easyrsa build-ca
Loomisprotsessi käigus palutakse teil parool määrata ja meelde jätta. Samuti peate vastama küsimustele ja sisestama teabe võtme omaniku kohta. Võite jätta nurksulgudes olevad vaikeväärtused. Sisestuse lõpetamiseks vajutage sisestusklahvi (Enter).
Genereerige privaatvõti ja sertifikaaditaotlus. Argumendina määrake suvaline nimi; meie puhul on see „vpn-server”.
./easyrsa gen-req vpn-server nopass
Jätke väärtus „Üldnimi” vaikesäteteks.
Allkirjastage genereeritud serveri sertifikaaditaotlus.
./easyrsa sign-req server vpn-server
Selles etapis vastake allkirja kinnitamiseks "jah" ja sisestage seejärel juursertifikaadi genereerimise ajal loodud parool.
Diffie-Hellmani parameetrite genereerimine. Neid parameetreid kasutatakse serveri ja kliendi vaheliseks turvaliseks võtmevahetuseks.
./easyrsa gen-dh
Kõik vajalikud failid on genereeritud. Loome OpenVPN-i töökataloogi kausta "võtmed", kuhu võtmed salvestada, ja kopeerime loodud failid sinna.
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-i seadistamine, kasutades iptables reeglid. Looge fail nimega nat ja avage see redigeerimiseks /etc/openvpn/ kataloog.
#!/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
Salvesta fail ja tee see käivitatavaks.
sudo chmod 755 /etc/openvpn/nat
Kopeeri serveri konfiguratsioonimall.
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/
Ava redigeerimiseks fail „/etc/openvpn/server.conf” , veendu, et see sisaldab järgmisi ridu ja vajadusel redigeeri neid:
#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
Luba serveris liikluse edastamine.
sudo sysctl -w net.ipv4.ip_forward=1
echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf
Konfiguratsiooni rakendamiseks käivitage OpenVPN.
systemctl restart openvpn@server
Serveri seadistamine on lõpetatud!
Kliendi konfiguratsioon
Minge OpenVPN-i ametlikule veebisaidile „ https://openvpn.net ” ja minge jaotisse „KOGUKOND”.
Kerige alla ja laadige alla oma operatsioonisüsteemi versioonile vastav installer. Meie puhul on see Windows 11 ARM64.
Installige rakendus, jättes vaikimisi kõik parameetrid.
Järgmises etapis peate serveris ette valmistama järgmise faili ja edastama need klientarvutisse:
- avalikud ja privaatvõtmed;
- sertifitseerimiskeskuse võtme koopia;
- konfiguratsioonifaili mall.
Loo ühendus serveriga, tõsta privileegid ja navigeeri meie loodud kataloogi. "~/openvpn".
sudo -s
cd ~/openvpn
Genereerige kliendile privaatvõti ja sertifikaaditaotlus. Argumendina määrake suvaline nimi; meie puhul on see „klient1”.
./easyrsa gen-req client1 nopass
Sisestage parool, mille me juursertifikaadi loomisel määrasime, ja jätke tavalise nime väärtus vaikeväärtuseks.
Allkirjastage genereeritud kliendisertifikaadi taotlus.
./easyrsa sign-req client client1
Selles etapis vastake allkirja kinnitamiseks "jah" ja sisestage seejärel juursertifikaadi genereerimise ajal loodud parool.
Mugavuse huvides loome kodukataloogi kausta nimega 'client1' ja kopeerime sinna kõik kliendiarvutisse edastamiseks mõeldud failid.
mkdir ~/client1
cp pki/issued/client1.crt pki/private/client1.key pki/ca.crt ~/client1/
Kopeeri kliendi konfiguratsioonifaili mall samasse kataloogi. Muuda kopeerimise ajal faililaiendiks „.ovpn”.
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client1/client.ovpn
Kliendile levitamiseks muutke kataloogi ja kõigi failide „~/client1/” omanikku. Meie puhul teeme omanikuks „mihail” .
chown -R mihail:mihail ~/client1
Mine kliendiarvutisse ja kopeeri kausta „~/client1/” sisu. Seda saad teha Putty juurde kuuluva utiliidi „PSCP” abil .
PSCP -r mihail@[IP_сервера]:/home/mihail/client1 c:\client1
Võtmefaile „ca.crt” , „client1.crt” ja „client1.key” saab salvestada kuhu iganes. Meie puhul asuvad need kaustas „c:\Program Files\OpenVPN\keys” ja konfiguratsioonifail „client.ovpn” paigutatakse kataloogi „c:\Program Files\OpenVPN\config”.
Nüüd asume kliendi seadistamise juurde. Avage tekstiredaktoris fail „c:\Program Files\OpenVPN\config\client.ovpn” ja muutke järgmisi ridu:
#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
Ülejäänu jätke puutumata.
Salvestage fail ja käivitage kliendirakendus „OpenVPN GUI”.
Paremklõpsake tegumiribal rakenduse ikooni ja valige „Ühenda“ . Kui ühendus õnnestub, muutub ikoon roheliseks.
Kasutage mis tahes võrguteenust, et veenduda, et teie avalik IP-aadress on muutunud ja on nüüd sama, mis serveri IP-aadress.