Znalostní báze Jednoduchý návod pro práci se službou Profitserver
Hlavní Znalostní báze Nastavení VPN serveru na Linuxu: PPTP nebo OpenVPN?

Nastavení VPN serveru na Linuxu: PPTP nebo OpenVPN?


V dnešní době se technologie VPN stává populárnější. Běžní uživatelé používají VPN k bezpečnému přístupu k internetu. Pomáhá také obejít lokálně blokované webové stránky a služby a chránit před možným externím škodlivým chováním. Když se připojujete k serveru VPN, existuje mezi vaším počítačem a serverem bezpečný tunel, ke kterému nelze přistupovat zvenčí, takže server VPN se stává vaším přístupovým bodem k internetu. Existuje spousta služeb VPN, bezplatných i placených, ale pokud vám z nějakého důvodu nefungují, můžete si vždy nakonfigurovat svůj vlastní server VPN.

Pro provozování vaší VPN sítě byste si měli pronajmout VPS server . Existují různé softwary, které vám umožňují vytvořit VPN připojení. Liší se od sebe podporovanými operačními systémy a použitými algoritmy. Podíváme se na dva nezávislé přístupy k nastavení VPN serveru. První je založen na protokolu PPTP, který je již považován za zastaralý a nezabezpečený, ale jeho konfigurace je velmi snadná. Druhý využívá moderní a bezpečný software OpenVPN, ale vyžaduje instalaci klientské aplikace třetí strany a důkladnější proces nastavení.

V našem testovacím prostředí budeme používat virtuální server poháněný Ubuntu Server 18.04. Firewall bude na serveru vypnutý, protože jeho konfigurace by si zasloužila samostatný článek. Popíšeme proces nastavení ve Windows 10.

PŘÍPRAVA

Bez ohledu na to, který VPN server si vyberete, přístup k internetu bude nastaven integrovanými prostředky operačního systému. Chcete-li otevřít přístup k internetu přes rozhraní externí služby, musíte povolit předávání paketů mezi rozhraními a nakonfigurovat překlad síťových adres.

Pro zapnutí přesměrování paketů otevřete soubor „/etc/sysctl.conf“ a změňte hodnotu parametru „net.ipv4.ip_forward“ na 1.

zapněte předávání paketů pro nastavení VPN

Chcete-li použít změny bez restartování počítače, spusťte příkaz

sudo sysctl -p /etc/sysctl.conf

Překlad síťových adres se konfiguruje pomocí iptables . Nejprve zkontrolujte název vašeho externího síťového rozhraní spuštěním příkazu „ip link show“ – budete ho potřebovat v dalším kroku. Náš název je „ens3“.

ip link show

Povolte překlad síťových adres na vašem externím rozhraní pro všechny uzly místní sítě.

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

Všimněte si, že musíte zadat skutečné jméno rozhraní vašeho serveru, může se lišit od našeho.

Ve výchozím nastavení se všechna pravidla vytvořená programem iptables po restartu serveru resetují. Abyste tomu zabránili, použijte utilitu „iptables-persistent“ . Nainstalujte následující balíček:

sudo apt install iptables-persistent

V určitém okamžiku během instalace se zobrazí konfigurační okno s návrhem na uložení aktuálních pravidel iptables. Protože pravidla jsou již definována, stačí je potvrdit a dvakrát kliknout na „Ano“ . Pravidla se od této chvíle použijí automaticky po restartu serveru.

Zapněte překlad adres

Server PPTP

Konfigurace serveru

Nainstalujte balíček:

sudo apt install pptpd

Po dokončení instalace otevřete soubor „/etc/pptpd.conf“ v libovolném textovém editoru a upravte jej 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

Poté upravte soubor „/etc/ppp/pptpd-options“ . Většina parametrů je nastavena ve výchozím 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 další fázi budete muset vytvořit záznam pro připojení klientů. Řekněme, že chcete přidat uživatele „vpnuser“ s heslem „1“ a povolit mu dynamické adresování. Otevřete soubor „/etc/ppp/chap-secrets“ a na konec souboru přidejte následující řádek s parametry uživatele:

