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.

Chcete-li provozovat svou VPN, měli byste pronajmout VPS server. Existuje jiný software, který vám umožní vytvořit připojení VPN. 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í serveru VPN. První z nich je založen na protokolu PPTP, který je již považován za zastaralý a není bezpečný, ale je opravdu snadno konfigurovatelný. 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.

Chcete-li zapnout předávání paketů, otevřete soubor "/etc/sysctl.conf" a změnit „net.ipv4.ip_forward“ hodnotu parametru do 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 externího síťového rozhraní, na kterém je příkaz spuštěn "zobrazit odkaz ip" - budete jej potřebovat v dalším kroku. Naše jméno 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í jsou všechna pravidla vytvořená iptables po restartu serveru resetována. Abyste tomu zabránili, použijte "iptables-persistent" utility. Nainstalujte následující balíček:

sudo apt install iptables-persistent

V určitém okamžiku během procesu instalace uvidíte konfigurační okno, které vám nabídne uložení aktuálních pravidel iptables. Protože pravidla jsou již definována, stačí potvrdit a kliknout "Ano" dvakrát. Od této chvíle budou pravidla aplikována 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é soubor upravte "/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 umožnit 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 *

"pptpd" value je název služby, kterou jsme zadali v souboru "pptpd-options". Namísto „*“ můžete zadat pevnou IP adresu. Ve výsledku soubor "chlap-tajemství" by měl vypadat takto:

Nastavení VPN serveru

Chcete-li nastavení použít, resetujte pptpd službu 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řená "Start" - "Nastavení" - Síť a internet - „VPN“ a klepněte na tlačítko „Přidat připojení VPN“

Nastavení klienta pro připojení VPN

V otevřeném okně zadejte parametry připojení a klikněte "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é připojení VPN. Klikněte levým tlačítkem na připojení a vyberte "Připojit". V případě úspěšného připojení uvidíte „Připojeno“ status.

Přidání připojení VPN

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

Jak si sami nastavit VPN server

Po připojení interní IP adresa serveru, 172.16.0.1 v našem případě se stane výchozí bránou 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. budeme potřebovat “Easy-RSA” paket pro správu šifrovacích klíčů.

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 se ujistěte, ž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í stránky OpenVPN “https://openvpn.net“, přejděte na "KOMUNITA" sekce.

Заходим на официальный сайт проекта “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. Změňte příponu souboru na „.ovpn“ při kopírování.

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. Pojďme udělat "mihail" v našem případě majitel.

chown -R mihail:mihail ~/client1

Přejděte na klientský počítač a zkopírujte obsah souboru "~/client1/" složku. Můžete to udělat s pomocí "PSCP" utilita, která jde s Putty.

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

Můžete ukládat klíčové soubory "ca.crt", "klient1.crt", "klient1.klíč" kdekoli chcete. V našem případě jsou v této složce "c:\Program Files\OpenVPN\keys"a upravíme konfigurační soubor "client.ovpn" do "c:\Program Files\OpenVPN\config" adresáře.

Nyní pojďme ke konfiguraci 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 na ikonu aplikace na hlavním panelu a vyberte "Připojit". Pokud je připojení úspěšné, ikona zezelená.

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 Jak nastavit Wireguard VPN na vašem serveru
Další článek ❯ Nastavení FTP 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.