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 կապի ցուցադրում» - այն ձեզ պետք կգա հաջորդ քայլին: Մեր անունն է «ens3».

ip հղում շոու

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

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 հասցե: Արդյունքում ֆայլը «Գաղտնիքներ» պետք է այսպիսի տեսք ունենա.

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

Տեղադրեք բոլոր անհրաժեշտ փաթեթները: Մեզ պետք կգա «Հեշտ-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/» որպեսզի կարողանանք դրանք բաժանել հաճախորդին: Եկեք պատրաստենք «Միխայիլ» սեփականատերը մեր դեպքում.

chown -R mihail:mihail ~/client1

Գնացեք հաճախորդի համակարգիչ և պատճենեք դրա բովանդակությունը «~/client1/» թղթապանակ. Դուք կարող եք դա անել օգնությամբ «PSCP» օգտակար, որը գնում է Putty-ի հետ:

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-ի մասին

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