vpnuser pptpd 1 *

Hodnota „pptpd“ je název služby, kterou jsme zadali v souboru „pptpd-options“ . Místo „*“ můžete zadat pevnou IP adresu. Soubor „chap-secrets“ by měl ve výsledku vypadat takto:

Nastavení VPN serveru

Chcete-li nastavení použít, resetujte službu pptpd a přidejte ji do automatického načítání.

sudo systemctl restart pptpd
sudo systemctl enable pptpd

Konfigurace serveru je dokončena.

Konfigurace klienta

Otevřete „Start“ - „Nastavení“ - „Síť a internet“ - „VPN“ a klikněte na „Přidat připojení VPN“.

Nastavení klienta pro připojení VPN

V otevřeném okně zadejte parametry připojení a klikněte na tlačítko „Uložit“.

  • Poskytovatel VPN: „Windows (vestavěný)“
  • Název připojení: „vpn_connect“ (můžete zvolit libovolný název)
  • Název nebo adresa serveru: (uveďte externí IP adresu serveru)
  • Typ VPN: „Automaticky“
  • Typ přihlašovacích údajů: „Uživatelské jméno a heslo“
  • Uživatelské jméno: vpnuser (jméno uvedené v souboru „chap-secrets“ na serveru)
  • heslo: 1 (jako v souboru „chap-secrets“)

Po uložení parametrů se v okně zobrazí nové VPN připojení. Klikněte levým tlačítkem myši na připojení a vyberte „Připojit“ . V případě úspěšného připojení se zobrazí stav „Připojeno“ .

Přidání připojení VPN

V Možnostech naleznete interní adresy klienta a serveru. Pole „Cílová adresa“ zobrazuje adresu externího serveru.

Jak si sami nastavit VPN server

Po připojení se interní IP adresa serveru, v našem případě 172.16.0.1 , stane výchozí branou pro všechny odchozí pakety.

Zkontrolujte externí IP adresu

Pomocí jakékoli online služby se můžete ujistit, že externí IP adresa počítače je nyní stejná jako IP adresa vašeho VPN serveru.

OpenVPN server

Konfigurace serveru

Pojďme zvýšit úroveň oprávnění aktuálního uživatele, protože pro naši další konfiguraci budeme potřebovat přístup root.

sudo -s

Nainstalujte všechny potřebné pakety. Pro správu šifrovacích klíčů budeme potřebovat paket „Easy-RSA“ .

apt install openvpn easy-rsa iptables-persistent

Povolit příchozí připojení na portu 1194 přes protokol UDP a aplikovat pravidla iptables.

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

sudo netfilter-persistent save

Vytvořte adresář se zkopírovanými soubory z balíčku „Easy-RSA“ a přejděte do něj.

make-cadir ~/openvpn

cd ~/openvpn

Generování infrastruktury veřejných klíčů (PKI).

./easyrsa init-pki

Vygenerujte kořenový certifikát certifikační autority (CA).

./easyrsa build-ca

Během procesu vytváření budete vyzváni k nastavení a zapamatování hesla. Budete také muset odpovědět na otázky a zadat informace o vlastníkovi klíče. Výchozí hodnoty uvedené v hranatých závorkách můžete ponechat. Stisknutím klávesy „Enter“ dokončete zadání.

Vygenerujte soukromý klíč a žádost o certifikát. Jako argument zadejte libovolný název, v našem případě „vpn-server“.

./easyrsa gen-req vpn-server nopass

Hodnotu Běžný název ponechte jako výchozí.

Podepište vygenerovaný požadavek na certifikát serveru.

./easyrsa sign-req server vpn-server

V tomto kroku potvrďte podpis odpovědí „ano“ a poté zadejte heslo, které bylo vytvořeno během generování kořenového certifikátu.

Generuje Diffie-Hellmanovy parametry. Tyto parametry se používají pro bezpečnou výměnu klíčů mezi serverem a klientem.

./easyrsa gen-dh

Všechny potřebné soubory byly vygenerovány. Vytvořme složku „keys“ v pracovním adresáři OpenVPN pro uložení klíčů a zkopírujme tam vytvořené soubory.

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

