Имрӯзҳо технологияи VPN маъмултар мегардад. Корбарони оддӣ VPN-ро барои дастрасии бехатар ба Интернет истифода мебаранд. Он инчунин дар атрофи вебсайтҳо ва хидматҳои ба таври маҳаллӣ басташуда кӯмак мекунад ва аз рафтори эҳтимолии зараровари берунӣ муҳофизат мекунад. Вақте ки шумо ба сервери VPN пайваст мешавед, байни компютери шумо ва сервер нақби бехатаре мавҷуд аст, ки аз берун дастрас шудан ғайриимкон аст, бинобар ин сервери VPN нуқтаи дастрасии интернетии шумо мегардад. Дар он ҷо хидматҳои зиёди VPN мавҷуданд, ҳам ройгон ва ҳам пулакӣ, аммо агар онҳо бо ягон сабаб барои шумо кор накунанд, шумо ҳамеша метавонед сервери VPN-и худро танзим кунед.
Барои иҷро кардани VPN-и худ, шумо бояд сервери VPS иҷора гиред. Нармафзори гуногун вуҷуд дорад, ки ба шумо имкон медиҳад пайвасти VPN эҷод кунед. Он аз ҳамдигар бо системаҳои оператсионии дастгирӣшаванда ва алгоритмҳои истифодашуда фарқ мекунад. Мо ду равиши мустақилро барои таъсиси сервери VPN дида мебароем. Якум ба протоколи PPTP асос ёфтааст, ки аллакай кӯҳна ҳисобида мешавад ва бехатар нест, аммо танзимаш воқеан осон аст. Дигараш нармафзори замонавӣ ва бехатари OpenVPN-ро истифода мебарад, аммо насб кардани замимаи муштарии тарафи сеюм ва раванди танзими ҳамаҷонибаро талаб мекунад.
Дар муҳити санҷиши мо, мо мехоҳем сервери виртуалиро истифода барем, ки бо Ubuntu Server 18.04 таъмин карда шудааст. Сипар дар сервер хомӯш карда мешавад, зеро конфигуратсияи он сазовори мақолаи алоҳида аст. Мо раванди насбкуниро дар Windows 10 тавсиф хоҳем кард.
тайёрӣ
Новобаста аз он, ки шумо кадом сервери VPN-ро интихоб мекунед, дастрасии Интернет тавассути воситаҳои ҳамгирошудаи системаи оператсионӣ танзим карда мешавад. Барои кушодани дастрасӣ ба Интернет тавассути интерфейси хидматрасонии беруна, шумо бояд интиқоли бастаҳоро байни интерфейсҳо иҷозат диҳед ва тарҷумаи суроғаи шабакаро танзим кунед.
Барои фаъол кардани интиқоли бастаҳо файлро кушоед "/etc/sysctl.conf" ва тағир диҳед "net.ipv4.ip_forward" арзиши параметр ба 1.
Барои ворид кардани тағирот бидуни аз нав боркунии компютер, фармонро иҷро кунед
sudo sysctl -p /etc/sysctl.conf
Тарҷумаи суроғаи шабакавӣ бо воситаи iptables. Аввалан, номи интерфейси шабакаи берунии худро, ки фармонро иҷро мекунад, санҷед "Намоиши пайванди IP" - ба шумо дар қадами оянда лозим мешавад. Номи мо "ens3".
Тарҷумаи суроғаҳои шабакаро дар интерфейси берунии худ барои ҳама гиреҳҳои шабакаи маҳаллӣ фаъол созед.
sudo iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
Дар хотир доред, ки шумо бояд номи воқеии интерфейси сервери худро муайян кунед, он метавонад аз мо фарқ кунад.
Бо нобаёнӣ, ҳамаи қоидаҳое, ки аз ҷониби iptables сохта шудаанд, пас аз бозоғозии сервер аз нав барқарор карда мешаванд. Барои пешгирии он, истифода баред "iptables-пойдор" фоиданок. Бастаи зеринро насб кунед:
sudo apt install iptables-persistent
Дар баъзе лаҳзаҳо дар ҷараёни насб, шумо равзанаи конфигуратсияро хоҳед дид, ки ба шумо тавсия медиҳад, ки қоидаҳои ҷории iptables захира кунед. Азбаски қоидаҳо аллакай муайян шудаанд, танҳо тасдиқ кунед ва клик кунед "Ҳа" ду маротиба. Аз ҳоло қоидаҳо пас аз бозоғозкунии сервер ба таври худкор татбиқ карда мешаванд.
Сервери PPTP
Конфигуратсияи сервер
Бастаро насб кунед:
sudo apt install pptpd
Пас аз ба охир расидани насб, файлро кушоед "/etc/pptpd.conf" дар ягон муҳаррири матнӣ ва онро чунин таҳрир кунед:
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
Баъд аз ин, файлро таҳрир кунед "/etc/ppp/pptpd-options". Аксари параметрҳо бо нобаёнӣ танзим карда мешаванд.
#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
Дар марҳилаи навбатӣ ба шумо лозим меояд, ки сабти пайвастҳои муштарӣ эҷод кунед. Фарз мекунем, ки шумо мехоҳед корбарро илова кунед "vpnuser" бо парол "1" ва ба ӯ муроҷиати динамикӣ иҷозат диҳед. Файлро кушоед "/etc/ppp/chap-secrets" ва сатри зеринро бо параметрҳои корбар дар охири файл илова кунед:
vpnuser pptpd 1 *
"pptpd" арзиш номи хидматест, ки мо дар файл нишон додем "Options pptpd". Ба ҷои "*" шумо метавонед суроғаи IP собит муайян. Дар натиҷа, файл "сирри асрор" бояд чунин бошад:
Барои татбиқ кардани танзимот аз нав танзим кунед pptpd хидмат кунед ва онро ба боркунии худкор илова кунед.
sudo systemctl restart pptpd
sudo systemctl enable pptpd
Конфигуратсияи сервер анҷом ёфт.
Конфигуратсияи муштарӣ
кушодан «Оғоз» - "Танзимот" - Шабака ва Интернет - "VPN" ва пахш кунед "Илова кардани пайвасти VPN"
Дар равзанаи кушодашуда параметрҳои пайвастшавиро ворид кунед ва клик кунед "Захира"
- Провайдери VPN: "Windows (дохилшуда)"
- Номи пайвастшавӣ: "vpn_connect" (шумо метавонед ягон номро интихоб кунед)
- Номи сервер ё суроға: (суроғаи IP-и берунаи серверро муайян кунед)
- Навъи VPN: "Авто"
- Навъи маълумоти воридшавӣ: "Номи корбар ва парол"
- Номи корбар: vpnuser (ном, ки дар файли "chap-secrets" дар сервер нишон дода шудааст)
- Рамз: 1 (чунон ки дар файли "chap-secrets")
Пас аз захира кардани параметрҳо, шумо дар тиреза пайвасти нави VPN-ро хоҳед дид. Пайвастро бо тугмаи чапи муш клик кунед ва интихоб кунед "Пайваст". Дар сурати бомуваффақият пайваст шудан, шумо хоҳед дид "Пайваст" мақоми
Дар Параметрҳо, шумо суроғаҳои дохилии муштарӣ ва серверро хоҳед ёфт. Майдон "Суроғаи таъинот" суроғаи сервери беруниро нишон медиҳад.
Ҳангоми пайвастшавӣ, суроғаи IP-и дохилии сервер, 172.16.0.1 дар ҳолати мо, дарвозаи пешфарз барои ҳама бастаҳои содиротӣ мегардад.
Бо истифода аз ҳама гуна хидматҳои онлайн, шумо метавонед боварӣ ҳосил кунед, ки суроғаи IP-и берунаи компютер ҳоло бо суроғаи IP-и сервери VPN-и шумо яксон аст.
Сервери OpenVPN
Конфигуратсияи сервер
Биёед сатҳи иҷозатҳои корбари кунуниро пешбарӣ кунем, зеро барои конфигуратсияи минбаъдаи мо дастрасии реша лозим мешавад.
sudo -s
Ҳама бастаҳои заруриро насб кунед. ба мо лозим мешавад "Осон-RSA" баста барои идоракунии калидҳои рамзгузорӣ.
apt install openvpn easy-rsa iptables-persistent
Ба пайвастҳои воридотӣ дар порти 1194 тавассути протоколи UDP иҷозат диҳед ва қоидаҳои iptables-ро татбиқ кунед.
sudo iptables -I INPUT -p udp --dport 1194 -j ACCEPT
sudo netfilter-persistent save
Бо файлҳои нусхабардорӣ аз бастаи "Easy-RSA" директория эҷод кунед ва ба он гузаред.
make-cadir ~/openvpn
cd ~/openvpn
Инфрасохтори калидҳои оммавӣ (PKI) эҷод кунед.
./easyrsa init-pki
Шаҳодатномаи решаи Authority Certificate (CA) -ро эҷод кунед.
./easyrsa build-ca
Дар ҷараёни эҷод, аз шумо хоҳиш карда мешавад, ки паролро насб кунед ва дар хотир нигоҳ доред. Шумо инчунин бояд ба саволҳо ҷавоб диҳед ва маълумотро дар бораи соҳиби калид ворид кунед. Шумо метавонед арзишҳои пешфарзро, ки дар қавсҳои мураббаъ оварда шудаанд, тарк кунед. Барои анҷом додани воридот "Enter" -ро пахш кунед.
Калиди хусусӣ ва дархости сертификат тавлид кунед. Ҳамчун далел, номи ихтиёриро нишон диҳед; дар ҳолати мо, он "vpn-server" аст.
./easyrsa gen-req vpn-server nopass
Қимати Номи умумиро ҳамчун пешфарз гузоред.
Дархости сертификати серверро имзо кунед.
./easyrsa sign-req server vpn-server
Дар ин қадам, барои тасдиқи имзо "ҳа" ҷавоб диҳед ва пас паролро ворид кунед, ки ҳангоми тавлиди сертификати реша сохта шудааст.
Параметрҳои Diffie-Hellman тавлид кунед. Ин параметрҳо барои мубодилаи бехатари калидҳо байни сервер ва муштарӣ истифода мешаванд.
./easyrsa gen-dh
Ҳама файлҳои зарурӣ тавлид карда шуданд. Биёед дар феҳристи кории OpenVPN папкаи "калидҳо" эҷод кунем, то калидҳоро нигоҳ дошта, файлҳои эҷодшударо дар он ҷо нусхабардорӣ кунем.
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-ро танзим кунед iptables қоидаҳо. Файлеро бо номи худ созед nat ва онро барои таҳрир дар /etc/openvpn/ феҳристи.
#!/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
Файлро захира кунед ва онро иҷрошаванда созед.
sudo chmod 755 /etc/openvpn/nat
Шаблони конфигуратсияи серверро нусхабардорӣ кунед.
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/
Файлро кушоед "/etc/openvpn/server.conf" барои таҳрир, боварӣ ҳосил кунед, ки он дорои сатрҳои зерин аст ва агар лозим бошад, онҳоро таҳрир кунед:
#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
Интиқоли трафикро дар сервер фаъол созед.
sudo sysctl -w net.ipv4.ip_forward=1
echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf
Барои татбиқ кардани конфигуратсия OpenVPN-ро оғоз кунед.
systemctl restart openvpn@server
Конфигуратсияи сервер ба анҷом расид!
Конфигуратсияи муштарӣ
Ба вебсайти расмии OpenVPN равед "https://openvpn.net”, ба сӯи "ҶАМЪИЯТ" ҷудокунӣ.
Ба поён ҳаракат кунед ва насбкунандаро барои версияи системаи оператсионии худ зеркашӣ кунед. Дар ҳолати мо, он Windows 11 ARM64 аст.
Барномаро насб кунед, ки ҳамаи параметрҳоро бо нобаёнӣ тарк мекунад.
Дар марҳилаи оянда шумо бояд файли зеринро дар сервер омода кунед ва онҳоро ба компютери муштарӣ интиқол диҳед:
- калидҳои ҷамъиятӣ ва хусусӣ;
- нусхаи калиди маркази сертификатсия;
- Шаблон файли конфигуратсия.
Ба сервер пайваст шавед, имтиёзҳоро баланд бардоред ва ба феҳристи офаридаи мо гузаред "~/openvpn".
sudo -s
cd ~/openvpn
Барои муштарӣ калиди хусусӣ ва дархости сертификат тавлид кунед. Ҳамчун далел, номи ихтиёриро нишон диҳед; дар мавриди мо ин «мизоч1» аст.
./easyrsa gen-req client1 nopass
Рамзеро, ки мо ҳангоми сохтани шаҳодатномаи реша муқаррар кардем, ворид кунед ва арзиши Номи умумиро ҳамчун пешфарз гузоред.
Дархости сертификати муштарии тавлидшударо имзо кунед.
./easyrsa sign-req client client1
Дар ин қадам, барои тасдиқи имзо "ҳа" ҷавоб диҳед ва пас паролро ворид кунед, ки ҳангоми тавлиди сертификати реша сохта шудааст.
Барои роҳат, биёед дар директорияи хонагӣ папкаеро бо номи 'client1' созем ва ҳамаи файлҳоеро, ки барои интиқол ба компютери муштарӣ пешбинӣ шудаанд, ба он нусхабардорӣ кунем.
mkdir ~/client1
cp pki/issued/client1.crt pki/private/client1.key pki/ca.crt ~/client1/
Шаблони файли танзимоти муштариро ба ҳамон директория нусхабардорӣ кунед. Тағир додани васеъшавии файл ба ".ovpn" ҳангоми нусхабардорӣ.
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client1/client.ovpn
Соҳиби директория ва ҳамаи файлҳоро тағир диҳед "~/client1/" ки онхоро ба мизочон таксим карда тавонанд. биёед созем "михайл" соҳиби дар ҳолати мо.
chown -R mihail:mihail ~/client1
Ба компютери муштарӣ равед ва мундариҷаи онро нусхабардорӣ кунед "~/client1/" папка. Шумо метавонед ин корро бо ёрии "PSCP" коммуналӣ, ки бо Putty мувофиқ аст.
PSCP -r mihail@[IP_сервера]:/home/mihail/client1 c:\client1
Шумо метавонед файлҳои калидиро захира кунед "ca.crt", "client1.crt", "client1.key" ҳар ҷо, ки мехоҳед. Дар мавриди мо, онҳо дар ин ҷузвдон ҳастанд "c: \ Files Program \ OpenVPN \ калидҳо", ва мо файли конфигуратсияро танзим мекунем "client.ovpn" ба дар "c: \ Files Program \ OpenVPN \ config" феҳристи.
Акнун биёед ба танзими муштарӣ равем. Файлро кушоед "c:\Файлҳои барнома\OpenVPN\config\client.ovpn" дар муҳаррири матн ва сатрҳои зеринро таҳрир кунед:
#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
Боқимондаро дастнорас гузоред.
Файлро захира кунед ва барномаи муштариро оғоз кунед "GUI OpenVPN".
Ба тасвири барнома дар панели супоришҳо рост клик кунед ва интихоб кунед "Пайваст". Агар пайвастшавӣ муваффақ бошад, нишона сабз мешавад.
Ҳама гуна хидмати онлайнро истифода баред, то боварӣ ҳосил кунед, ки суроғаи IP-и шумо тағир ёфтааст ва ҳоло бо суроғаи IP-и сервер яксон аст.