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

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


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

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

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

Priprema

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

Да бисте укључили прослеђивање пакета, отворите датотеку “/етц/сисцтл.цонф” и промена “нет.ипв4.ип_форвард” вредност параметра у 1.

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

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

sudo sysctl -p /etc/sysctl.conf

Превођење мрежних адреса је конфигурисано помоћу iptables. Прво проверите име вашег спољног мрежног интерфејса који покреће команду “ип линк схов” - требаће вам у следећем кораку. Зовемо се “енс3”.

ип линк схов

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

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

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

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

sudo apt install iptables-persistent

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

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

ППТП сервер

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

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

sudo apt install pptpd

Након завршетка инсталације, отворите датотеку “/етц/пптпд.цонф” у било ком уређивачу текста и уредите га овако:

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

Након тога, уредите датотеку “/етц/ппп/пптпд-оптионс”. Већина параметара је подразумевано подешена.

#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 pptpd 1 *

„пптпд“ вредност је име услуге коју смо навели у датотеци „пптпд-опције“. Уместо "*" можете одредити фиксну ИП адресу. Као резултат, фајл „тајне главе“ треба да изгледа овако:

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

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

sudo systemctl restart pptpd
sudo systemctl enable pptpd

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

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

отворен "Почетак" - "Подешавања" - Мрежа и Интернет - „ВПН“ и кликните на дугме „Додај ВПН везу“

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

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

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

Након што сачувате параметре, видећете нову ВПН везу у прозору. Кликните левим тастером миша на везу и изаберите "Цоннецт". У случају успешне везе, видећете "Повезан" Статус.

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

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

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

Када је повезан, интерна ИП адреса сервера, 172.16.0.1 у нашем случају, постаје подразумевани гатеваи за све одлазне пакете.

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

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

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

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

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

sudo -s

Инсталирајте све потребне пакете. требаће нам “Лако-РСА” пакет за управљање кључевима за шифровање.

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/

Отворите датотеку “/етц/опенвпн/сервер.цонф” за уређивање, уверите се да садржи следеће редове и уредите их ако је потребно:

#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

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

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

Идите на званичну веб страницу ОпенВПН-а “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/

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

cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client1/client.ovpn

Промените власника директоријума и свих датотека “~/клијент1/” да би могли да их дистрибуирају клијенту. Хајде да направимо "михаил" власник у нашем случају.

chown -R mihail:mihail ~/client1

Идите на клијентски рачунар и копирајте садржај “~/клијент1/” фолдер. То можете учинити уз помоћ „ПСЦП“ корисност, то иде уз Путти.

PSCP -r mihail@[IP_сервера]:/home/mihail/client1 c:\client1

Можете да складиштите кључне датотеке “ца.црт”, “цлиент1.црт”, „клиент1.кључ“ где год хоћеш. У нашем случају, они се налазе у овој фасцикли “ц:\Програм Филес\ОпенВПН\кеис”, и мењамо конфигурациону датотеку “цлиент.овпн” у “ц:\Програм Филес\ОпенВПН\цонфиг” директоријум.

Сада пређимо на конфигурисање клијента. Отворите датотеку “ц:\Програм Филес\ОпенВПН\цонфиг\цлиент.овпн” у уређивачу текста и уредите следеће редове:

#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

Остало оставите нетакнуто.

Сачувајте датотеку и покрените клијентску апликацију „ОпенВПН ГУИ“.

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

Кликните десним тастером миша на икону апликације на траци задатака и изаберите "Цоннецт". Ако је веза успешна, икона ће постати зелена.

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

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

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

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