Znalostnej bázy Jednoduchý návod na prácu so službou Profitserver
Hlavná Znalostnej bázy Nastavenie servera VPN v systéme Linux: PPTP alebo OpenVPN?

Nastavenie servera VPN v systéme Linux: PPTP alebo OpenVPN?


V súčasnosti sa technológia VPN stáva čoraz populárnejšou. Bežní používatelia používajú VPN na bezpečný prístup na internet. Pomáha tiež obísť miestne blokované webové stránky a služby a chrániť pred možným vonkajším škodlivým správaním. Keď sa pripájate k serveru VPN, medzi počítačom a serverom existuje bezpečný tunel, ku ktorému nie je možné pristupovať zvonku, takže server VPN sa stane vaším prístupovým bodom na internet. Existuje veľa služieb VPN, bezplatných aj platených, ale ak vám z nejakého dôvodu nefungujú, vždy si môžete nakonfigurovať svoj vlastný server VPN.

Ak chcete spustiť svoju sieť VPN, mali by ste prenajať VPS server. Existuje iný softvér, ktorý vám umožňuje vytvoriť pripojenie VPN. Líši sa od seba podporovanými operačnými systémami a použitými algoritmami. Pozrieme sa na dva nezávislé prístupy k nastaveniu servera VPN. Prvý z nich je založený na protokole PPTP, ktorý je už považovaný za zastaraný a nie bezpečný, ale je skutočne ľahko konfigurovateľný. Druhý využíva moderný a bezpečný softvér OpenVPN, ale vyžaduje inštaláciu klientskej aplikácie tretej strany a dôkladnejší proces nastavenia.

V našom testovacom prostredí budeme používať virtuálny server poháňaný Ubuntu Server 18.04. Firewall bude na serveri vypnutý, pretože jeho konfigurácia by si zaslúžila samostatný článok. Popíšeme proces nastavenia v systéme Windows 10.

Príprava

Bez ohľadu na to, ktorý server VPN si vyberiete, prístup na internet bude nastavený integrovanými prostriedkami operačného systému. Ak chcete otvoriť prístup na internet cez externé rozhranie služby, musíte povoliť preposielanie paketov medzi rozhraniami a nakonfigurovať preklad sieťových adries.

Ak chcete zapnúť presmerovanie paketov, otvorte súbor "/etc/sysctl.conf" a zmeniť „net.ipv4.ip_forward“ hodnotu parametra do 1.

zapnite preposielanie paketov pre nastavenie VPN

Ak chcete použiť zmeny bez reštartovania počítača, spustite príkaz

sudo sysctl -p /etc/sysctl.conf

Preklad sieťových adries sa konfiguruje pomocou iptables. Najprv skontrolujte názov externého sieťového rozhrania spusteného príkazom "zobrazenie odkazu IP" - budete ho potrebovať v ďalšom kroku. Naše meno je "ens3".

ip link show

Povoľte preklad sieťových adries na vašom externom rozhraní pre všetky uzly lokálnej siete.

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

Upozorňujeme, že musíte zadať skutočný názov rozhrania vášho servera, môže sa líšiť od nášho.

Štandardne sa všetky pravidlá vytvorené iptables resetujú po reštarte servera. Aby ste tomu zabránili, použite "iptables-persistent" užitočnosť. Nainštalujte nasledujúci balík:

sudo apt install iptables-persistent

V určitom bode počas procesu inštalácie uvidíte konfiguračné okno, ktoré vám navrhne uložiť aktuálne pravidlá iptables. Keďže pravidlá sú už definované, stačí potvrdiť a kliknúť "Áno" dvakrát. Odteraz sa pravidlá budú uplatňovať automaticky po reštarte servera.

Zapnite preklad adries

Server PPTP

Konfigurácia servera

Nainštalujte balík:

sudo apt install pptpd

Po dokončení inštalácie otvorte súbor „/etc/pptpd.conf“ v ľubovoľnom textovom editore a upravte ho takto:

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

Potom upravte súbor „/etc/ppp/pptpd-options“. Väčšina parametrov je predvolene nastavená.

#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

V ďalšej fáze budete musieť vytvoriť záznam pre pripojenia klientov. Povedzme, že chcete pridať používateľa "vpnuser" s heslom "1" a umožniť mu dynamické adresovanie. Otvorte súbor „/etc/ppp/chap-secrets“ a na koniec súboru pridajte nasledujúci riadok s parametrami používateľa:

vpnuser pptpd 1 *

