Hozirgi vaqtda VPN texnologiyasi tobora ommalashib bormoqda. Oddiy foydalanuvchilar Internetga xavfsiz kirish uchun VPN-dan foydalanadilar. Shuningdek, u mahalliy bloklangan veb-saytlar va xizmatlarni aylanib chiqishga yordam beradi va tashqi zararli xatti-harakatlardan himoya qiladi. VPN serveriga ulanayotganingizda, kompyuteringiz va server o'rtasida xavfsiz tunnel mavjud bo'lib, unga tashqaridan kirish imkoni bo'lmaydi, shuning uchun VPN serveri Internetga kirish nuqtangizga aylanadi. Bu yerda bepul va pullik VPN xizmatlari juda ko‘p, lekin ular biron sababga ko‘ra ishlamasa, siz har doim o‘z VPN serveringizni sozlashingiz mumkin.
VPN-ni ishga tushirish uchun siz kerak VPS serverni ijaraga oling. VPN ulanishini yaratishga imkon beruvchi turli xil dasturlar mavjud. U qo'llab-quvvatlanadigan operatsion tizimlar va ishlatiladigan algoritmlar bilan bir-biridan farq qiladi. VPN serverini o'rnatish uchun ikkita mustaqil yondashuvni ko'rib chiqamiz. Birinchisi PPTP protokoliga asoslangan bo'lib, u allaqachon eskirgan va xavfsiz emas, lekin sozlash juda oson. Ikkinchisi zamonaviy va xavfsiz OpenVPN dasturiy ta'minotidan foydalanadi, ammo uchinchi tomon mijoz ilovasini o'rnatish va yanada chuqurroq sozlash jarayonini talab qiladi.
Sinov muhitimizda biz Ubuntu Server 18.04 tomonidan quvvatlanadigan virtual serverdan foydalanmoqchimiz. Xavfsizlik devori serverda o'chiriladi, chunki uning konfiguratsiyasi alohida maqolaga loyiqdir. Windows 10 da o'rnatish jarayonini tasvirlab beramiz.
tayyorgarlik
Qaysi VPN serverini tanlamasligingizdan qat'iy nazar, Internetga kirish operatsion tizimning o'rnatilgan vositalari orqali o'rnatiladi. Tashqi xizmat interfeysi orqali Internetga kirishni ochish uchun siz interfeyslar o'rtasida paketlarni yo'naltirishga ruxsat berishingiz va tarmoq manzili tarjimasini sozlashingiz kerak.
Paketni yo'naltirishni yoqish uchun faylni oching “/etc/sysctl.conf” va o'zgartirish “net.ipv4.ip_forward” parametr qiymatiga kiradi 1.
O'zgarishlarni kompyuterni qayta yoqmasdan qo'llash uchun buyruqni bajaring
sudo sysctl -p /etc/sysctl.conf
Tarmoq manzili tarjimasi yordamida sozlangan iptables. Birinchidan, buyruq bilan ishlaydigan tashqi tarmoq interfeysi nomini tekshiring "IP havolasini ko'rsatish" - keyingi bosqichda sizga kerak bo'ladi. Bizning ismimiz "ens3".
Barcha mahalliy tarmoq tugunlari uchun tashqi interfeysingizda tarmoq manzili tarjimasini yoqing.
sudo iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
E'tibor bering, siz serveringiz interfeysining haqiqiy nomini ko'rsatishingiz kerak, u biznikidan farq qilishi mumkin.
Odatiy bo'lib, iptables tomonidan yaratilgan barcha qoidalar server qayta ishga tushirilgandan so'ng tiklanadi. Buning oldini olish uchun foydalaning "iptables-doimiy" yordamchi dastur. Quyidagi paketni o'rnating:
sudo apt install iptables-persistent
O'rnatish jarayonining bir nuqtasida siz joriy iptables qoidalarini saqlashni taklif qiladigan konfiguratsiya oynasini ko'rasiz. Qoidalar allaqachon aniqlanganligi sababli, tasdiqlang va bosing "Ha" ikki marta. Endi qoidalar server qayta ishga tushirilgandan so'ng avtomatik ravishda qo'llaniladi.
PPTP serveri
Server konfiguratsiyasi
Paketni o'rnating:
sudo apt install pptpd
O'rnatish tugagandan so'ng, faylni oching “/etc/pptpd.conf” har qanday matn muharririda va uni quyidagicha tahrirlang:
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
Shundan so'ng, faylni tahrirlang “/etc/ppp/pptpd-options”. Ko'pgina parametrlar sukut bo'yicha o'rnatiladi.
#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
Keyingi bosqichda siz mijoz ulanishlari uchun rekord yaratishingiz kerak bo'ladi. Aytaylik, siz foydalanuvchi qo'shmoqchisiz "vpnuser" parol bilan "1" va unga dinamik murojaat qilishga ruxsat bering. Faylni oching “/etc/ppp/chap-secrets” va faylning oxiriga foydalanuvchi parametrlari bilan quyidagi qatorni qo'shing:
vpnuser pptpd 1 *
"pptpd" qiymat - biz faylda ko'rsatgan xizmat nomi "pptpd-variantlar". Ning o'rniga "*" belgilangan IP manzilni belgilashingiz mumkin. Natijada, fayl "Sirlari" quyidagicha ko'rinishi kerak:
Sozlamalarni qo'llash uchun qayta o'rnating pptpd xizmat ko'rsating va uni avtomatik yuklashga qo'shing.
sudo systemctl restart pptpd
sudo systemctl enable pptpd
Server konfiguratsiyasi tugallandi.
Mijoz konfiguratsiyasi
ochiq "Boshlash" - "Sozlamalar" - Tarmoq va Internet - "VPN" bosing "VPN ulanishini qo'shish"
Ochilgan oynada ulanish parametrlarini kiriting va bosing "Saqlash"
- VPN provayderi: "Windows (o'rnatilgan)"
- Ulanish nomi: “vpn_connect” (istalgan nomni tanlashingiz mumkin)
- Server nomi yoki manzili: (serverning tashqi IP manzilini ko'rsating)
- VPN turi: “Avtomatik”
- Kirish ma'lumotlari turi: "Foydalanuvchi nomi va parol"
- Foydalanuvchi ismi: vpnuser (serverdagi "chap-secrets" faylida ko'rsatilgan nom)
- Parol: 1 ("Chap-secrets" faylida bo'lgani kabi)
Parametrlarni saqlaganingizdan so'ng, siz oynada yangi VPN ulanishini ko'rasiz. Ulanishni sichqonchaning chap tugmasi bilan bosing va tanlang "Ulanmoq". Muvaffaqiyatli ulanish bo'lsa, siz ko'rasiz "Ulangan" holat.
Variantlar bo'limida siz mijoz va serverning ichki manzillarini topasiz. Maydon "Maqsad manzili" tashqi server manzilini ko'rsatadi.
Ulanganda serverning ichki IP manzili, 172.16.0.1 bizning holatlarimizda barcha chiquvchi paketlar uchun standart shlyuzga aylanadi.
Har qanday onlayn xizmatdan foydalanib, kompyuterning tashqi IP manzili VPN serveringiz IP manzili bilan bir xil ekanligiga ishonch hosil qilishingiz mumkin.
OpenVPN serveri
Server konfiguratsiyasi
Keling, joriy foydalanuvchining ruxsatlar darajasini targ'ib qilaylik, chunki keyingi konfiguratsiyamiz uchun bizga ildizga kirish kerak bo'ladi.
sudo -s
Barcha kerakli paketlarni o'rnating. Bizga kerak bo'ladi "Oson-RSA" shifrlash kalitlarini boshqarish uchun paket.
apt install openvpn easy-rsa iptables-persistent
UDP protokoli orqali 1194 portidagi kiruvchi ulanishlarga ruxsat bering va iptables qoidalarini qo'llang.
sudo iptables -I INPUT -p udp --dport 1194 -j ACCEPT
sudo netfilter-persistent save
"Easy-RSA" to'plamidan nusxalangan fayllar bilan katalog yarating va unga o'ting.
make-cadir ~/openvpn
cd ~/openvpn
Ochiq kalitlar infratuzilmasini (PKI) yaratish.
./easyrsa init-pki
Sertifikat organining (CA) ildiz sertifikatini yarating.
./easyrsa build-ca
Yaratish jarayonida sizdan parol o'rnatish va eslab qolish so'raladi. Shuningdek, savollarga javob berishingiz va kalit egasi haqidagi maʼlumotlarni kiritishingiz kerak boʻladi. Kvadrat qavs ichida berilgan standart qiymatlarni qoldirishingiz mumkin. Kirishni yakunlash uchun "Enter" tugmasini bosing.
Shaxsiy kalit va sertifikat so'rovini yarating. Argument sifatida ixtiyoriy nomni ko'rsating; bizning holatlarimizda bu "vpn-server".
./easyrsa gen-req vpn-server nopass
Umumiy nom qiymatini standart sifatida qoldiring.
Yaratilgan server sertifikat so'rovini imzolang.
./easyrsa sign-req server vpn-server
Ushbu bosqichda imzoni tasdiqlash uchun "ha" deb javob bering, so'ngra ildiz sertifikatini yaratish paytida yaratilgan parolni kiriting.
Diffie-Hellman parametrlarini yarating. Ushbu parametrlar server va mijoz o'rtasida xavfsiz kalit almashinuvi uchun ishlatiladi.
./easyrsa gen-dh
Barcha kerakli fayllar yaratildi. Keling, kalitlarni saqlash va u erda yaratilgan fayllarni nusxalash uchun OpenVPN ishchi katalogida "kalitlar" papkasini yarataylik.
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
yordamida NAT ni sozlang iptables qoidalar. nomli fayl yarating nat va uni tahrirlash uchun oching /etc/openvpn/ katalog.
#!/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
Faylni saqlang va uni bajariladigan qilib qo'ying.
sudo chmod 755 /etc/openvpn/nat
Server konfiguratsiyasi shablonini nusxalash.
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/
Faylni oching “/etc/openvpn/server.conf” tahrirlash uchun quyidagi satrlarni o'z ichiga olganligiga ishonch hosil qiling va kerak bo'lganda ularni tahrirlang:
#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
Serverda trafikni yo'naltirishni yoqing.
sudo sysctl -w net.ipv4.ip_forward=1
echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf
Konfiguratsiyani qo'llash uchun OpenVPN-ni ishga tushiring.
systemctl restart openvpn@server
Serverni sozlash tugallandi!
Mijoz konfiguratsiyasi
OpenVPN rasmiy veb-saytiga o'ting "https://openvpn.net" ga o'ting “JAMOAT” Bo'lim.
Pastga aylantiring va operatsion tizimingiz versiyasi uchun o'rnatuvchini yuklab oling. Bizning holatda, bu Windows 11 ARM64.
Sukut bo'yicha barcha parametrlarni qoldirib, dasturni o'rnating.
Keyingi bosqichda siz serverda quyidagi faylni tayyorlashingiz va ularni mijoz kompyuteriga o'tkazishingiz kerak bo'ladi:
- ochiq va shaxsiy kalitlar;
- sertifikatlashtirish markazi kalitining nusxasi;
- konfiguratsiya fayli shabloni.
Serverga ulaning, imtiyozlarni oshiring va yaratilgan katalogimizga o'ting "~/openvpn".
sudo -s
cd ~/openvpn
Mijoz uchun shaxsiy kalit va sertifikat so'rovini yarating. Argument sifatida ixtiyoriy nomni ko'rsating; bizning holatlarimizda bu “mijoz1”.
./easyrsa gen-req client1 nopass
Ildiz sertifikatini yaratishda biz o'rnatgan parolni kiriting va Common Name qiymatini sukut bo'yicha qoldiring.
Yaratilgan mijoz sertifikat so'rovini imzolang.
./easyrsa sign-req client client1
Ushbu bosqichda imzoni tasdiqlash uchun "ha" deb javob bering, so'ngra ildiz sertifikatini yaratish paytida yaratilgan parolni kiriting.
Qulaylik uchun uy katalogida 'client1' nomli papka yaratamiz va unga mijoz kompyuteriga o'tkazish uchun mo'ljallangan barcha fayllarni nusxalaymiz.
mkdir ~/client1
cp pki/issued/client1.crt pki/private/client1.key pki/ca.crt ~/client1/
Mijoz konfiguratsiya fayli shablonini bir xil katalogga nusxalash. Fayl kengaytmasini o'zgartiring ".ovpn" nusxalash paytida.
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client1/client.ovpn
Katalog egasini va barcha fayllarni o'zgartiring “~/client1/” ularni mijozga tarqatish imkoniyatiga ega bo'lish. qilaylik "mixail" bizning holatimizda egasi.
chown -R mihail:mihail ~/client1
Mijoz kompyuteriga o'ting va uning mazmunini nusxalang “~/client1/” papka. Siz buni yordami bilan qilishingiz mumkin "PSCP" yordamchi dastur, bu Putty bilan mos keladi.
PSCP -r mihail@[IP_сервера]:/home/mihail/client1 c:\client1
Siz asosiy fayllarni saqlashingiz mumkin "ca.crt", "client1.crt", “client1.key” xohlagan joyda. Bizning holatlarimizda ular ushbu papkada "c: \ Program Files \ OpenVPN \ kalitlari", va biz konfiguratsiya faylini tartibga solamiz "client.ovpn" ichiga “c:\Dastur fayllari\OpenVPN\config” katalog.
Endi mijozni sozlashga o'tamiz. Faylni oching “c:\Dastur fayllari\OpenVPN\config\client.ovpn” matn muharririda va quyidagi qatorlarni tahrirlang:
#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
Qolganlarini tegmasdan qoldiring.
Faylni saqlang va mijoz dasturini ishga tushiring “OpenVPN GUI”.
Vazifalar panelidagi ilova belgisini o'ng tugmasini bosing va tanlang "Ulanmoq". Agar ulanish muvaffaqiyatli bo'lsa, belgi yashil rangga aylanadi.
Umumiy IP manzilingiz o'zgarganiga va hozir serverning IP manzili bilan bir xil ekanligiga ishonch hosil qilish uchun har qanday onlayn xizmatdan foydalaning.