Knowledgebase Profitserver ծառայության հետ աշխատելու պարզ հրահանգներ
Հիմնական Knowledgebase VPN սերվերի կարգավորում Linux-ում. PPTP թե OpenVPN:

VPN սերվերի կարգավորում Linux-ում. PPTP թե OpenVPN:


Մեր օրերում VPN տեխնոլոգիան ավելի տարածված է դառնում։ Սովորական օգտվողներն օգտագործում են VPN՝ անվտանգ ինտերնետ մուտք գործելու համար: Այն նաև օգնում է շրջանցել տեղական արգելափակված կայքերն ու ծառայությունները և պաշտպանել հնարավոր արտաքին վնասակար վարքագծից: Երբ դուք միանում եք VPN սերվերին, ձեր համակարգչի և սերվերի միջև կա անվտանգ թունել, որը հնարավոր չէ մուտք գործել դրսից, ուստի VPN սերվերը դառնում է ձեր ինտերնետ մուտքի կետը: Այնտեղ կան բազմաթիվ VPN ծառայություններ՝ և՛ անվճար, և՛ վճարովի, բայց եթե դրանք ինչ-ինչ պատճառներով ձեզ մոտ չեն աշխատում, դուք միշտ կարող եք կարգավորել ձեր սեփական VPN սերվերը:

Ձեր VPN-ը աշխատացնելու համար դուք պետք է վարձակալեք VPS սերվեր ։ Կան տարբեր ծրագրեր, որոնք թույլ են տալիս ստեղծել VPN կապ։ Դրանք տարբերվում են միմյանցից աջակցվող օպերացիոն համակարգերով և օգտագործվող ալգորիթմներով։ Մենք կքննարկենք VPN սերվեր տեղադրելու երկու անկախ մոտեցումներ։ Առաջինը հիմնված է PPTP արձանագրության վրա, որն արդեն համարվում է հնացած և անվտանգ չէ, բայց շատ հեշտ է կարգավորել։ Մյուսը օգտագործում է ժամանակակից և անվտանգ OpenVPN ծրագիրը, բայց պահանջում է երրորդ կողմի հաճախորդային ծրագրի տեղադրում և ավելի մանրակրկիտ կարգավորման գործընթաց։

Մեր թեստային միջավայրում մենք պատրաստվում ենք օգտագործել վիրտուալ սերվեր, որը սնուցվում է Ubuntu Server 18.04-ով: Սերվերի վրա firewall-ը կանջատվի, քանի որ դրա կազմաձևումն արժանի է առանձին հոդվածի: Մենք նկարագրելու ենք Windows 10-ի տեղադրման գործընթացը:

Պատրաստում

Անկախ նրանից, թե որ VPN սերվեր եք ընտրում, ինտերնետ հասանելիությունը կստեղծվի օպերացիոն համակարգի ինտեգրված միջոցներով: Արտաքին ծառայության ինտերֆեյսի միջոցով ինտերնետ հասանելիությունը բացելու համար դուք պետք է թույլատրեք փաթեթների վերահասցեավորում միջերեսների միջև և կարգավորեք ցանցի հասցեների թարգմանությունը:

Փաթեթների վերահասցեավորումը միացնելու համար բացեք «/etc/sysctl.conf» ֆայլը և «net.ipv4.ip_forward» պարամետրի արժեքը փոխեք 1- ի ։

միացնել փաթեթների վերահասցեավորումը VPN-ի տեղադրման համար

Փոփոխությունները առանց համակարգիչը վերագործարկելու համար գործարկեք հրամանը

sudo sysctl -p /etc/sysctl.conf

Ցանցային հասցեի թարգմանությունը կարգավորվում է iptables- ի միջոցով ։ Նախ, ստուգեք ձեր արտաքին ցանցային ինտերֆեյսի անունը՝ կատարելով «ip link show» հրամանը . այն ձեզ անհրաժեշտ կլինի հաջորդ քայլում։ Մեր անունը «ens3» է ։

ip հղում շոու

