Знања Једноставна упутства за рад са услугом Профитсервер
главни Знања Подешавање ВПН сервера на Линуку: ППТП или ОпенВПН?

Подешавање ВПН сервера на Линуку: ППТП или ОпенВПН?


Данас ВПН технологија постаје све популарнија. Обични корисници користе ВПН за безбедан приступ Интернету. Такође помаже заобићи локално блокиране веб локације и услуге и штити од могућег спољног злонамерног понашања. Када се повезујете на ВПН сервер, између вашег рачунара и сервера постоји безбедан тунел којем се не може приступити споља, тако да ВПН сервер постаје ваша Интернет приступна тачка. Постоји много ВПН услуга, бесплатних и плаћених, али ако из неког разлога не раде за вас, увек можете да конфигуришете сопствени ВПН сервер.

Да бисте покренули свој VPN, требало би да изнајмите VPS сервер . Постоје различити софтвери који вам омогућавају да креирате VPN везу. Разликују се једни од других по подржаним оперативним системима и коришћеним алгоритмима. Погледаћемо два независна приступа за подешавање VPN сервера. Први је заснован на PPTP протоколу који се већ сматра застарелим и небезбедним, али је заиста једноставан за конфигурисање. Други користи модеран и безбедан софтвер OpenVPN, али захтева инсталирање клијентске апликације треће стране и темељитији процес подешавања.

У нашем тестном окружењу користићемо виртуелни сервер који покреће Убунту Сервер 18.04. Заштитни зид ће бити искључен на серверу јер његова конфигурација заслужује посебан чланак. Описаћемо процес подешавања на Виндовс 10.

Priprema

Без обзира који ВПН сервер одаберете, приступ Интернету ће бити постављен интегрисаним средствима оперативног система. Да бисте отворили приступ Интернету преко спољног сервисног интерфејса, морате дозволити прослеђивање пакета између интерфејса и конфигурисати превод мрежних адреса.

Да бисте укључили прослеђивање пакета, отворите датотеку „/etc/sysctl.conf“ и промените вредност параметра „net.ipv4.ip_forward“ на 1.

укључите прослеђивање пакета за подешавање ВПН-а

Да бисте применили промене без поновног покретања рачунара, покрените команду

sudo sysctl -p /etc/sysctl.conf

Превод мрежних адреса се конфигурише помоћу iptables-а . Прво, проверите име вашег екстерног мрежног интерфејса покретањем команде „ip link show“ - биће вам потребна у следећем кораку. Наше име је „ens3“.

ип линк схов

Омогућите превод мрежних адреса на свом спољном интерфејсу за све чворове локалне мреже.

sudo iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE

Имајте на уму да морате да наведете право име интерфејса вашег сервера, оно може бити другачије од нашег.

Подразумевано, сва правила креирана помоћу iptables-а се ресетују након поновног покретања сервера. Да бисте то спречили, користите услужни програм „iptables-persistent“ . Инсталирајте следећи пакет:

sudo apt install iptables-persistent

У неком тренутку током процеса инсталације, видећете прозор за конфигурацију који ће вам предложити да сачувате тренутна iptables правила. Пошто су правила већ дефинисана, само потврдите и кликните два пута на „Да“ . Пошто ће се сада правила аутоматски применити након поновног покретања сервера.

Укључите превод адресе

ППТП сервер

Конфигурација сервера

Инсталирајте пакет:

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“ би требало да изгледа овако:

Подешавање ВПН сервера

Да бисте применили подешавања, ресетујте pptpd сервис и додајте га у аутоматско учитавање.

sudo systemctl restart pptpd
sudo systemctl enable pptpd

Конфигурација сервера је завршена.

Конфигурација клијента

Отворите „Старт“ - „Подешавања“ - „Мрежа и интернет“ - „VPN“ и кликните на „Додај VPN везу“

Подешавање клијента за ВПН везу

Унесите параметре везе у отворени прозор и кликните на „Сачувај“

  • ВПН провајдер: „Виндовс (уграђени)“
  • Име везе: „впн_цоннецт“ (можете изабрати било које име)
  • Име или адреса сервера: (наведите спољну ИП адресу сервера)
  • Тип ВПН-а: „Аутоматски“
  • Тип информација за пријављивање: „Корисничко име и лозинка“
  • Корисничко име: впнусер (име наведено у датотеци „цхап-сецретс“ на серверу)
  • пассворд: 1 (као у датотеци „цхап-сецретс“)

Након чувања параметара, видећете нову VPN везу у прозору. Кликните левим тастером миша на везу и изаберите „Повежи се“ . У случају успешне везе, видећете статус „Повезано“ .

Додавање ВПН везе

У опцијама ћете пронаћи интерне адресе клијента и сервера. Поље „Адреса одредишта“ приказује адресу екстерног сервера.

Како сами подесити ВПН сервер

Када се повеже, интерна IP адреса сервера, у нашем случају 172.16.0.1 , постаје подразумевани gateway за све одлазне пакете.

Проверите спољну ИП адресу

Користећи било коју услугу на мрежи, можете се уверити да је спољна ИП адреса рачунара сада иста као ИП адреса вашег ВПН сервера.

ОпенВПН сервер

Конфигурација сервера

Хајде да унапредимо ниво дозвола тренутног корисника јер ће нам за даље конфигурисање бити потребан роот приступ.

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

Током процеса креирања, биће вам затражено да поставите и запамтите лозинку. Такође ћете морати да одговорите на питања и унесете информације о власнику кључа. Можете оставити подразумеване вредности наведене у угластим заградама. Притисните „Ентер“ да бисте завршили унос.

Генеришите приватни кључ и захтев за сертификат. Као аргумент, наведите произвољно име; у нашем случају, то је „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 “, и идите на одељак „ЗАЈЕДНИЦА“.

Заходим на официальниј сајт пројекта “хттпс://опенвпн.нет”, пређите у раздел “ЦОМУНИТИ”.

Померите се надоле и преузмите инсталатер за вашу верзију оперативног система. У нашем случају, то је Windows 11 ARM64.

пролистиваем вниз и скачиваем инсталацију дла своеј версии операционних системов. В нашем случае ето Виндовс 11 АРМ64.

Инсталирајте апликацију остављајући све параметре подразумевано.

У следећој фази ћете морати да припремите следећу датотеку на серверу и пренесете је на клијентски рачунар:

  • јавни и приватни кључеви;
  • копију кључа сертификационог центра;
  • шаблон конфигурационе датотеке.

Повежите се са сервером, повећајте привилегије и идите до креираног директоријума "~/openvpn".

sudo -s

cd ~/openvpn

Генеришите приватни кључ и захтев за сертификат за клијента. Као аргумент, наведите произвољно име; у нашем случају, то је „клијент1“.

./easyrsa gen-req client1 nopass

Унесите лозинку коју смо поставили приликом креирања коренског сертификата и оставите вредност „Уобичајено име“ као подразумевану.

Вводим пароль, коториј ми установили при создании корневог сертификата и оставлаем значение Цоммон Наме по умолчаниу.

Потпишите генерисани захтев за клијентски сертификат.

./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“.

Подешавање ВПН-а је завршено

Кликните десним тастером миша на икону апликације у траци задатака и изаберите „Повежи се“ . Ако је повезивање успешно, икона ће постати зелена.

Користите било коју услугу на мрежи да бисте били сигурни да се ваша јавна ИП адреса променила и да је сада иста као ИП адреса сервера.

❮ Претходни чланак Подешавање ФТП сервера
Следећи чланак ❯ Како да подесите Вирегуард ВПН на вашем серверу

Питајте нас за ВПС

Увек смо спремни да одговоримо на ваша питања у било које доба дана и ноћи.