Ma'lumotlar bazasi Profitserver xizmati bilan ishlash bo'yicha oddiy ko'rsatmalar
asosiy Ma'lumotlar bazasi Linuxda VPN serverini sozlash: PPTP yoki OpenVPN?

Linuxda VPN serverini sozlash: PPTP yoki OpenVPN?


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.

VPN o'rnatish uchun paketlarni yo'naltirishni yoqing

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".

ip havolasi namoyishi

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.

Manzil tarjimasini yoqing

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:

VPN serverini sozlash

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"

VPN ulanishi uchun mijozni sozlash

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.

VPN ulanishi qo'shilmoqda

Variantlar bo'limida siz mijoz va serverning ichki manzillarini topasiz. Maydon "Maqsad manzili" tashqi server manzilini ko'rsatadi.

VPN serverini o'zingiz qanday sozlashingiz mumkin

Ulanganda serverning ichki IP manzili, 172.16.0.1 bizning holatlarimizda barcha chiquvchi paketlar uchun standart shlyuzga aylanadi.

Tashqi IP-manzilni tekshiring

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.

Zaxodim na ofitsialnyy sayt proekta “https://openvpn.net”, perexodim v razdel “COMUNITY”.

Pastga aylantiring va operatsion tizimingiz versiyasi uchun o'rnatuvchini yuklab oling. Bizning holatda, bu Windows 11 ARM64.

prolistyvaem vniz i skachivaem o'rnatuvchi uchun svoyy versiyasi operasionnoy tizimi. Bu Windows 11 ARM64 uchun.

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.

Vvodim parol, kotoryy my ustanavvlivali pri sozdanii kornevogo sertifikata va ostavlyaem znachenie Common Name po umolchaniyu.

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.

Na etom shage otvechaem "ha" uchun podtverjdeniya podpisi, keyin chego vvodim parol, kotoryy byl so'zdan keyin sozdanii kornevogo sertifikat.

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”.

VPN sozlamalari tugallandi

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.

❮ Oldingi maqola Serveringizda Wireguard VPN-ni qanday sozlash mumkin
Keyingi maqola ❯ FTP serverini sozlash

Bizdan VPS haqida so'rang

Biz har doim kunduzi yoki tunning istalgan vaqtida savollaringizga javob berishga tayyormiz.