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 serveringizni ishga tushirish uchun siz VPS serverini ijaraga olishingiz kerak . VPN ulanishini yaratishga imkon beruvchi turli xil dasturlar mavjud. Ular bir-biridan qo'llab-quvvatlanadigan operatsion tizimlar va ishlatiladigan algoritmlar bilan farq qiladi. VPN serverini sozlashning ikkita mustaqil yondashuvini ko'rib chiqamiz. Birinchisi, allaqachon eskirgan va xavfsiz emas deb hisoblangan, ammo sozlash juda oson bo'lgan PPTP protokoliga asoslangan. Ikkinchisi zamonaviy va xavfsiz OpenVPN dasturidan foydalanadi, ammo uchinchi tomon mijoz dasturini o'rnatishni va batafsilroq 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.
Paketlarni yo'naltirishni yoqish uchun “/etc/sysctl.conf” faylini oching va “net.ipv4.ip_forward” parametr qiymatini 1 ga o'zgartiring.
O'zgarishlarni kompyuterni qayta yoqmasdan qo'llash uchun buyruqni bajaring
sudo sysctl -p /etc/sysctl.conf
Tarmoq manzilini tarjima qilish iptables yordamida sozlangan . Avval tashqi tarmoq interfeysingiz nomini “ip link show” buyrug'ini ishga tushirib tekshiring - bu sizga keyingi bosqichda kerak bo'ladi. Bizning nomimiz “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 qayta tiklanadi. Buning oldini olish uchun "iptables-persistent" yordam dasturidan foydalaning. 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, shunchaki tasdiqlang va "Ha" ni ikki marta bosing. Endi server qayta ishga tushirilgandan so'ng qoidalar avtomatik ravishda qo'llaniladi.
PPTP serveri
Server konfiguratsiyasi
Paketni o'rnating:
sudo apt install pptpd
O'rnatish tugagandan so'ng, istalgan matn muharririda "/etc/pptpd.conf" faylini oching 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, "/etc/ppp/pptpd-options" faylini tahrirlang . Parametrlarning aksariyati 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 yozuv yaratishingiz kerak bo'ladi. Aytaylik, siz "1" paroliga ega "vpnuser" foydalanuvchisini qo'shmoqchisiz va unga dinamik manzil berishga ruxsat bermoqchisiz. "/etc/ppp/chap-secrets" faylini oching va fayl oxirida foydalanuvchi parametrlari bilan quyidagi qatorni qo'shing:
vpnuser pptpd 1 *
“pptpd” qiymati – bu “pptpd-options” faylida koʻrsatgan xizmat nomi . “*” oʻrniga siz belgilangan IP-manzilni koʻrsatishingiz mumkin. Natijada, “chap-secrets” fayli quyidagicha koʻrinishi kerak:
Sozlamalarni qo'llash uchun pptpd xizmatini qayta o'rnating va uni avtomatik yuklashga qo'shing.
sudo systemctl restart pptpd
sudo systemctl enable pptpd
Server konfiguratsiyasi tugallandi.
Mijoz konfiguratsiyasi
"Ishga tushirish" - "Sozlamalar" - "Tarmoq va Internet" - "VPN" ni oching va "VPN ulanishini qo'shish" tugmasini bosing.
Ochilgan oynada ulanish parametrlarini kiriting va "Saqlash" tugmasini bosing
- 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, oynada yangi VPN ulanishini ko'rasiz. Ulanishni chap tugmacha bilan bosing va "Ulanish" -ni tanlang . Muvaffaqiyatli ulanish holatida "Ulangan" holatini ko'rasiz.
" Parametrlar" bo'limida mijoz va serverning ichki manzillarini topasiz. "Manzil manzili" maydonida tashqi server manzili ko'rsatiladi.
Ulanganda, bizning holatimizda serverning ichki IP-manzili, 172.16.0.1 , 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. Shifrlash kalitlarini boshqarish uchun bizga "Easy-RSA" paketi kerak bo'ladi.
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/
Tahrirlash uchun “/etc/openvpn/server.conf” faylini oching , unda quyidagi qatorlar borligiga ishonch hosil qiling va agar kerak bo'lsa, 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 ”, “JAMOAT” bo'limiga o'ting.
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 o'sha katalogga nusxalang. Nusxalash paytida fayl kengaytmasini ".ovpn" ga o'zgartiring.
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client1/client.ovpn
Katalog va barcha “~/client1/” fayllarini mijozga tarqatish uchun ularning egasini oʻzgartiring. Bizning holatimizda egasini “mihail” qilaylik.
chown -R mihail:mihail ~/client1
Mijoz kompyuteriga o'ting va "~/client1/" papkasining tarkibini nusxalang. Buni Putty bilan birga keladigan "PSCP" yordamchi dasturi yordamida amalga oshirishingiz mumkin .
PSCP -r mihail@[IP_сервера]:/home/mihail/client1 c:\client1
Siz “ca.crt” , “client1.crt” , “client1.key” kalit fayllarini xohlagan joyingizda saqlashingiz mumkin . Bizning holatimizda, ular “c:\Program Files\OpenVPN\keys” papkasida joylashgan va biz “client.ovpn” konfiguratsiya faylini “c:\Program Files\OpenVPN\config” katalogiga joylashtiramiz.
Endi mijozni sozlashga o'tamiz. Matn muharririda “c:\Program Files\OpenVPN\config\client.ovpn” faylini oching 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 “OpenVPN GUI” mijoz dasturini ishga tushiring.
Vazifalar panelidagi ilova belgisini sichqonchaning o'ng tugmasi bilan bosing va "Ulanish" -ni tanlang . 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.