Өнөө үед 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" утга нь бидний файлд заасан үйлчилгээний нэр юм "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 хаяг нь VPN серверийн IP хаягтай ижил байгаа эсэхийг шалгах боломжтой.
OpenVPN сервер
Серверийн тохиргоо
Одоо байгаа хэрэглэгчийн зөвшөөрлийн түвшинг дэмжицгээе, учир нь бидний цаашдын тохиргоонд root хандалт хэрэгтэй болно.
sudo -s
Шаардлагатай бүх багцуудыг суулгана уу. Бидэнд хэрэгтэй болно "Хялбар-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" руу очно уу "НИЙТЛЭЛ" Хэсэг.
Доош гүйлгээд үйлдлийн системийн хувилбарт суулгагчийг татаж аваарай. Манай тохиолдолд энэ нь 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
Лавлах эзэмшигч болон бүх файлыг өөрчил “~/клиент1/” тэдгээрийг үйлчлүүлэгчид түгээх боломжтой байх. Хийцгээе "михайл" манай тохиолдолд эзэмшигч.
chown -R mihail:mihail ~/client1
Үйлчлүүлэгчийн компьютер руу очоод контентыг хуулна уу “~/клиент1/” хавтас. Та үүнийг тусламжтайгаар хийж болно "PSCP" хэрэгсэл, энэ нь Putty-тэй нийцдэг.
PSCP -r mihail@[IP_сервера]:/home/mihail/client1 c:\client1
Та гол файлуудыг хадгалах боломжтой "ca.crt", "client1.crt", "үйлчлүүлэгч1. түлхүүр" хүссэн газраа. Манай тохиолдолд тэд энэ хавтсанд байдаг “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”.
Taskbar дээрх програмын дүрс дээр хулганы баруун товчийг дараад сонгоно уу "Холбох". Хэрэв холболт амжилттай бол дүрс нь ногоон өнгөтэй болно.
Таны нийтийн IP хаяг өөрчлөгдсөн бөгөөд одоо серверийн IP хаягтай ижил байгаа эсэхийг шалгахын тулд дурын онлайн үйлчилгээг ашиглана уу.