Hal-hazırda VPN texnologiyası daha populyarlaşır. Adi istifadəçilər İnternetə təhlükəsiz daxil olmaq üçün VPN-dən istifadə edirlər. O, həmçinin yerli bloklanmış veb-saytlar və xidmətlər ətrafında dolaşmağa və mümkün xarici zərərli davranışlardan qorunmağa kömək edir. VPN serverinə qoşulduqda kompüterinizlə server arasında təhlükəsiz tunel var ki, ona xaricdən daxil olmaq mümkün deyil, beləliklə VPN server sizin İnternetə giriş nöqtəniz olur. Orada həm pulsuz, həm də pullu çoxlu VPN xidmətləri var, lakin onlar nədənsə sizin üçün işləmirsə, siz həmişə öz VPN serverinizi konfiqurasiya edə bilərsiniz.
VPN-inizi işlətmək üçün VPS server icarəyə götürməlisiniz . VPN bağlantısı yaratmağa imkan verən müxtəlif proqram təminatı mövcuddur. Dəstəklənən əməliyyat sistemləri və istifadə olunan alqoritmlər bir-birindən fərqlənir. VPN serverini qurmaq üçün iki müstəqil yanaşmaya nəzər salacağıq. Birincisi, artıq köhnəlmiş və təhlükəsiz olmayan, lakin konfiqurasiya etmək çox asan olan PPTP protokoluna əsaslanır. Digəri isə müasir və təhlükəsiz OpenVPN proqram təminatından istifadə edir, lakin üçüncü tərəf müştəri tətbiqinin quraşdırılmasını və daha ətraflı quraşdırma prosesini tələb edir.
Test mühitimizdə Ubuntu Server 18.04 ilə təchiz edilmiş virtual serverdən istifadə edəcəyik. Firewall serverdə söndürüləcək, çünki onun konfiqurasiyası ayrıca məqaləyə layiqdir. Windows 10-da quraşdırma prosesini təsvir edəcəyik.
Hazırlıq
Hansı VPN serverini seçməyinizdən asılı olmayaraq, İnternetə çıxış əməliyyat sisteminin inteqrasiya olunmuş vasitələri ilə qurulacaq. Xarici xidmət interfeysi vasitəsilə İnternetə çıxışı açmaq üçün siz interfeyslər arasında paket yönləndirməyə icazə verməli və şəbəkə ünvanının tərcüməsini konfiqurasiya etməlisiniz.
Paket yönləndirməsini aktivləşdirmək üçün “/etc/sysctl.conf” faylını açın və “net.ipv4.ip_forward” parametr dəyərini 1 olaraq dəyişdirin.
Kompüteri yenidən başlatmadan dəyişiklikləri tətbiq etmək üçün əmri işə salın
sudo sysctl -p /etc/sysctl.conf
Şəbəkə ünvanının tərcüməsi iptables vasitəsilə konfiqurasiya edilir . Əvvəlcə, “ip link show” əmrini işlədərək xarici şəbəkə interfeysinizin adını yoxlayın - növbəti addımda sizə lazım olacaq. Bizim adımız “ens3” -dür.
Bütün yerli şəbəkə qovşaqları üçün xarici interfeysinizdə şəbəkə ünvanının tərcüməsini aktivləşdirin.
sudo iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
Nəzərə alın ki, serverinizin interfeysinin əsl adını göstərməlisiniz, o, bizimkindən fərqli ola bilər.
Varsayılan olaraq, iptables tərəfindən yaradılan bütün qaydalar server yenidən başladıqdan sonra sıfırlanır. Bunun qarşısını almaq üçün “iptables-persistent” yardımçı proqramından istifadə edin. Aşağıdakı paketi quraşdırın:
sudo apt install iptables-persistent
Quraşdırma prosesinin müəyyən bir mərhələsində, cari iptables qaydalarını yadda saxlamağı təklif edən bir konfiqurasiya pəncərəsi görəcəksiniz. Qaydalar artıq müəyyən edildiyindən, sadəcə təsdiqləyin və iki dəfə "Bəli" düyməsini basın . Bundan sonra qaydalar server yenidən başladıqdan sonra avtomatik olaraq tətbiq olunacaq.
PPTP serveri
Server konfiqurasiyası
Paketi quraşdırın:
sudo apt install pptpd
Quraşdırma başa çatdıqdan sonra istənilən mətn redaktorunda "/etc/pptpd.conf" faylını açın və aşağıdakı kimi redaktə edin:
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
Bundan sonra, “/etc/ppp/pptpd-options” faylını redaktə edin . Parametrlərin əksəriyyəti standart olaraq təyin olunur.
#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övbəti mərhələdə müştəri əlaqələri üçün bir qeyd yaratmalısınız. Tutaq ki, "1" parolu olan "vpnuser" istifadəçisi əlavə etmək və onun üçün dinamik ünvanlamaya icazə vermək istəyirsiniz. "/etc/ppp/chap-secrets" faylını açın və faylın sonunda istifadəçi parametrləri ilə aşağıdakı sətri əlavə edin:
vpnuser pptpd 1 *
“pptpd” dəyəri “pptpd-options” faylında göstərdiyimiz xidmətin adıdır . “*” əvəzinə sabit bir IP ünvanı göstərə bilərsiniz. Nəticədə, “chap-secrets” faylı belə görünməlidir:
Parametrləri tətbiq etmək üçün pptpd xidmətini yenidən qurun və avtomatik yükləməyə əlavə edin.
sudo systemctl restart pptpd
sudo systemctl enable pptpd
Server konfiqurasiyası tamamlandı.
Müştəri konfiqurasiyası
"Başlat" - "Parametrlər" - "Şəbəkə və İnternet" - "VPN" bölmələrini açın və "VPN bağlantısı əlavə et" düyməsini basın.
Açılan pəncərədə əlaqə parametrlərini daxil edin və "Saxla" düyməsini basın
- VPN provayderi: "Windows (daxili)"
- Bağlantı adı: “vpn_connect” (istənilən ad seçə bilərsiniz)
- Server adı və ya ünvanı: (serverin xarici IP ünvanını göstərin)
- VPN növü: “Avtomatik”
- Giriş məlumatının növü: “İstifadəçi adı və şifrə”
- İstifadəçi adı: vpnuser (serverdəki "chap-secrets" faylında göstərilən ad)
- Şifrə: 1 (“Chap-secrets” faylında olduğu kimi)
Parametrləri yadda saxladıqdan sonra pəncərədə yeni VPN bağlantısını görəcəksiniz. Bağlantıya sol klikləyin və “Qoşul” seçin . Uğurlu bağlantı halında “Qoşuldu” statusunu görəcəksiniz.
Seçimlər bölməsində klientin və serverin daxili ünvanlarını tapa bilərsiniz. "Təyinat ünvanı" sahəsi xarici server ünvanını göstərir.
Qoşulduqda, serverin daxili IP ünvanı, bizim vəziyyətimizdə 172.16.0.1 , bütün gedən paketlər üçün standart şlüz olur.
İstənilən onlayn xidmətdən istifadə edərək kompüterin xarici IP ünvanının VPN serverinizin IP ünvanı ilə eyni olduğuna əmin ola bilərsiniz.
OpenVPN server
Server konfiqurasiyası
Gəlin cari istifadəçinin icazə səviyyəsini təşviq edək, çünki sonrakı konfiqurasiyamız üçün kök girişinə ehtiyacımız olacaq.
sudo -s
Bütün lazımi paketləri quraşdırın. Şifrələmə açarlarını idarə etmək üçün bizə "Easy-RSA" paketi lazım olacaq.
apt install openvpn easy-rsa iptables-persistent
UDP protokolu vasitəsilə 1194 portunda daxil olan əlaqələrə icazə verin və iptables qaydalarını tətbiq edin.
sudo iptables -I INPUT -p udp --dport 1194 -j ACCEPT
sudo netfilter-persistent save
“Easy-RSA” paketindən kopyalanmış faylları olan bir kataloq yaradın və ona keçin.
make-cadir ~/openvpn
cd ~/openvpn
Açıq Açar İnfrastrukturunu (PKI) yaradın.
./easyrsa init-pki
Sertifikat Təşkilatının (CA) kök sertifikatını yaradın.
./easyrsa build-ca
Yaratma prosesi zamanı sizdən parol təyin etmək və yadda saxlamaq təklif olunacaq. Siz həmçinin suallara cavab verməli və açar sahibi haqqında məlumat daxil etməlisiniz. Siz kvadrat mötərizədə verilmiş standart dəyərləri tərk edə bilərsiniz. Daxiletməni yekunlaşdırmaq üçün "Enter" düyməsini basın.
Şəxsi açar və sertifikat sorğusu yaradın. Arqument olaraq, ixtiyari bir ad göstərin; bizim vəziyyətimizdə "vpn-server" dir.
./easyrsa gen-req vpn-server nopass
Ümumi ad dəyərini standart olaraq buraxın.
Yaradılmış server sertifikatı sorğusunu imzalayın.
./easyrsa sign-req server vpn-server
Bu addımda imzanı təsdiqləmək üçün "bəli" cavabını verin, sonra kök sertifikatın yaradılması zamanı yaradılmış parolu daxil edin.
Diffie-Hellman parametrlərini yaradın. Bu parametrlər server və müştəri arasında təhlükəsiz açar mübadiləsi üçün istifadə olunur.
./easyrsa gen-dh
Bütün lazımi fayllar yaradıldı. Açarları saxlamaq və yaradılmış faylları oraya köçürmək üçün OpenVPN iş kataloqunda “açarlar” qovluğu yaradaq.
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-ı istifadə edərək konfiqurasiya edin iptables qaydalar. adlı fayl yaradın nat və redaktə etmək üçün açın /etc/openvpn/ kataloq.
#!/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
Faylı yadda saxlayın və icra edilə bilən hala gətirin.
sudo chmod 755 /etc/openvpn/nat
Server konfiqurasiya şablonunu kopyalayın.
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/
Redaktə etmək üçün “/etc/openvpn/server.conf” faylını açın , aşağıdakı sətirlərin olduğundan əmin olun və lazım olduqda onları redaktə edin:
#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
Serverdə trafik yönləndirməsini aktivləşdirin.
sudo sysctl -w net.ipv4.ip_forward=1
echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf
Konfiqurasiyanı tətbiq etmək üçün OpenVPN-i işə salın.
systemctl restart openvpn@server
Server konfiqurasiyası tamamlandı!
Müştəri konfiqurasiyası
OpenVPN-in rəsmi veb saytı olan " https://openvpn.net "ə, "İCMA" bölməsinə keçin.
Aşağı diyirləyin və əməliyyat sisteminizin versiyası üçün quraşdırıcını endirin. Bizim vəziyyətimizdə bu, Windows 11 ARM64-dir.
Defolt olaraq bütün parametrləri tərk edərək proqramı quraşdırın.
Növbəti mərhələdə serverdə aşağıdakı faylı hazırlamalı və onları müştəri kompüterinə köçürməli olacaqsınız:
- açıq və gizli açarlar;
- sertifikatlaşdırma mərkəzinin açarının surəti;
- konfiqurasiya faylı şablonu.
Serverə qoşulun, imtiyazları artırın və yaradılmış kataloqumuza keçin "~/openvpn".
sudo -s
cd ~/openvpn
Müştəri üçün şəxsi açar və sertifikat sorğusu yaradın. Arqument olaraq, ixtiyari bir ad göstərin; bizim vəziyyətimizdə bu, “müştəri1” dir.
./easyrsa gen-req client1 nopass
Kök sertifikatı yaratarkən təyin etdiyimiz parolu daxil edin və Common Name dəyərini standart olaraq buraxın.
Yaradılmış müştəri sertifikatı sorğusunu imzalayın.
./easyrsa sign-req client client1
Bu addımda imzanı təsdiqləmək üçün "bəli" cavabını verin, sonra kök sertifikatın yaradılması zamanı yaradılmış parolu daxil edin.
Rahatlıq üçün gəlin ev kataloqunda 'client1' adlı qovluq yaradaq və müştəri kompüterinə ötürmək üçün nəzərdə tutulan bütün faylları ora köçürük.
mkdir ~/client1
cp pki/issued/client1.crt pki/private/client1.key pki/ca.crt ~/client1/
Müştəri konfiqurasiya faylı şablonunu eyni qovluğa kopyalayın. Kopyalayarkən fayl uzantısını “.ovpn” olaraq dəyişdirin.
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client1/client.ovpn
Kataloqun və bütün “~/client1/” fayllarının sahibini dəyişdirərək onları klientə paylaya bilərsiniz. Bizim vəziyyətimizdə sahibi “mihail” edək.
chown -R mihail:mihail ~/client1
Klient kompüterinə gedin və “~/client1/” qovluğunun məzmununu kopyalayın. Bunu Putty ilə birlikdə gedən “PSCP” yardımçı proqramından istifadə edərək edə bilərsiniz .
PSCP -r mihail@[IP_сервера]:/home/mihail/client1 c:\client1
“ca.crt” , “client1.crt” , “client1.key” açar fayllarını istədiyiniz yerdə saxlaya bilərsiniz . Bizim vəziyyətimizdə onlar “c:\Program Files\OpenVPN\keys” qovluğundadır və “client.ovpn” konfiqurasiya faylını “c:\Program Files\OpenVPN\config” qovluğuna yerləşdiririk.
İndi isə klienti konfiqurasiya etməyə keçək. “c:\Program Files\OpenVPN\config\client.ovpn” faylını mətn redaktorunda açın və aşağıdakı sətirləri redaktə edin:
#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
Qalanını toxunulmaz buraxın.
Faylı yadda saxlayın və “OpenVPN GUI” müştəri tətbiqini işə salın.
Tapşırıq panelindəki tətbiq simgesini sağ klikləyin və "Qoşul" seçin . Bağlantı uğurlu olarsa, simge yaşıl rəngə çevriləcək.
İctimai IP ünvanınızın dəyişdiyinə və indi serverin IP ünvanı ilə eyni olduğuna əmin olmaq üçün istənilən onlayn xidmətdən istifadə edin.