Միացրեք ցանցի հասցեների թարգմանությունը ձեր արտաքին ինտերֆեյսում տեղական ցանցի բոլոր հանգույցների համար:

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

Հաջորդ փուլում դուք պետք է ստեղծեք հաճախորդի միացումների գրառում: Ենթադրենք, որ դուք ցանկանում եք ավելացնել «vpnuser» օգտատիրոջ՝ «1» գաղտնաբառով և թույլատրել նրա համար դինամիկ հասցեավորում: Բացեք «/etc/ppp/chap-secrets» ֆայլը և ֆայլի վերջում ավելացրեք հետևյալ տողը՝ օգտատիրոջ պարամետրերով.

vpnuser pptpd 1 *

«pptpd» արժեքը «pptpd-options» ֆայլում նշված ծառայության անունն է : «*»- ի փոխարեն կարող եք նշել ֆիքսված IP հասցե: Արդյունքում «chap-secrets» ֆայլը պետք է ունենա հետևյալ տեսքը՝

VPN սերվերի կարգավորում

Կարգավորումները կիրառելու համար վերագործարկեք pptpd ծառայությունը և ավելացրեք այն ավտոմատ բեռնման ռեժիմին։

sudo systemctl restart pptpd
sudo systemctl enable pptpd

Սերվերի կազմաձևումն ավարտված է:

Հաճախորդի կազմաձևում

Բացեք «Սկսել» - «Կարգավորումներ» - «Ցանց և ինտերնետ» - «VPN» բաժինը և սեղմեք «Ավելացնել VPN կապ» կոճակը։

Կարգավորեք հաճախորդը VPN կապի համար

Բացվող պատուհանում մուտքագրեք կապի պարամետրերը և սեղմեք «Պահպանել» կոճակը։

  • VPN մատակարար. «Windows (ներկառուցված)»
  • Միացման անունը՝ «vpn_connect» (կարող եք ընտրել ցանկացած անուն)
  • Սերվերի անունը կամ հասցեն. (նշեք սերվերի արտաքին IP հասցեն)
  • VPN տեսակը՝ «Ավտոմատ»
  • Մուտքի տեղեկատվության տեսակը՝ «Օգտվողի անուն և գաղտնաբառ»
  • Օգտագործողի անունը: vpnuser (անունը նշված է սերվերի «chap-secrets» ֆայլում)
  • Գաղտնաբառ: 1 (ինչպես «chap-secrets» ֆայլում)

Պարամետրերը պահպանելուց հետո պատուհանում կտեսնեք նոր VPN կապը: Սեղմեք կապի վրա մկնիկի ձախ կոճակով և ընտրեք «Միանալ» : Հաջող կապի դեպքում կտեսնեք «Միացված է» կարգավիճակը:

VPN կապի ավելացում

«Կարգավորումներ» բաժնում դուք կգտնեք հաճախորդի և սերվերի ներքին հասցեները: «Նպատակակետային հասցե» դաշտը ցույց է տալիս արտաքին սերվերի հասցեն:

Ինչպես ինքնուրույն կարգավորել VPN սերվերը

Միացման դեպքում սերվերի ներքին IP հասցեն՝ մեր դեպքում 172.16.0.1 , դառնում է բոլոր ելքային փաթեթների լռելյայն դարպասը։

Ստուգեք արտաքին IP հասցեն

Օգտագործելով ցանկացած առցանց ծառայություն՝ կարող եք համոզվել, որ համակարգչի արտաքին IP հասցեն այժմ նույնն է, ինչ ձեր VPN սերվերի IP հասցեն:

OpenVPN սերվեր

Սերվերի կազմաձևում

Եկեք խթանենք ընթացիկ օգտագործողի թույլտվությունների մակարդակը, քանի որ մեր հետագա կազմաձևման համար մեզ անհրաժեշտ կլինի արմատային մուտք:

sudo -s

Տեղադրեք բոլոր անհրաժեշտ փաթեթները: Մեզ անհրաժեշտ կլինի «Easy-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

