База ведаў Простая інструкцыя па працы з сэрвісам Профітсервер
галоўны База ведаў Настройка сервера VPN на Linux: PPTP або OpenVPN?

Настройка сервера VPN на Linux: PPTP або OpenVPN?


У наш час тэхналогія 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.

уключыце пераадрасацыю пакетаў для налады VPN

Каб прымяніць змены без перазагрузкі кампутара, выканайце каманду

sudo sysctl -p /etc/sysctl.conf

Налада трансляцыі сеткавых адрасоў ажыццяўляецца з дапамогай iptables . Спачатку праверце назву вашага знешняга сеткавага інтэрфейса, выканаўшы каманду «ip link show» — яна спатрэбіцца вам на наступным кроку. Наша назва — «ens3».

IP Link шоў

Уключыце трансляцыю сеткавых адрасоў на знешнім інтэрфейсе для ўсіх вузлоў лакальнай сеткі.

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: «Аўта»
  • Тып інфармацыі для ўваходу: «Імя карыстальніка і пароль»
  • User name: vpnuser (імя вызначана ў файле «chap-secrets» на серверы)
  • пароль: 1 (як у файле «chap-secrets»)

Пасля захавання параметраў вы ўбачыце новае VPN-злучэнне ў акне. Пстрыкніце левай кнопкай мышы на злучэнні і абярыце «Падключыцца» . У выпадку паспяховага падключэння вы ўбачыце статус «Падключана» .

Даданне VPN-злучэння

У наладах вы знойдзеце ўнутраныя адрасы кліента і сервера. У полі «Адрас прызначэння» адлюстроўваецца адрас знешняга сервера.

Як наладзіць сервер VPN самастойна

Пры падключэнні ўнутраны IP-адрас сервера, у нашым выпадку 172.16.0.1 , становіцца шлюзам па змаўчанні для ўсіх выходных пакетаў.

Праверце знешні IP-адрас

Выкарыстоўваючы любы інтэрнэт-сэрвіс, вы можаце пераканацца, што знешні IP-адрас камп'ютара цяпер супадае з IP-адрасам вашага сервера VPN.

Сервер 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

Пакіньце значэнне «Агульная назва» па змаўчанні.

Падпішыце згенераваны запыт на сертыфікат сервера.

./easyrsa sign-req server vpn-server

На гэтым этапе адкажыце «так», каб пацвердзіць подпіс, а затым увядзіце пароль, які быў створаны падчас генерацыі каранёвага сертыфіката.

Генераваць параметры Дыфі-Хелмана. Гэтыя параметры выкарыстоўваюцца для бяспечнага абмену ключамі паміж серверам і кліентам.

./easyrsa gen-dh

Усе неабходныя файлы згенераваны. Давайце створым тэчку "keys" у рабочым каталогу 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 », перайдзіце ў раздзел «СУПОЛЬНАСЦЬ».

Заходзім на афіцыйны сайт праекта “https://openvpn.net”, пераходзім у раздзел “СУПОЛЬНАСЦЬ”.

Пракруціце ўніз і запампуйце ўсталёўнік для вашай версіі аперацыйнай сістэмы. У нашым выпадку гэта Windows 11 ARM64.

пролистываем ўніз і скачиваем інсталятар для сваёй версіі аперацыйнай сістэмы. У нашым выпадку гэта Windows 11 ARM64.

Усталюйце прыкладанне, пакінуўшы ўсе параметры па змаўчанні.

На наступным этапе вам спатрэбіцца падрыхтаваць наступныя файлы на серверы і перанесці іх на кліенцкі кампутар:

  • адкрыты і прыватны ключы;
  • копія ключа сертыфікацыйнага цэнтра;
  • Шаблон файла канфігурацыі.

Падключыцеся да сервера, павысьце прывілеі і перайдзіце ў створаны намі каталог "~/openvpn".

sudo -s

cd ~/openvpn

Згенеруйце закрыты ключ і запыт на сертыфікат для кліента. У якасці аргумента пазначце адвольную назву; у нашым выпадку гэта «client1».

./easyrsa gen-req client1 nopass

Увядзіце пароль, які мы ўстанавілі пры стварэнні каранёвага сертыфіката, і пакіньце значэнне Common Name па змаўчанні.

Уводзім пароль, які мы ўсталявалі пры стварэнні карнёвага сертыфіката, і даем значэнне 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/» . Вы можаце зрабіць гэта з дапамогай утыліты «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

Мы заўсёды гатовы адказаць на вашы пытанні ў любы час дня і ночы.