"pptpd" hodnota je názov služby, ktorú sme zadali v súbore "možnosti pptpd", Namiesto „*“ môžete zadať pevnú IP adresu. Vo výsledku je súbor "kap-tajomstvá" by mal vyzerať takto:

Nastavenie servera VPN

Ak chcete použiť nastavenia, resetujte pptpd a pridajte ju do automatického načítavania.

sudo systemctl restart pptpd
sudo systemctl enable pptpd

Konfigurácia servera je dokončená.

Konfigurácia klienta

Otvorený "Štart" - "Nastavenie" - Sieť a internet - „VPN“ a kliknite na tlačidlo „Pridať pripojenie VPN“

Nastavenie klienta pre pripojenie VPN

V otvorenom okne zadajte parametre pripojenia a kliknite „Uložiť“

  • Poskytovateľ VPN: „Windows (vstavaný)“
  • Názov pripojenia: „vpn_connect“ (môžete si vybrať ľubovoľný názov)
  • Názov alebo adresa servera: (uveďte externú IP adresu servera)
  • Typ VPN: „Automaticky“
  • Typ prihlasovacích údajov: „Používateľské meno a heslo“
  • Užívateľské meno: vpnuser (názov uvedený v súbore „chap-secrets“ na serveri)
  • heslo: 1 (ako v súbore „chap-secrets“)

Po uložení parametrov uvidíte v okne nové pripojenie VPN. Kliknite ľavým tlačidlom myši na pripojenie a vyberte "Pripojiť". V prípade úspešného pripojenia uvidíte „Pripojené“ status.

Pridáva sa pripojenie VPN

V Možnostiach nájdete interné adresy klienta a servera. Pole “Cieľová adresa” zobrazí adresu externého servera.

Ako si sami nastaviť server VPN

Po pripojení interná IP adresa servera, 172.16.0.1 v našom prípade sa stane predvolenou bránou pre všetky odchádzajúce pakety.

Skontrolujte externú IP adresu

Pomocou akejkoľvek online služby sa môžete uistiť, že externá adresa IP počítača je teraz rovnaká ako adresa IP vášho servera VPN.

Server OpenVPN

Konfigurácia servera

Podporme úroveň povolení aktuálneho používateľa, pretože pre našu ďalšiu konfiguráciu budeme potrebovať prístup root.

sudo -s

Nainštalujte všetky potrebné pakety. Budeme potrebovať “Easy-RSA” paket na správu šifrovacích kľúčov.

apt install openvpn easy-rsa iptables-persistent

Povoliť prichádzajúce pripojenia na porte 1194 cez protokol UDP a použiť pravidlá iptables.

sudo iptables -I INPUT -p udp --dport 1194 -j ACCEPT

sudo netfilter-persistent save

Vytvorte adresár so skopírovanými súbormi z balíka „Easy-RSA“ a prejdite doň.

make-cadir ~/openvpn

cd ~/openvpn

Generovanie infraštruktúry verejných kľúčov (PKI).

./easyrsa init-pki

Vygenerujte koreňový certifikát certifikačnej autority (CA).

./easyrsa build-ca

Počas procesu vytvárania budete vyzvaní na nastavenie a zapamätanie si hesla. Budete tiež musieť odpovedať na otázky a zadať informácie o vlastníkovi kľúča. Predvolené hodnoty uvedené v hranatých zátvorkách môžete ponechať. Stlačením klávesu „Enter“ dokončíte zadanie.

Vygenerujte súkromný kľúč a žiadosť o certifikát. Ako argument zadajte ľubovoľný názov, v našom prípade „vpn-server“.

./easyrsa gen-req vpn-server nopass

Hodnotu Bežný názov ponechajte ako predvolenú.

Podpíšte vygenerovanú žiadosť o certifikát servera.

./easyrsa sign-req server vpn-server

V tomto kroku odpovedzte „áno“ na potvrdenie podpisu a potom zadajte heslo, ktoré bolo vytvorené počas generovania koreňového certifikátu.

Generovanie parametrov Diffie-Hellmanovho testu. Tieto parametre sa používajú na bezpečnú výmenu kľúčov medzi serverom a klientom.

./easyrsa gen-dh

Všetky potrebné súbory boli vygenerované. Vytvorme priečinok „keys“ v pracovnom adresári OpenVPN na uloženie kľúčov a skopírujme tam vytvorené súbory.

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

Konfigurácia NAT pomocou iptables pravidlá. Vytvorte súbor s názvom nat a otvorte ho na úpravu v /etc/openvpn/ adresára.

#!/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

Uložte súbor a spustite ho.

sudo chmod 755 /etc/openvpn/nat

Skopírujte šablónu konfigurácie servera.

cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/

Otvorte súbor "/etc/openvpn/server.conf" na úpravu sa uistite, že obsahuje nasledujúce riadky a v prípade potreby ich upravte:

#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

Povoľte presmerovanie prevádzky na serveri.

sudo sysctl -w net.ipv4.ip_forward=1

echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf

Spustite OpenVPN, aby ste použili konfiguráciu.

systemctl restart openvpn@server

Konfigurácia servera je dokončená!

Konfigurácia klienta

Prejdite na oficiálnu webovú stránku OpenVPN “https://openvpn.net“, prejdite na "KOMUNITA" Sekcia.

Заходим на официальный сайт проекта “https://openvpn.net”, переходим v раздел “COMUNITY”.

Prejdite nadol a stiahnite si inštalátor pre vašu verziu operačného systému. V našom prípade je to Windows 11 ARM64.

пролистываем вниз и скачиваем инсталлятор для своей версии операционной системы. V rámci systému Windows 11 ARM64.

Nainštalujte aplikáciu a ponechajte všetky parametre v predvolenom nastavení.

V ďalšej fáze budete musieť pripraviť nasledujúci súbor na serveri a preniesť ho do klientskeho počítača:

  • verejné a súkromné ​​kľúče;
  • kópia kľúča certifikačného centra;
  • šablóna konfiguračného súboru.

Pripojte sa k serveru, zvýšte privilégiá a prejdite do vytvoreného adresára. "~/openvpn".

sudo -s

cd ~/openvpn

Vygenerujte súkromný kľúč a žiadosť o certifikát pre klienta. Ako argument zadajte ľubovoľný názov; v našom prípade je to „client1“.

./easyrsa gen-req client1 nopass

Zadajte heslo, ktoré sme nastavili pri vytváraní koreňového certifikátu, a hodnotu Common Name ponechajte ako predvolenú.

Вводим пароль, который мы устанавливали при создании корневого сертификанта и остантавля и остантавлия v умолчанию.

Podpíšte vygenerovanú žiadosť o klientsky certifikát.

./easyrsa sign-req client client1

V tomto kroku odpovedzte „áno“ na potvrdenie podpisu a potom zadajte heslo, ktoré bolo vytvorené počas generovania koreňového certifikátu.

На этом шаге отвечаем "yes" для подтверждения подписи, после чего втодриоййпой создан при создании корневого сертификата.

Pre lepšiu orientáciu vytvorme v domovskom adresári priečinok s názvom „client1“ a skopírujme doň všetky súbory určené na prenos do klientskeho počítača.

mkdir ~/client1

cp pki/issued/client1.crt pki/private/client1.key pki/ca.crt ~/client1/

Skopírujte šablónu konfiguračného súboru klienta do rovnakého adresára. Zmeňte príponu súboru na „.ovpn“ pri kopírovaní.

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

Zmeňte vlastníka adresára a všetkých súborov „~/client1/“ aby ich bolo možné distribuovať klientovi. Poďme robiť "mihail" v našom prípade majiteľ.

chown -R mihail:mihail ~/client1

Prejdite na klientsky počítač a skopírujte obsah súboru „~/client1/“ priečinok. Môžete to urobiť pomocou "PSCP" užitočnosť, ktorá ide s Putty.

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

Môžete uložiť kľúčové súbory "ca.crt", "client1.crt", "klient1.kľúč" kam len chcete. V našom prípade sú v tomto priečinku „c:\Program Files\OpenVPN\keys“a upravíme konfiguračný súbor "client.ovpn" do „c:\Program Files\OpenVPN\config“ adresára.

Teraz poďme ku konfigurácii klienta. Otvorte súbor „c:\Program Files\OpenVPN\config\client.ovpn“ v textovom editore a upravte nasledujúce riadky:

#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

Zvyšok nechajte nedotknutý.

Uložte súbor a spustite klientsku aplikáciu "OpenVPN GUI".

Nastavenie VPN je dokončené

Kliknite pravým tlačidlom myši na ikonu aplikácie na paneli úloh a vyberte "Pripojiť". Ak je pripojenie úspešné, ikona sa zmení na zelenú.

Použite akúkoľvek online službu, aby ste sa uistili, že sa vaša verejná IP adresa zmenila a je teraz rovnaká ako IP adresa servera.

❮ Predchádzajúci článok Ako nastaviť Wireguard VPN na vašom serveri
Ďalší článok ❯ Nastavenie FTP servera

Opýtajte sa nás na VPS

Sme vždy pripravení odpovedať na vaše otázky kedykoľvek počas dňa alebo v noci.