Ստեղծեք վկայականի մարմնի (CA) արմատային վկայականը։

./easyrsa build-ca

Ստեղծման գործընթացի ընթացքում ձեզ կառաջարկվի սահմանել և հիշել գաղտնաբառ: Դուք նաև պետք է պատասխանեք հարցերին և մուտքագրեք բանալու սեփականատիրոջ մասին տեղեկություններ: Կարող եք թողնել քառակուսի փակագծերում տրված լռելյայն արժեքները: Սեղմեք «Enter»՝ մուտքագրումն ավարտելու համար:

Ստեղծեք մասնավոր բանալի և վկայագրի հարցում: Որպես արգումենտ նշեք կամայական անուն. մեր դեպքում դա «vpn-server» է:

./easyrsa gen-req vpn-server nopass

Թողեք Common Name արժեքը որպես լռելյայն։

Ստորագրեք ստեղծված սերվերի վկայականի հարցումը։

./easyrsa sign-req server vpn-server

Այս քայլում պատասխանեք «այո»՝ ստորագրությունը հաստատելու համար, այնուհետև մուտքագրեք արմատային վկայականի ստեղծման ժամանակ ստեղծված գաղտնաբառը։

Ստեղծեք Diffie-Hellman պարամետրեր: Այս պարամետրերը օգտագործվում են սերվերի և հաճախորդի միջև բանալիների անվտանգ փոխանակման համար:

./easyrsa gen-dh

Բոլոր անհրաժեշտ ֆայլերը ստեղծվել են։ Եկեք OpenVPN-ի աշխատանքային գրացուցակում ստեղծենք «keys» թղթապանակ՝ բանալիները պահելու և ստեղծված ֆայլերը այնտեղ պատճենելու համար։

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 », անցեք «ՀԱՄԱՅՆՔ» բաժին։

Заходим на официальный կայքը նախագծի «https://openvpn.net», բաժանվում է «COMUNITY»:

Գլորեք ներքև և ներբեռնեք ձեր օպերացիոն համակարգի տարբերակի համար նախատեսված տեղադրիչը։ Մեր դեպքում դա Windows 11 ARM64 է։

пролистываем вниз и скачиваем ինստալլյատոր для своей версии операционной системы. В нашем случае это Windows 11 ARM64.

Տեղադրեք հավելվածը լռելյայն թողնելով բոլոր պարամետրերը:

Հաջորդ փուլում դուք պետք է պատրաստեք հետևյալ ֆայլը սերվերի վրա և փոխանցեք դրանք հաճախորդի համակարգչին.

  • հանրային և մասնավոր բանալիներ;
  • հավաստագրման կենտրոնի բանալին;
  • կազմաձևման ֆայլի ձևանմուշ:

Միացեք սերվերին, բարձրացրեք արտոնությունները և անցեք մեր ստեղծված գրացուցակին "~/openvpn".

sudo -s

cd ~/openvpn

Ստեղծեք հաճախորդի համար մասնավոր բանալի և վկայագրի հարցում: Որպես արգումենտ նշեք կամայական անուն. մեր դեպքում դա «client1» է:

./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» հաճախորդի ծրագիրը ։

VPN-ի կարգավորումն ավարտված է

Աջ սեղմեք առաջադրանքների վահանակում գտնվող ծրագրի պատկերակի վրա և ընտրեք «Միանալ» ։ Եթե միացումը հաջող լինի, պատկերակը կդառնա կանաչ։

Օգտագործեք ցանկացած առցանց ծառայություն՝ համոզվելու համար, որ ձեր հանրային IP հասցեն փոխվել է և այժմ նույնն է, ինչ սերվերի IP հասցեն:

❮ Նախորդ հոդված FTP սերվերի կարգավորում
Հաջորդ հոդվածը ❯ Ինչպես տեղադրել Wireguard VPN-ը ձեր սերվերի վրա

Հարցրեք մեզ VPS-ի մասին

Մենք միշտ պատրաստ ենք պատասխանել ձեր հարցերին օրվա կամ գիշերվա ցանկացած ժամի: