Өнөө үед 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 link show” командыг ажиллуулж шалгана уу - энэ нь танд дараагийн алхамд хэрэг болно. Бидний нэр бол “ens3”.
Дотоод сүлжээний бүх зангилааны гадаад интерфейс дээр сүлжээний хаягийн орчуулгыг идэвхжүүлнэ үү.
sudo iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
Та өөрийн серверийн интерфейсийн жинхэнэ нэрийг зааж өгөх хэрэгтэй гэдгийг анхаарна уу, энэ нь биднийхээс өөр байж болно.
Анхдагчаар, сервер дахин ачаалсны дараа iptables-ийн үүсгэсэн бүх дүрмүүд дахин тохируулагддаг. Үүнээс урьдчилан сэргийлэхийн тулд “iptables-persistent” хэрэгслийг ашиглаарай. Дараах пакетийг суулгана уу:
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
Дараагийн шатанд та клиент холболтын бичлэг үүсгэх шаардлагатай болно. Та "1" нууц үгтэй "vpnuser" хэрэглэгчийг нэмж, түүнд динамик хаягжуулалт хийхийг хүсэж байна гэж бодъё. "/etc/ppp/chap-secrets" файлыг нээгээд файлын төгсгөлд хэрэглэгчийн параметрүүдтэй дараах мөрийг нэмнэ үү:
vpnuser pptpd 1 *
“pptpd” утга нь бидний “pptpd-options” файлд заасан үйлчилгээний нэр юм . “*”- ийн оронд та тогтмол IP хаягийг зааж өгч болно. Үүний үр дүнд “chap-secrets” файл дараах байдалтай харагдах ёстой:
Тохиргоог хэрэгжүүлэхийн тулд 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 хаяг нь VPN серверийн IP хаягтай ижил байгаа эсэхийг шалгах боломжтой.
OpenVPN сервер
Серверийн тохиргоо
Одоо байгаа хэрэглэгчийн зөвшөөрлийн түвшинг дэмжицгээе, учир нь бидний цаашдын тохиргоонд root хандалт хэрэгтэй болно.
sudo -s
Шаардлагатай бүх пакетуудыг суулгана уу. Шифрлэлтийн түлхүүрүүдийг удирдахын тулд бидэнд “Easy-RSA” пакет хэрэгтэй болно.
apt install openvpn easy-rsa iptables-persistent
UDP протоколоор 1194 порт дээр ирж буй холболтыг зөвшөөрч, 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
Гэрчилгээний албаны (CA) эх гэрчилгээг үүсгэнэ үү.
./easyrsa build-ca
Үүсгэх явцад нууц үг тохируулах, санахыг хүсэх болно. Та мөн асуултуудад хариулж, түлхүүр эзэмшигчийн талаарх мэдээллийг оруулах хэрэгтэй. Та дөрвөлжин хаалтанд өгсөн өгөгдмөл утгуудыг үлдээж болно. Оролтоо дуусгахын тулд "Enter" товчийг дарна уу.
Хувийн түлхүүр болон гэрчилгээний хүсэлтийг үүсгэх. Аргумент болгон дурын нэрийг зааж өгнө үү; Манай тохиолдолд энэ нь "vpn-сервер" юм.
./easyrsa gen-req vpn-server nopass
Common Name утгыг өгөгдмөл болгож үлдээнэ үү.
Үүсгэсэн серверийн гэрчилгээний хүсэлтэд гарын үсэг зурна уу.
./easyrsa sign-req server vpn-server
Энэ үе шатанд гарын үсгээ баталгаажуулахын тулд "тийм" гэж хариулж, үндсэн гэрчилгээ үүсгэх явцад үүсгэсэн нууц үгээ оруулна уу.
Диффи-Хеллман параметрүүдийг үүсгэх. Эдгээр параметрүүдийг сервер болон үйлчлүүлэгчийн хооронд аюулгүй түлхүүр солилцоход ашигладаг.
./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 " руу орж, "COMUNITY" хэсэг рүү очно уу.
Доош гүйлгээд үйлдлийн системийн хувилбарт суулгагчийг татаж аваарай. Манай тохиолдолд энэ нь Windows 11 ARM64 юм.
Бүх параметрүүдийг анхдагчаар үлдээж програмыг суулгана уу.
Дараагийн шатанд та дараах файлыг сервер дээр бэлтгэж, үйлчлүүлэгчийн компьютерт шилжүүлэх шаардлагатай болно.
- нийтийн болон хувийн түлхүүрүүд;
- гэрчилгээжүүлэх төвийн түлхүүрийн хуулбар;
- тохиргооны файлын загвар.
Сервертэй холбогдож, давуу эрхээ дээшлүүлж, бидний үүсгэсэн лавлах руу очно уу "~/openvpn".
sudo -s
cd ~/openvpn
Үйлчлүүлэгчийн хувийн түлхүүр болон гэрчилгээний хүсэлтийг үүсгэнэ үү. Аргумент болгон дурын нэрийг зааж өгнө үү; манай тохиолдолд энэ нь "үйлчлүүлэгч1" юм.
./easyrsa gen-req client1 nopass
Үндсэн гэрчилгээ үүсгэх үед бидний тохируулсан нууц үгээ оруулаад Common Name утгыг анхдагч болгон үлдээнэ үү.
Үүсгэсэн үйлчлүүлэгчийн гэрчилгээний хүсэлтэд гарын үсэг зурна уу.
./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/” файлуудыг клиентэд түгээх боломжтой болгохын тулд тэдгээрийг өөрчилнө үү. Манай тохиолдолд эзэмшигчийг “mihail” болгоё.
chown -R mihail:mihail ~/client1
Клиент компьютер руу очоод “~/client1/” хавтасны агуулгыг хуулж ав . Та үүнийг Putty-тэй хамт ирдэг “PSCP” хэрэгслийн тусламжтайгаар хийж болно .
PSCP -r mihail@[IP_сервера]:/home/mihail/client1 c:\client1
Та “ca.crt” , “client1.crt” , “client1.key” гэсэн түлхүүр файлуудыг хүссэн газраа хадгалж болно . Манай тохиолдолд тэдгээр нь “c:\Program Files\OpenVPN\keys” хавтсанд байрладаг бөгөөд бид “client.ovpn” тохиргооны файлыг “c:\Program Files\OpenVPN\config” хавтас руу оруулдаг.
Одоо клиентийг тохируулах ажилдаа оръё. “c:\Program Files\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
Үлдсэн хэсгийг нь хөндөхгүй орхи.
Файлыг хадгалаад “OpenVPN GUI” клиент програмыг ажиллуулна уу.
Даалгаврын мөрөнд байгаа аппликейшны дүрс дээр хулганы баруун товчийг дараад "Холбох" гэснийг сонгоно уу . Хэрэв холболт амжилттай болвол дүрс ногоон өнгөтэй болно.
Таны нийтийн IP хаяг өөрчлөгдсөн бөгөөд одоо серверийн IP хаягтай ижил байгаа эсэхийг шалгахын тулд дурын онлайн үйлчилгээг ашиглана уу.