შემეცნებითი მარტივი ინსტრუქციები Profitserver სერვისთან მუშაობისთვის
მთავარი შემეცნებითი 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 სერვერი

სერვერის კონფიგურაცია

მოდით, ხელი შევუწყოთ მიმდინარე მომხმარებლის ნებართვების დონეს, რადგან ჩვენი შემდგომი კონფიგურაციისთვის დაგვჭირდება 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-server“.

./easyrsa gen-req vpn-server nopass

დატოვეთ საერთო სახელის მნიშვნელობა ნაგულისხმევად.

ხელი მოაწერეთ გენერირებულ სერვერის სერტიფიკატის მოთხოვნას.

./easyrsa sign-req server vpn-server

ამ ეტაპზე, ხელმოწერის დასადასტურებლად უპასუხეთ „დიახ“-ს, შემდეგ შეიყვანეთ პაროლი, რომელიც შეიქმნა root სერტიფიკატის გენერირების დროს.

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

კლიენტისთვის შექმენით კერძო გასაღები და სერტიფიკატის მოთხოვნა. არგუმენტის სახით მიუთითეთ თვითნებური სახელი; ჩვენს შემთხვევაში, ეს არის „კლიენტი1“.

./easyrsa gen-req client1 nopass

შეიყვანეთ root სერტიფიკატის შექმნისას დაყენებული პაროლი და ნაგულისხმევად დატოვეთ Common Name მნიშვნელობა.

Вводим пароль, который мы устанавливали привати корневого სერტიფიკატი და ავრცელებს მნიშვნელობას Common Name по умолчанию.

ხელი მოაწერეთ გენერირებულ კლიენტის სერტიფიკატის მოთხოვნას.

./easyrsa sign-req client client1

ამ ეტაპზე, ხელმოწერის დასადასტურებლად უპასუხეთ „დიახ“-ს, შემდეგ შეიყვანეთ პაროლი, რომელიც შეიქმნა root სერტიფიკატის გენერირების დროს.

თუ ეს არ არის გამორიცხული "დიახ" მხოლოდ დამატებითი ინფორმაციისთვის, მას შემდეგ, რაც არსებობდა პაროლ, რომელიც შექმნილა კორნეო სერთიფიკატს.

მოხერხებულობისთვის, მოდით შევქმნათ საქაღალდე სახელწოდებით '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", "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 მისამართი.

❮ წინა სტატია როგორ დააყენოთ Wireguard VPN თქვენს სერვერზე
შემდეგი სტატია ❯ FTP სერვერის დაყენება

გვკითხეთ VPS-ის შესახებ

ჩვენ ყოველთვის მზად ვართ ვუპასუხოთ თქვენს შეკითხვებს დღისა და ღამის ნებისმიერ დროს.