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.
VPN-i käitamiseks peaksite seda tegema rentida VPS-server. VPN-ühenduse loomiseks on erinev tarkvara. See erineb üksteisest toetatud operatsioonisüsteemide ja kasutatud algoritmide poolest. Vaatleme kahte sõltumatut lähenemisviisi VPN-serveri seadistamiseks. Esimene neist põhineb PPTP-protokollil, mida peetakse juba aegunuks ja mitte turvaliseks, kuid mida on tõesti lihtne konfigureerida. Teine kasutab kaasaegset ja turvalist tarkvara OpenVPN, kuid nõuab kolmanda osapoole kliendirakenduse installimist ja põhjalikumat häälestusprotsessi.
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 muutuda "net.ipv4.ip_forward" parameetri väärtus sisse 1.
Muudatuste rakendamiseks ilma arvutit taaskäivitamata käivitage käsk
sudo sysctl -p /etc/sysctl.conf
Võrguaadressi tõlkimine on konfigureeritud iptables. Esmalt kontrollige käsu käivitava välise võrguliidese nime "IP-lingi saade" - vajate seda 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 pärast serveri taaskäivitamist kõik iptablesi loodud reeglid. Selle vältimiseks kasutage "iptables-püsiv" kasulikkust. Installige järgmine pakett:
sudo apt install iptables-persistent
Installimise ajal näete mingil hetkel konfiguratsiooniakent, mis soovitab salvestada kehtivad iptablesi reeglid. Kuna reeglid on juba määratletud, kinnitage ja klõpsake "Yes" kaks korda. Nüüdsest 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 redigeerige 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 redigeerige 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 ühenduste jaoks kirje. Oletame, et soovite lisada kasutaja "vpkasutaja" parooliga "1" ja võimaldama tema jaoks dünaamilist adresseerimist. Avage fail "/etc/ppp/chap-secrets" ja lisage faili lõppu järgmine rida kasutaja parameetritega:
vpnuser pptpd 1 *
"pptpd" väärtus on failis määratud teenuse nimi "pptpd-suvandid". Selle asemel "*" saate määrata fikseeritud IP-aadressi. Tulemuseks on fail “Puu-saladused” peaks välja nägema selline:
Seadete rakendamiseks lähtestage pptpd teenust ja lisage see automaatlaadimisse.
sudo systemctl restart pptpd
sudo systemctl enable pptpd
Serveri seadistamine on lõpetatud.
Kliendi konfiguratsioon
avatud "Start" - "Seaded" - Võrk ja Internet - „VPN” ja kliki "Lisa VPN-ühendus"
Sisestage avanenud aknasse ü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 ühendust ja valige "Connect". Eduka ühenduse korral näete „Ühendatud” status.
Suvanditest leiate kliendi ja serveri sisemised aadressid. Väli "Sihtkoha aadress" kuvab välise serveri aadressi.
Ühenduse korral serveri sisemine IP-aadress, 172.16.0.1 meie puhul saab sellest kõigi väljuvate pakettide vaikelüüsiks.
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
Installige kõik vajalikud paketid. Meil läheb vaja "Lihtne-RSA" pakett krüpteerimisvõtmete haldamiseks.
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/
Avage fail "/etc/openvpn/server.conf" redigeerimiseks veenduge, et see sisaldab järgmisi ridu, ja vajadusel muutke 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”, minge lehele "KOGUKOND" sektsiooni.
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/
Kopeerige kliendi konfiguratsioonifaili mall samasse kataloogi. Muutke faililaiendiks ".ovpn" kopeerimise ajal.
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client1/client.ovpn
Muutke kataloogi ja kõigi failide omanikku "~/klient1/" et oleks võimalik neid kliendile levitada. Teeme "Mihail" meie puhul omanik.
chown -R mihail:mihail ~/client1
Minge kliendi arvutisse ja kopeerige selle sisu "~/klient1/" kausta. Saate seda teha abiga "PSCP" utiliit, mis käib Puttyga.
PSCP -r mihail@[IP_сервера]:/home/mihail/client1 c:\client1
Saate salvestada võtmefaile "ca.crt", "klient1.crt", "klient1.võti" kuhu tahad. Meie puhul on need selles kaustas "c:\Program Files\OpenVPN\keys"ja me konfigureerime konfiguratsioonifaili "klient.ovpn" sisse "c:\Program Files\OpenVPN\config" kataloog.
Nüüd asume kliendi seadistamise juurde. Avage fail "c:\Program Files\OpenVPN\config\client.ovpn" tekstiredaktoris ja redigeerige 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 ikoonil ja valige "Connect". 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.