Қазіргі уақытта 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-опциялар”. Параметрлердің көпшілігі әдепкі бойынша орнатылады.
#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 сервері
Сервер конфигурациясы
Ағымдағы пайдаланушының рұқсаттар деңгейін көтерейік, себебі әрі қарай конфигурациялау үшін бізге түбірлік қатынас қажет болады.
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
Жалпы атау мәнін әдепкі ретінде қалдырыңыз.
Жасалған сервер сертификатының сұрауына қол қойыңыз.
./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\кілттері”, және біз конфигурация файлын режимге келтіреміз «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 мекенжайымен бірдей екеніне көз жеткізу үшін кез келген онлайн қызметті пайдаланыңыз.