Konfigurace NATu pomocí iptables pravidla. Vytvořte soubor s názvem nat a otevřete jej pro úpravy v /etc/openvpn/ adresáře.

#!/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 soubor a nastavte jej jako spustitelný.

sudo chmod 755 /etc/openvpn/nat

Zkopírujte šablonu konfigurace serveru.

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

Otevřete soubor „/etc/openvpn/server.conf“ pro úpravy, ujistěte se, že obsahuje následující řádky, a v případě potřeby je 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

Povolte přesměrování provozu na serveru.

sudo sysctl -w net.ipv4.ip_forward=1

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

Spusťte OpenVPN pro použití konfigurace.

systemctl restart openvpn@server

Konfigurace serveru je dokončena!

Konfigurace klienta

Přejděte na oficiální webové stránky OpenVPN „ https://openvpn.net “ a přejděte do sekce „KOMUNITA“.

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

Přejděte dolů a stáhněte si instalační program pro vaši verzi operačního systému. V našem případě se jedná o Windows 11 ARM64.

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

Nainstalujte aplikaci a ponechte všechny parametry ve výchozím nastavení.

V další fázi budete muset připravit následující soubor na serveru a přenést je do klientského počítače:

  • veřejné a soukromé klíče;
  • kopie klíče certifikačního centra;
  • šablona konfiguračního souboru.

Připojte se k serveru, zvyšte oprávnění a přejděte do vytvořeného adresáře. "~/openvpn".

sudo -s

cd ~/openvpn

Vygenerujte soukromý klíč a žádost o certifikát pro klienta. Jako argument zadejte libovolný název; v našem případě „client1“.

./easyrsa gen-req client1 nopass

Zadejte heslo, které jsme nastavili při vytváření kořenového certifikátu, a hodnotu Common Name ponechte jako výchozí.

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

Podepište vygenerovaný požadavek na klientský certifikát.

./easyrsa sign-req client client1

V tomto kroku potvrďte podpis odpovědí „ano“ a poté zadejte heslo, které bylo vytvořeno během generování kořenového certifikátu.

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

Pro usnadnění si v domovském adresáři vytvořme složku s názvem „client1“ a zkopírujme do ní všechny soubory určené k přenosu na klientský počítač.

mkdir ~/client1

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

Zkopírujte šablonu konfiguračního souboru klienta do stejného adresáře. Během kopírování změňte příponu souboru na „.ovpn“ .

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

Změňte vlastníka adresáře a všech souborů „~/client1/“ , aby je bylo možné distribuovat klientovi. V našem případě nastavme vlastníka „mihail“ .

chown -R mihail:mihail ~/client1

Přejděte na klientský počítač a zkopírujte obsah složky „~/client1/“ . To můžete provést pomocí utility „PSCP“ , která je součástí Putty.

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

Soubory klíčů „ca.crt“ , „client1.crt“ a „client1.key“ můžete ukládat kamkoli chcete. V našem případě se nacházejí v této složce „c:\Program Files\OpenVPN\keys“ a konfigurační soubor „client.ovpn“ uložíme do adresáře „c:\Program Files\OpenVPN\config“.

Nyní se pojďme pustit do konfigurace klienta. Otevřete soubor „c:\Program Files\OpenVPN\config\client.ovpn“ v textovém editoru a upravte následující řádky:

#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

Zbytek nechte nedotčený.

Uložte soubor a spusťte klientskou aplikaci „OpenVPN GUI“.

Nastavení VPN dokončeno

Klikněte pravým tlačítkem myši na ikonu aplikace na hlavním panelu a vyberte možnost „Připojit“ . Pokud je připojení úspěšné, ikona se zbarví zeleně.

Pomocí jakékoli online služby se ujistěte, že se vaše veřejná IP adresa změnila a je nyní stejná jako IP adresa serveru.

❮ Předchozí článek Nastavení FTP serveru
Další článek ❯ Jak nastavit Wireguard VPN na vašem serveru

Zeptejte se nás na VPS

Jsme vždy připraveni zodpovědět vaše dotazy v kteroukoli denní i noční dobu.