Në ditët e sotme, teknologjia VPN bëhet më e popullarizuar. Përdoruesit e zakonshëm përdorin VPN për të hyrë në internet në mënyrë të sigurt. Ndihmon gjithashtu për të qarkulluar faqet e internetit dhe shërbimet e bllokuara në nivel lokal dhe për të mbrojtur kundër sjelljeve të mundshme me qëllim të keq të jashtëm. Kur jeni duke u lidhur me një server VPN, ekziston një tunel i sigurt midis kompjuterit dhe serverit që nuk mund të aksesohet nga jashtë, kështu që serveri VPN bëhet pika juaj e hyrjes në internet. Ka shumë shërbime VPN atje, falas dhe me pagesë, por nëse ato nuk funksionojnë për ju për ndonjë arsye, gjithmonë mund të konfiguroni serverin tuaj VPN.
Për të ekzekutuar VPN-në tuaj, duhet merrni me qira serverin VPS. Ka softuer të ndryshëm që ju lejon të krijoni një lidhje VPN. Ai ndryshon nga njëri-tjetri nga sistemet operative të mbështetura dhe algoritmet e përdorura. Ne do të hedhim një vështrim në dy qasje të pavarura për të vendosur një server VPN. E para bazohet në protokollin PPTP që tashmë konsiderohet i vjetëruar dhe jo i sigurt, por është vërtet i lehtë për t'u konfiguruar. Tjetri përdor softuer modern dhe të sigurt OpenVPN, por kërkon instalimin e një aplikacioni klient të palës së tretë dhe një proces më të plotë konfigurimi.
Në mjedisin tonë të testimit, ne do të përdorim një server virtual të mundësuar nga Ubuntu Server 18.04. Një mur zjarri do të fiket në server sepse konfigurimi i tij meriton një artikull të veçantë. Ne do të përshkruajmë procesin e konfigurimit në Windows 10.
Përgatitje
Pavarësisht se cilin server VPN zgjidhni, qasja në internet do të konfigurohet me mjete të integruara të sistemit operativ. Për të hapur aksesin në internet përmes një ndërfaqe shërbimi të jashtëm, duhet të lejoni përcjelljen e paketave ndërmjet ndërfaqeve dhe të konfiguroni përkthimin e adresës së rrjetit.
Për të aktivizuar përcjelljen e paketave hapni skedarin "/etc/sysctl.conf" dhe ndryshimi "net.ipv4.ip_forward" vlera e parametrit në 1.
Për të aplikuar ndryshimet pa rindezur kompjuterin, ekzekutoni komandën
sudo sysctl -p /etc/sysctl.conf
Përkthimi i adresës së rrjetit konfigurohet me anë të iptables. Së pari, kontrolloni emrin e ndërfaqes tuaj të jashtme të rrjetit që ekzekuton komandën "Shfaqja e lidhjes IP" - do t'ju duhet në hapin tjetër. Emri ynë është "ens3".
Aktivizo përkthimin e adresave të rrjetit në ndërfaqen tënde të jashtme për të gjitha nyjet e rrjetit lokal.
sudo iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
Vini re se ju duhet të specifikoni emrin e vërtetë të ndërfaqes së serverit tuaj, ai mund të jetë i ndryshëm nga i yni.
Si parazgjedhje, të gjitha rregullat e krijuara nga iptables rivendosen pas rinisjes së serverit. Për ta parandaluar atë, përdorni "iptables-i qëndrueshëm" dobia. Instaloni paketën e mëposhtme:
sudo apt install iptables-persistent
Në një moment gjatë procesit të instalimit, do të shihni një dritare konfigurimi që do t'ju sugjerojë të ruani rregullat aktuale të iptables. Meqenëse rregullat tashmë janë përcaktuar, thjesht konfirmoni dhe klikoni "Po" dy herë. Që tani rregullat do të zbatohen automatikisht pas rinisjes së serverit.
Serveri PPTP
Konfigurimi i serverit
Instaloni paketën:
sudo apt install pptpd
Pasi të përfundojë instalimi, hapni skedarin "/etc/pptpd.conf" në çdo redaktues teksti dhe modifikojeni si kjo:
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
Pas kësaj, modifikoni skedarin "/etc/ppp/pptpd-options". Shumica e parametrave janë vendosur si parazgjedhje.
#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
Në fazën tjetër, do t'ju duhet të krijoni një rekord për lidhjet me klientët. Le të themi se dëshironi të shtoni një përdorues "vpnuser" me fjalëkalim "1" dhe lejoni adresimin dinamik për të. Hapni skedarin "/etc/ppp/chap-secrets" dhe shtoni rreshtin e mëposhtëm me parametrat e përdoruesit në fund të skedarit:
vpnuser pptpd 1 *
"pptpd" vlera është emri i shërbimit që kemi specifikuar në skedar "opsionet pptpd". Në vend të "*" ju mund të specifikoni një adresë IP fikse. Si rezultat, skedari "kap-sekretet" duhet të duket kështu:
Për të aplikuar cilësimet, rivendosni pptpd shërbimi dhe shtojeni atë në ngarkim automatik.
sudo systemctl restart pptpd
sudo systemctl enable pptpd
Konfigurimi i serverit ka përfunduar.
Konfigurimi i klientit
hapur "Start" - "Settings" - Rrjeti dhe Interneti - "VPN" dhe klikoni "Shto një lidhje VPN"
Futni parametrat e lidhjes në dritaren e hapur dhe klikoni "Ruaj"
- Ofruesi VPN: "Windows (i integruar)"
- Emri i lidhjes: "vpn_connect" (mund të zgjidhni çdo emër)
- Emri ose adresa e serverit: (specifikoni adresën IP të jashtme të serverit)
- Lloji VPN: "Auto"
- Lloji i informacionit të hyrjes: "Emri i përdoruesit dhe fjalëkalimi"
- Emri i përdoruesit: vpnuser (emri i specifikuar në skedarin "chap-secrets" në server)
- fjalëkalimi: 1 (si në skedarin "kap-sekretet")
Pas ruajtjes së parametrave, do të shihni lidhjen e re VPN në dritare. Klikoni me të majtën në lidhje dhe zgjidhni "Lidhu". Në rastin e një lidhjeje të suksesshme, do të shihni "Lidhur" statusit.
Në Opsionet, do të gjeni adresat e brendshme të klientit dhe serverit. Fusha “Adresa e destinacionit” shfaq adresën e serverit të jashtëm.
Kur lidhet, adresa IP e brendshme e serverit, 172.16.0.1 në rastin tonë, bëhet porta e paracaktuar për të gjitha paketat dalëse.
Duke përdorur çdo shërbim online, mund të siguroheni që adresa IP e jashtme e kompjuterit tani është e njëjtë me adresën IP të serverit tuaj VPN.
OpenVPN server
Konfigurimi i serverit
Le të promovojmë nivelin e lejeve të përdoruesit aktual sepse për konfigurimin tonë të mëtejshëm do të kemi nevojë për qasje rrënjësore.
sudo -s
Instaloni të gjitha paketat e nevojshme. do të na duhet "Easy-RSA" paketë për të menaxhuar çelësat e enkriptimit.
apt install openvpn easy-rsa iptables-persistent
Lejo lidhjet hyrëse në portin 1194 nëpërmjet protokollit UDP dhe zbato rregullat e iptables.
sudo iptables -I INPUT -p udp --dport 1194 -j ACCEPT
sudo netfilter-persistent save
Krijo një drejtori me skedarë të kopjuar nga paketa "Easy-RSA" dhe shko në të.
make-cadir ~/openvpn
cd ~/openvpn
Gjeneroni Infrastrukturën e Çelësit Publik (PKI).
./easyrsa init-pki
Gjeneroni certifikatën rrënjë të Autoritetit të Certifikimit (CA).
./easyrsa build-ca
Gjatë procesit të krijimit, do t'ju kërkohet të vendosni dhe të mbani mend një fjalëkalim. Gjithashtu, do t'ju duhet t'u përgjigjeni pyetjeve dhe të futni informacione rreth pronarit të çelësit. Mund t'i lini vlerat e parazgjedhura të dhëna në kllapa katrore. Shtypni "Enter" për të përfunduar të dhënat e dhëna.
Gjeneroni një çelës privat dhe një kërkesë për certifikatë. Si argument, specifikoni një emër arbitrar; në rastin tonë, është "vpn-server".
./easyrsa gen-req vpn-server nopass
Lëreni vlerën e Emrit të Përbashkët si parazgjedhje.
Nënshkruani kërkesën e gjeneruar për certifikatën e serverit.
./easyrsa sign-req server vpn-server
Në këtë hap, përgjigjuni "po" për të konfirmuar nënshkrimin, pastaj futni fjalëkalimin që u krijua gjatë gjenerimit të certifikatës rrënjë.
Gjeneroni parametrat Diffie-Hellman. Këta parametra përdoren për shkëmbim të sigurt të çelësave midis serverit dhe klientit.
./easyrsa gen-dh
Të gjithë skedarët e nevojshëm janë gjeneruar. Le të krijojmë një dosje "çelësa" në direktorinë e punës së OpenVPN për të ruajtur çelësat dhe për të kopjuar skedarët e krijuar atje.
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
Konfiguro NAT duke përdorur iptables rregullat. Krijo një skedar me emrin nat dhe hapeni atë për redaktim në /etc/openvpn/ directory.
#!/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
Ruaj skedarin dhe bëje të ekzekutueshëm.
sudo chmod 755 /etc/openvpn/nat
Kopjoni shabllonin e konfigurimit të serverit.
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/
Hapni skedarin "/etc/openvpn/server.conf" për redaktim, sigurohuni që të përmbajë rreshtat e mëposhtëm dhe modifikojini nëse është e nevojshme:
#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
Aktivizo ridrejtimin e trafikut në server.
sudo sysctl -w net.ipv4.ip_forward=1
echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf
Nisni OpenVPN për të aplikuar konfigurimin.
systemctl restart openvpn@server
Konfigurimi i serverit ka përfunduar!
Konfigurimi i klientit
Shkoni në faqen zyrtare të OpenVPN "https://openvpn.net”, shkoni në "KOMUNITETI" seksion.
Zbritni poshtë dhe shkarkoni instaluesin për versionin e sistemit tuaj operativ. Në rastin tonë, është Windows 11 ARM64.
Instaloni aplikacionin duke lënë të gjithë parametrat si parazgjedhje.
Në fazën tjetër do t'ju duhet të përgatisni skedarin e mëposhtëm në server dhe t'i transferoni ato në kompjuterin e klientit:
- çelësat publikë dhe privatë;
- kopje e çelësit të qendrës së certifikimit;
- shablloni i skedarit të konfigurimit.
Lidhu me serverin, rrit privilegjet dhe lundro në direktorinë tonë të krijuar "~/openvpn".
sudo -s
cd ~/openvpn
Gjeneroni një çelës privat dhe një kërkesë për certifikatë për klientin. Si argument, specifikoni një emër arbitrar; në rastin tonë, është "klient1".
./easyrsa gen-req client1 nopass
Vendosni fjalëkalimin që vendosëm kur krijuam certifikatën rrënjë dhe lëreni vlerën e Emrit të Përbashkët si parazgjedhje.
Nënshkruani kërkesën e gjeneruar për certifikatë klienti.
./easyrsa sign-req client client1
Në këtë hap, përgjigjuni "po" për të konfirmuar nënshkrimin, pastaj futni fjalëkalimin që u krijua gjatë gjenerimit të certifikatës rrënjë.
Për lehtësi, le të krijojmë një dosje me emrin 'client1' në direktorinë kryesore dhe të kopjojmë të gjitha skedarët e destinuar për transferim në kompjuterin klient në të.
mkdir ~/client1
cp pki/issued/client1.crt pki/private/client1.key pki/ca.crt ~/client1/
Kopjoni shabllonin e skedarit të konfigurimit të klientit në të njëjtën direktori. Ndrysho shtrirjen e skedarit në ".ovpn" gjatë kopjimit.
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client1/client.ovpn
Ndryshoni pronarin e drejtorisë dhe të gjithë skedarët "~/klient1/" të jetë në gjendje t'i shpërndajë ato te klienti. Le të bëjmë "mihail" pronari në rastin tonë.
chown -R mihail:mihail ~/client1
Shkoni te kompjuteri i klientit dhe kopjoni përmbajtjen e "~/klient1/" dosje. Ju mund ta bëni atë me ndihmën e "PSCP" dobi, që shkon me Putty.
PSCP -r mihail@[IP_сервера]:/home/mihail/client1 c:\client1
Ju mund të ruani skedarët kryesorë "ca.crt", "client1.crt", "client1.key" ku të duash. Në rastin tonë, ato janë në këtë dosje "c:\Skedarët e programit\OpenVPN\çelësat", dhe ne modalizojmë skedarin e konfigurimit "client.ovpn" në "c:\Program Files\OpenVPN\config" directory.
Tani le të kalojmë te konfigurimi i klientit. Hapni skedarin "c:\Program Files\OpenVPN\config\client.ovpn" në një redaktues teksti dhe modifikoni rreshtat e mëposhtëm:
#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
Lëreni pjesën tjetër të paprekur.
Ruani skedarin dhe hapni aplikacionin e klientit “GUI OpenVPN”.
Klikoni me të djathtën në ikonën e aplikacionit në shiritin e detyrave dhe zgjidhni "Lidhu". Nëse lidhja është e suksesshme, ikona do të kthehet në jeshile.
Përdorni çdo shërbim online për t'u siguruar që adresa juaj IP publike ka ndryshuar dhe tani është e njëjtë me adresën IP të serverit.