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-ni işə salmaq üçün etməlisiniz VPS server icarəyə götürün. VPN bağlantısı yaratmağa imkan verən müxtəlif proqramlar var. Dəstəklənən əməliyyat sistemləri və istifadə olunan alqoritmlərlə 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ş hesab edilən və təhlükəsiz olmayan, lakin konfiqurasiya etmək həqiqətən asan olan PPTP protokoluna əsaslanır. Digəri 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 hərtərəfli 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 işə salmaq üçün faylı açın “/etc/sysctl.conf” və dəyişiklik “net.ipv4.ip_forward” parametr dəyəri daxil edilir 1.
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 vasitəsi ilə konfiqurasiya edilir iptables. Əvvəlcə əmrlə işləyən xarici şəbəkə interfeysinizin adını yoxlayın "ip link şousu" - növbəti addımda sizə lazım olacaq. adımızdır “ens3”.
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 istifadə edin "iptables-davamlı" kommunal. Aşağıdakı paketi quraşdırın:
sudo apt install iptables-persistent
Quraşdırma prosesinin bir nöqtəsində, cari iptables qaydalarını saxlamağı təklif edəcək bir konfiqurasiya pəncərəsi görəcəksiniz. Qaydalar artıq müəyyən olunduğundan, sadəcə təsdiqləyin və klikləyin "Bəli" iki dəfə. İndidən qaydalar server yenidən işə salındı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 faylı açın “/etc/pptpd.conf” hər hansı bir mətn redaktorunda və onu belə 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 faylı redaktə edin “/etc/ppp/pptpd-options”. Parametrlərin əksəriyyəti standart olaraq qurulur.
#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ə siz müştəri əlaqələri üçün qeyd yaratmalısınız. Tutaq ki, siz istifadəçi əlavə etmək istəyirsiniz "vpnuser" Şifrə ilə "1" və onun üçün dinamik ünvanlamağa icazə verin. Faylı açın “/etc/ppp/chap-secrets” və faylın sonuna istifadəçinin parametrləri ilə aşağıdakı sətri əlavə edin:
vpnuser pptpd 1 *
"pptpd" dəyər faylda qeyd etdiyimiz xidmətin adıdır "pptpd seçimləri". Əvəzinə "*" sabit IP ünvanı təyin edə bilərsiniz. Nəticədə, fayl "parça sirləri" bu kimi görünməlidir:
Parametrləri tətbiq etmək üçün sıfırlayın pptpd xidmət və onu avtomatik yükləməyə əlavə edin.
sudo systemctl restart pptpd
sudo systemctl enable pptpd
Server konfiqurasiyası tamamlandı.
Müştəri konfiqurasiyası
açıq "Başla" - "Ayarlar" - Şəbəkə və İnternet - "VPN" basın “VPN bağlantısı əlavə edin”
Açılan pəncərədə əlaqə parametrlərini daxil edin və vurun "Yadda saxla"
- 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 saxladıqdan sonra pəncərədə yeni VPN bağlantısını görəcəksiniz. Bağlantıya sol klikləyin və seçin “Qoşul”. Uğurlu bir əlaqə halında, görəcəksiniz "Əlaqədar" status.
Seçimlərdə siz müştəri və serverin daxili ünvanlarını tapa bilərsiniz. Sahə “Təyinat ünvanı” xarici server ünvanını göstərir.
Qoşulduqda serverin daxili IP ünvanı, 172.16.0.1 bizim vəziyyətimizdə 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. Bizə lazım olacaq “Asan-RSA” şifrələmə açarlarını idarə etmək üçün paket.
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/
Faylı açın “/etc/openvpn/server.conf” redaktə etmək üçün onun aşağıdakı sətirləri ehtiva etdiyinə ə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 saytına keçin "https://openvpn.net"-ə gedin “CƏMİYYƏT” bölmə.
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. Fayl uzantısını dəyişdirin “.ovpn” kopyalayarkən.
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client1/client.ovpn
Kataloqun sahibini və bütün faylları dəyişdirin “~/müştəri1/” onları müştəriyə paylaya bilmək. edək "mihail" bizim vəziyyətimizdə sahibi.
chown -R mihail:mihail ~/client1
Müştəri kompüterinə gedin və məzmunu kopyalayın “~/müştəri1/” qovluq. nin köməyi ilə bunu edə bilərsiniz "PSCP" kommunal, Putty ilə gedir.
PSCP -r mihail@[IP_сервера]:/home/mihail/client1 c:\client1
Siz əsas faylları saxlaya bilərsiniz "ca.crt", “client1.crt”, “client1.key” istədiyiniz yerdə. Bizim vəziyyətimizdə onlar bu qovluqdadırlar “c:\Proqram Faylları\OpenVPN\açarlar”, və biz konfiqurasiya faylını rejimə gətiririk “client.ovpn” daxil “c:\Proqram Faylları\OpenVPN\config” kataloq.
İndi müştərinin konfiqurasiyasına keçək. Faylı açın “c:\Proqram Faylları\OpenVPN\config\client.ovpn” mətn redaktorunda 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ə müştəri proqramını işə salın “OpenVPN GUI”.
Tapşırıq çubuğundakı proqram simgesini sağ klikləyin və seçin “Qoşul”. Bağlantı uğurlu olarsa, işarə 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.