GNU/Linux >> Znalost Linux >  >> Panels >> OpenVPN

Jak nastavit IKEv2 VPN server s StrongSwan na Ubuntu 22.04

Úvod

Virtuální privátní síť neboli VPN vám umožňuje bezpečně šifrovat provoz, který prochází nedůvěryhodnými sítěmi, jako jsou sítě v kavárně, na konferenci nebo na letišti.

Internet Key Exchange v2 nebo IKEv2 je protokol, který umožňuje přímé tunelování IPSec mezi serverem a klientem. V implementacích IKEv2 VPN poskytuje IPSec šifrování síťového provozu. IKEv2 je nativně podporován na některých platformách (OS X 10.11+, iOS 9.1+ a Windows 10) bez nutnosti dalších aplikací a celkem hladce zvládá škytavku klientů.

V tomto tutoriálu nastavíte server IKEv2 VPN pomocí StrongSwan na serveru Ubuntu 22.04. Poté se dozvíte, jak se k němu připojit pomocí klientů Windows, macOS, Ubuntu, iOS a Android.

Předpoklady

K dokončení tohoto kurzu budete potřebovat:

  • Jeden server Ubuntu 22.04 nakonfigurovaný podle průvodce počátečním nastavením serveru Ubuntu 22.04, včetně sudo uživatel bez oprávnění root a firewall.

Krok 1 – Instalace StrongSwan

Nejprve si nainstalujete StrongSwan, open-source IPSec démona, který si nakonfigurujete jako váš VPN server. Nainstalujete také komponentu infrastruktury veřejných klíčů (PKI), abyste mohli vytvořit certifikační autoritu (CA), která poskytne pověření pro vaši infrastrukturu.

Začněte aktualizací místní mezipaměti balíčků:

  1. sudo apt update

Poté nainstalujte software zadáním:

  1. sudo apt install strongswan strongswan-pki libcharon-extra-plugins libcharon-extauth-plugins libstrongswan-extra-plugins

Další libcharon-extauth-plugins balíček se používá k zajištění toho, aby se různí klienti mohli autentizovat k vašemu serveru pomocí sdíleného uživatelského jména a přístupové fráze. libstrongswan-extra-plugins balíček je součástí dodávky, takže Strongswan podporuje šifrovací sady eliptických křivek, které používají Curve25519 kryptografická sada.

Nyní, když je vše nainstalováno, přejděte k vytváření certifikátů.

Krok 2 – Vytvoření certifikační autority

Server IKEv2 vyžaduje ke své identifikaci klientům certifikát. Chcete-li pomoci vytvořit požadovaný certifikát, strongswan-pki balíček je dodáván s nástrojem nazvaným pki vygenerovat certifikační autoritu a certifikáty serveru.

Pro začátek vytvořte několik adresářů pro uložení všech aktiv, na kterých budete pracovat. Struktura adresářů odpovídá některým adresářům v /etc/ipsec.d , kam nakonec přesunete všechny položky, které vytvoříte:

  1. mkdir -p ~/pki/{cacerts,certs,private}

Poté uzamkněte oprávnění, aby naše soukromé soubory nemohli vidět ostatní uživatelé:

  1. chmod 700 ~/pki

Nyní, když máte adresářovou strukturu pro uložení všeho, můžete vygenerovat kořenový klíč. Toto bude 4096bitový klíč RSA, který bude použit k podepsání vašeho certifikátu kořenové certifikační autority.

Klíč vygenerujte provedením těchto příkazů:

  1. pki --gen --type rsa --size 4096 --outform pem > ~/pki/private/ca-key.pem

Poté můžete přejít k vytvoření vaší kořenové certifikační autority pomocí klíče, který jste právě vygenerovali k podepsání kořenového certifikátu:

  1. pki --self --ca --lifetime 3650 --in ~/pki/private/ca-key.pem \
  2. --type rsa --dn "CN=VPN root CA" --outform pem > ~/pki/cacerts/ca-cert.pem

--lifetime 3650 příznak se používá k zajištění platnosti kořenového certifikátu certifikační autority po dobu 10 let. Kořenový certifikát pro autoritu se obvykle nemění, protože by musel být znovu distribuován všem serverům a klientům, kteří na něj spoléhají, takže 10 let je bezpečná výchozí hodnota vypršení platnosti.

Rozlišující jméno můžete změnit (DN) hodnotu na něco jiného, ​​chcete-li. Běžný název (pole CN) je zde pouze indikátor, takže se nemusí shodovat s ničím ve vaší infrastruktuře.

Nyní, když máte spuštěnou kořenovou certifikační autoritu, můžete vytvořit certifikát, který bude server VPN používat.

Krok 3 — Vygenerování certifikátu pro server VPN

Nyní vytvoříte certifikát a klíč pro server VPN. Tento certifikát umožní klientovi ověřit pravost serveru pomocí certifikátu CA, který jsme právě vygenerovali.

Nejprve vytvořte soukromý klíč pro server VPN pomocí následujícího příkazu:

  1. pki --gen --type rsa --size 4096 --outform pem > ~/pki/private/server-key.pem

Nyní vytvořte a podepište certifikát serveru VPN pomocí klíče certifikační autority, který jste vytvořili v předchozím kroku. Proveďte následující příkaz, ale změňte pole Common Name (CN) a Subject Alternate Name (SAN) na název DNS nebo IP adresu vašeho VPN serveru:

  1. pki --pub --in ~/pki/private/server-key.pem --type rsa \
  2. | pki --issue --lifetime 1825 \
  3. --cacert ~/pki/cacerts/ca-cert.pem \
  4. --cakey ~/pki/private/ca-key.pem \
  5. --dn "CN=server_domain_or_IP" --san server_domain_or_IP \
  6. --flag serverAuth --flag ikeIntermediate --outform pem \
  7. > ~/pki/certs/server-cert.pem

Poznámka :Pokud místo názvu DNS používáte IP adresu, budete muset zadat více --san záznamy. Řádek v předchozím příkazovém bloku, kde zadáváte rozlišující název (--dn ... ) bude nutné upravit pomocí zvláštní položky, jako je následující výňatek:

--dn "CN=IP address" --san @IP_address --san IP_address \

Důvod tohoto extra --san @IP_address Položka spočívá v tom, že někteří klienti při ověřování identity zkontrolují, zda certifikát TLS obsahuje záznam DNS i adresu IP serveru.

--flag serverAuth volba se používá k označení, že certifikát bude explicitně použit pro autentizaci serveru před vytvořením šifrovaného tunelu. --flag ikeIntermediate Tato možnost se používá pro podporu starších klientů macOS.

Nyní, když jste vygenerovali všechny soubory TLS/SSL, které StrongSwan potřebuje, můžete soubory přesunout na místo v /etc/ipsec.d adresář zadáním:

  1. sudo cp -r ~/pki/* /etc/ipsec.d/

V tomto kroku jste vytvořili pár certifikátů, který bude použit k zabezpečení komunikace mezi klientem a serverem. Certifikáty jste také podepsali klíčem CA, takže klient bude moci ověřit pravost serveru VPN pomocí certifikátu CA. Se všemi těmito certifikáty připravenými jste připraveni přejít ke konfiguraci SrongSwan.

Krok 4 – Konfigurace StrongSwan

StrongSwan má výchozí konfigurační soubor s několika příklady, ale většinu konfigurace budeme muset provést sami. Než začneme od začátku, zálohujme si soubor pro referenci:

  1. sudo mv /etc/ipsec.conf{,.original}

Vytvořte a otevřete nový prázdný konfigurační soubor pomocí preferovaného textového editoru. Zde použijete nano :

  1. sudo nano /etc/ipsec.conf

Poznámka :Při procházení této části při konfiguraci serverové části vaší VPN narazíte na nastavení, která odkazují vlevo a vpravo strany spojení. Při práci s IPSec VPN vlevo side by convention odkazuje na místní systém, který konfigurujete, v tomto případě na server. Direktivy na pravé straně v těchto nastaveních budou odkazovat na vzdálené klienty, jako jsou telefony a další počítače.

Když později v tomto tutoriálu přejdete ke konfiguraci klientů, konfigurační soubory klienta budou samy na sebe odkazovat pomocí různých levých direktivy a na server se bude odkazovat pomocí vpravo vedlejší terminologie.

Nejprve řekneme StrongSwan, aby protokoloval stavy démonů pro ladění a povolil duplicitní připojení. Přidejte do souboru tyto řádky:

/etc/ipsec.conf
config setup
    charondebug="ike 1, knl 1, cfg 0"
    uniqueids=no

Poté vytvoříme konfigurační sekci pro naši VPN. Také řekneme StrongSwan, aby vytvořil IKEv2 VPN tunely a automaticky načetl tuto konfigurační sekci, když se spustí. Připojte k souboru následující řádky:

/etc/ipsec.conf
. . .
conn ikev2-vpn
    auto=add
    compress=no
    type=tunnel
    keyexchange=ikev2
    fragmentation=yes
    forceencaps=yes

Nakonfigurujeme také detekci mrtvých vrstevníků, aby se odstranila všechna „visící“ připojení v případě, že se klient neočekávaně odpojí. Přidejte tyto řádky:

/etc/ipsec.conf
. . .
conn ikev2-vpn
    . . .
    dpdaction=clear
    dpddelay=300s
    rekey=no

Dále nakonfigurujeme parametry IPSec na „levé“ straně serveru. Každý z následujících parametrů zajišťuje, že server je nakonfigurován tak, aby přijímal připojení od klientů a aby se správně identifikoval. Každé z těchto nastavení přidáte do /etc/ipsec.conf jakmile se seznámíte s tím, co jsou a proč se používají:

  • left=%any %any hodnota zajišťuje, že server bude používat síťové rozhraní, kde přijímá příchozí spojení pro následnou komunikaci s klienty. Pokud například připojujete klienta přes privátní síť, server použije po zbytek připojení privátní IP adresu, na kterou přijímá provoz.
  • leftid=@server_domain_or_IP Tato možnost řídí název, který server prezentuje klientům. V kombinaci s další možností leftcert , leftid Tato možnost zajišťuje, že se nakonfigurovaný název serveru a rozlišovací název (DN), který je obsažen ve veřejném certifikátu, shodují.
  • leftcert=server-cert.pem Tato možnost je cesta k veřejnému certifikátu pro server, který jste nakonfigurovali v kroku 3. Bez něj se server nebude moci ověřit s klienty ani dokončit vyjednávání o nastavení IKEv2.
  • leftsendcert=always always hodnota zajišťuje, že každý klient, který se připojí k serveru, vždy obdrží kopii veřejného certifikátu serveru jako součást počátečního nastavení připojení.
  • leftsubnet=0.0.0.0/0 Poslední možnost „levá“ strana, kterou přidáte, informuje klienty o podsítích, které jsou dosažitelné za serverem. V tomto případě 0.0.0.0/0 se používá k reprezentaci celé sady IPv4 adres, což znamená, že server řekne klientům, aby ve výchozím nastavení posílali veškerý svůj provoz přes VPN.

Nyní, když jste obeznámeni s každou z relevantních možností „levé“ strany, přidejte je všechny do souboru takto:

/etc/ipsec.conf
. . .
conn ikev2-vpn
    . . .
    left=%any
    leftid=@server_domain_or_IP
    leftcert=server-cert.pem
    leftsendcert=always
    leftsubnet=0.0.0.0/0

Poznámka :Při konfiguraci ID serveru (leftid ), uveďte pouze @ znak, pokud bude váš server VPN identifikován názvem domény:

/etc/ipsec.conf
    . . .    leftid=@vpn.example.com
    . . .

Pokud bude server identifikován svou IP adresou, zadejte IP adresu do:

/etc/ipsec.conf
    . . .
    leftid=your_server_ip
    . . .

Dále můžeme nakonfigurovat parametry IPSec na „pravé“ straně klienta. Každý z následujících parametrů říká serveru, jak přijímat připojení od klientů, jak se mají klienti ověřovat na serveru a rozsahy privátních IP adres a servery DNS, které budou klienti používat. Přidejte každé z těchto nastavení do /etc/ipsec.conf jakmile se seznámíte s tím, co jsou a proč se používají:

  • right=%any %any možnost pro right strana připojení dává serveru pokyn, aby přijímal příchozí připojení od libovolného vzdáleného klienta.
  • rightid=%any Tato možnost zajišťuje, že server neodmítne připojení od klientů, kteří poskytují identitu před vytvořením šifrovaného tunelu.
  • rightauth=eap-mschapv2 Tato možnost konfiguruje metodu ověřování, kterou budou klienti používat k ověření na serveru. eap-mschapv2 se zde používá pro širokou kompatibilitu pro podporu klientů, jako jsou zařízení Windows, macOS a Android.
  • rightsourceip=10.10.10.0/24 Tato možnost dává serveru pokyn, aby přidělil soukromé IP adresy klientům ze zadaného 10.10.10.0/24 fond IP adres.
  • rightdns=8.8.8.8,8.8.4.4 Tyto IP adresy jsou veřejnými překladači DNS společnosti Google. Lze je změnit tak, aby používaly jiné veřejné překladače, překladače serveru VPN nebo jakýkoli jiný překladač, ke kterému se klienti dostanou.
  • rightsendcert=never Tato možnost dává serveru pokyn, že klienti nemusí posílat certifikát, aby se mohli ověřit.

Nyní, když jste obeznámeni s požadovanými možnostmi „pravé“ strany VPN, přidejte následující řádky do /etc/ipsec.conf :

/etc/ipsec.conf
. . .
conn ikev2-vpn
    . . .
    right=%any
    rightid=%any
    rightauth=eap-mschapv2
    rightsourceip=10.10.10.0/24
    rightdns=8.8.8.8,8.8.4.4
    rightsendcert=never

Nyní řekneme StrongSwan, aby požádal klienta o přihlašovací údaje, když se připojí:

/etc/ipsec.conf
. . .
conn ikev2-vpn
    . . .
    eap_identity=%identity

Nakonec přidejte následující řádky pro podporu klientů Linux, Windows, macOS, iOS a Android. Tyto řádky specifikují různé algoritmy pro výměnu klíčů, hašování, ověřování a šifrování (běžně označované jako Cipher Suites ), který StrongSwan umožní různým klientům používat:

/etc/ipsec.conf
. . .
conn ikev2-vpn
    . . .
    ike=chacha20poly1305-sha512-curve25519-prfsha512,aes256gcm16-sha384-prfsha384-ecp384,aes256-sha1-modp1024,aes128-sha1-modp1024,3des-sha1-modp1024!
    esp=chacha20poly1305-sha512,aes256gcm16-ecp384,aes256-sha256,aes256-sha1,3des-sha1!

Každá podporovaná šifrovací sada je od ostatních oddělena čárkou. Například chacha20poly1305-sha512-curve25519-prfsha512 je jedna sada a aes256gcm16-sha384-prfsha384-ecp384 Je další. Šifrovací sady, které jsou zde uvedeny, jsou vybrány tak, aby zajistily co nejširší rozsah kompatibility mezi klienty Windows, macOS, iOS, Android a Linux.

Kompletní konfigurační soubor by měl vypadat takto:

/etc/ipsec.conf
config setup
    charondebug="ike 1, knl 1, cfg 0"
    uniqueids=no

conn ikev2-vpn
    auto=add
    compress=no
    type=tunnel
    keyexchange=ikev2
    fragmentation=yes
    forceencaps=yes
    dpdaction=clear
    dpddelay=300s
    rekey=no
    left=%any
    leftid=@server_domain_or_IP
    leftcert=server-cert.pem
    leftsendcert=always
    leftsubnet=0.0.0.0/0
    right=%any
    rightid=%any
    rightauth=eap-mschapv2
    rightsourceip=10.10.10.0/24
    rightdns=8.8.8.8,8.8.4.4
    rightsendcert=never
    eap_identity=%identity
    ike=chacha20poly1305-sha512-curve25519-prfsha512,aes256gcm16-sha384-prfsha384-ecp384,aes256-sha1-modp1024,aes128-sha1-modp1024,3des-sha1-modp1024!
    esp=chacha20poly1305-sha512,aes256gcm16-ecp384,aes256-sha256,aes256-sha1,3des-sha1!

Jakmile si ověříte, že jste každý řádek přidali správně, uložte a zavřete soubor. Pokud jste použili nano , udělejte to stisknutím CTRL + X , Y a poté ENTER .

Nyní, když jste nakonfigurovali parametry VPN, můžete přejít k vytvoření účtu, aby se uživatelé mohli připojit k serveru.

Krok 5 — Konfigurace ověřování VPN

Váš server VPN je nyní nakonfigurován tak, aby přijímal připojení klientů, ale zatím nejsou nakonfigurovány žádné přihlašovací údaje. Ve speciálním konfiguračním souboru s názvem ipsec.secrets budete muset nakonfigurovat několik věcí :

  • Musíte společnosti StrongSwan sdělit, kde najde soukromý klíč pro náš certifikát serveru, aby se server mohl ověřit u klientů.
  • Musíte také nastavit seznam uživatelů, kteří se budou moci připojit k síti VPN.

Otevřeme soubor secrets pro úpravy:

  1. sudo nano /etc/ipsec.secrets

Nejprve sdělte StrongSwanu, kde najde soukromý klíč a jak jej analyzovat.

/etc/ipsec.secrets
: RSA "server-key.pem"

Ujistěte se, že řádek začíná : znak a že za ním je mezera, takže celý řádek zní : RSA "server-key.pem" .

Poté definujete přihlašovací údaje uživatele. Můžete si vytvořit libovolnou kombinaci uživatelského jména nebo hesla, která se vám líbí:

/etc/ipsec.secrets
your_username : EAP "your_password"

Uložte a zavřete soubor. Nyní, když jste dokončili práci s parametry VPN, restartujte službu VPN, aby byla použita naše konfigurace:

  1. sudo systemctl restart strongswan-starter

Nyní, když je server VPN plně nakonfigurován s možnostmi serveru i uživatelskými pověřeními, je čas přejít ke konfiguraci nejdůležitější části:brány firewall.

Krok 6 — Konfigurace brány firewall a předávání IP adresy jádra

Po dokončení konfigurace StrongSwan musíte nakonfigurovat bránu firewall tak, aby umožňovala průchod a předávání provozu VPN.

Pokud jste postupovali podle základního kurzu počátečního nastavení serveru, měli byste mít povolenou bránu firewall UFW. Pokud ještě nemáte nakonfigurované UFW, měli byste začít přidáním pravidla povolujícího připojení SSH přes bránu firewall, aby se vaše aktuální relace neuzavřela, když povolíte UFW:

  1. sudo ufw allow OpenSSH

Poté povolte bránu firewall zadáním:

  1. sudo ufw enable

Poté přidejte pravidlo povolující provoz UDP na standardní porty IPSec, 500 a 4500 :

  1. sudo ufw allow 500,4500/udp

Dále otevřete jeden z konfiguračních souborů UFW a přidáte několik nízkoúrovňových zásad pro směrování a předávání paketů IPSec. Než to však uděláte, musíte zjistit, které síťové rozhraní na našem serveru se používá pro přístup k internetu. Najděte toto rozhraní dotazem na zařízení spojené s výchozí trasou:

  1. ip route show default

Vaše veřejné rozhraní by mělo následovat slovo „dev“. Tento výsledek například ukazuje rozhraní s názvem eth0 , který je zvýrazněn v následujícím příkladu:

Outputdefault via your_server_ip dev eth0 proto static

Až budete mít své veřejné síťové rozhraní, otevřete /etc/ufw/before.rules soubor ve vašem textovém editoru. Pravidla v tomto souboru jsou přidána do firewallu před zbývajícími obvyklými vstupními a výstupními pravidly. Používají se ke konfiguraci překladu síťových adres (NAT), aby server mohl správně směrovat připojení do az klientů a Internetu.

  1. sudo nano /etc/ufw/before.rules

V horní části souboru (před *filter řádek), přidejte následující konfigurační blok. Změňte každou instanci eth0 ve výše uvedené konfiguraci, aby odpovídal názvu rozhraní, který jste našli pomocí ip route . *nat linky vytvářejí pravidla, aby firewall mohl správně směrovat a manipulovat provoz mezi klienty VPN a internetem. *mangle řádek upravuje maximální velikost segmentu paketů, aby se předešlo potenciálním problémům s určitými klienty VPN:

/etc/ufw/before.rules
*nat
-A POSTROUTING -s 10.10.10.0/24 -o eth0 -m policy --pol ipsec --dir out -j ACCEPT
-A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE
COMMIT

*mangle
-A FORWARD --match policy --pol ipsec --dir in -s 10.10.10.0/24 -o eth0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1361:1536 -j TCPMSS --set-mss 1360
COMMIT

*filter
:ufw-before-input - [0:0]
:ufw-before-output - [0:0]
:ufw-before-forward - [0:0]
:ufw-not-local - [0:0]
. . .

Dále za *filter a řádky definice řetězce, přidejte další blok konfigurace:

/etc/ufw/before.rules
. . .
*filter
:ufw-before-input - [0:0]
:ufw-before-output - [0:0]
:ufw-before-forward - [0:0]
:ufw-not-local - [0:0]

-A ufw-before-forward --match policy --pol ipsec --dir in --proto esp -s 10.10.10.0/24 -j ACCEPT
-A ufw-before-forward --match policy --pol ipsec --dir out --proto esp -d 10.10.10.0/24 -j ACCEPT

Tyto řádky říkají firewallu, aby předal provoz ESP (Encapsulating Security Payload), takže klienti VPN se budou moci připojit. ESP poskytuje dodatečné zabezpečení pro naše pakety VPN, když procházejí nedůvěryhodnými sítěmi.

Až budete hotovi, uložte a zavřete soubor, jakmile ověříte, že jste každý řádek přidali správně. Pokud jste použili nano , udělejte to stisknutím CTRL + X , Y a poté ENTER .

Před restartováním firewallu je také potřeba změnit některé parametry síťového jádra, aby bylo umožněno směrování z jednoho rozhraní do druhého. Soubor, který řídí tato nastavení, se nazývá /etc/ufw/sysctl.conf . V souboru budete muset nakonfigurovat několik věcí.

Nejprve je třeba zapnout předávání paketů IPv4, aby se provoz mohl přesouvat mezi VPN a veřejným síťovým rozhraním na serveru. Dále zakážete zjišťování Path MTU, abyste předešli problémům s fragmentací paketů. Nakonec nebudeme přijímat přesměrování ICMP ani odesílat přesměrování ICMP, abychom zabránili útokům typu man-in-the-middle.

Otevřete konfigurační soubor parametrů jádra UFW pomocí nano nebo váš preferovaný textový editor:

  1. sudo nano /etc/ufw/sysctl.conf

Nyní přidejte následující net/ipv4/ip_forward=1 nastavení na konci souboru pro povolení předávání paketů mezi rozhraními:

/etc/ufw/sysctl.conf
. . .
net/ipv4/ip_forward=1

Dále zablokujte odesílání a přijímání paketů přesměrování ICMP přidáním následujících řádků na konec souboru:

/etc/ufw/sysctl.conf
. . .
net/ipv4/conf/all/accept_redirects=0
net/ipv4/conf/all/send_redirects=0

Nakonec vypněte zjišťování Path MTU přidáním tohoto řádku na konec souboru:

/etc/ufw/sysctl.conf
. . .
net/ipv4/ip_no_pmtu_disc=1

Po dokončení soubor uložte. Nyní můžete povolit všechny své změny vypnutím a opětovným zapnutím brány firewall, protože UFW použije tato nastavení při každém restartu:

  1. sudo ufw disable
  2. sudo ufw enable

Budete vyzváni k potvrzení procesu. Zadejte Y pro opětovné povolení UFW s novým nastavením.

Krok 7 — Testování připojení VPN na Windows, macOS, Ubuntu, iOS a Android

Nyní, když máte vše nastaveno, je čas to vyzkoušet. Nejprve budete muset zkopírovat certifikát CA, který jste vytvořili, a nainstalovat jej na klientská zařízení, která se připojí k VPN. Nejjednodušší způsob, jak to udělat, je přihlásit se na váš server a odeslat obsah souboru certifikátu:

  1. cat /etc/ipsec.d/cacerts/ca-cert.pem

Uvidíte výstup podobný tomuto:

Output-----BEGIN CERTIFICATE-----
MIIFNDCCAxygAwIBAgIIHCsidG5mXzgwDQYJKoZIhvcNAQEMBQAwODELMAkGA1UE

. . .

H2YUdz8XNHrJHvMQKWFpi0rlEcMs+MSXPFWE3Q7UbaZJ/h8wpSldSUbQRUlphExJ
dJ4PX+MUJO/vjG1/ie6Kh25xbBAc3qNq8siiJZDwrg6vjEK7eiZ1rA==
-----END CERTIFICATE-----

Zkopírujte tento výstup do počítače, včetně -----BEGIN CERTIFICATE----- a -----END CERTIFICATE----- řádků a uložte jej do souboru s rozpoznatelným názvem, například ca-cert.pem . Ujistěte se, že soubor, který vytvoříte, má .pem rozšíření.

Případně použijte k přenosu souboru do počítače SFTP.

Jakmile budete mít ca-cert.pem soubor stažený do vašeho počítače, můžete nastavit připojení k VPN.

Připojování ze systému Windows

Existuje několik způsobů, jak importovat kořenový certifikát a nakonfigurovat systém Windows pro připojení k síti VPN. První metoda využívá pro každý krok grafické nástroje. Druhá metoda využívá příkazy PowerShellu, které lze naskriptovat a upravit tak, aby vyhovovaly vaší konfiguraci VPN.

Poznámka: Tyto pokyny byly testovány na instalacích Windows 10 s verzemi 1903 a 1909.

Konfigurace systému Windows pomocí grafických nástrojů

Nejprve importujte kořenový certifikát podle následujících kroků:

  1. Stiskněte WINDOWS+R vyvolejte Spustit dialogu a zadejte mmc.exe ke spuštění konzoly Windows Management Console.

  2. Ze Souboru přejděte do nabídky Přidat nebo odebrat modul snap-in , vyberte Certifikáty ze seznamu dostupných modulů snap-in a klikněte na Přidat .

  3. Chceme, aby VPN fungovala s každým uživatelem, takže vyberte Účet počítače a klikněte na Další .

  4. Věci konfigurujeme na místním počítači, takže vyberte Místní počítač a poté klikněte na Dokončit .

  5. Pod Kořenem konzoly uzel, rozbalte Certifikáty (místní počítač) záznam, rozbalte Důvěryhodné kořenové certifikační úřady a poté vyberte Certifikáty vstup:

  6. Z Akce vyberte Všechny úkoly a klikněte na Importovat zobrazíte Průvodce importem certifikátu. Klikněte na Další přesunout přes úvod.

  7. Na stránce Soubor k importu stiskněte tlačítko Procházet , ujistěte se, že jste změnili typ souboru z „Certifikát X.509 (.cer; .crt)“ na „Všechny soubory (. )“ a vyberte ca-cert.pem soubor, který jste uložili. Poté klikněte na Další .

  8. Ujistěte se, že Obchod s certifikáty je nastaveno na Důvěryhodné kořenové certifikační úřady a klikněte na Další .

  9. Klikněte na Dokončit importovat certifikát.

Poté nakonfigurujte VPN pomocí těchto kroků:

  1. Spusťte Ovládací panely a poté přejděte do Centra sítí a sdílení .
  2. Klikněte na Nastavit nové připojení nebo síť a poté vyberte Připojit k pracovišti .
  3. Vyberte Použít mé internetové připojení (VPN) .
  4. Zadejte podrobnosti o serveru VPN. Do pole Internetová adresa zadejte název domény nebo IP adresu serveru a poté vyplňte Název cíle s něčím, co popisuje vaše připojení VPN. Poté klikněte na Hotovo .

Konfigurace systému Windows pomocí prostředí PowerShell

Chcete-li importovat certifikát kořenové CA pomocí PowerShellu, nejprve otevřete výzvu PowerShellu s oprávněními správce. Chcete-li tak učinit, klikněte pravým tlačítkem na ikonu nabídky Start a vyberte Windows PowerShell (Admin) . Můžete také otevřít příkazový řádek jako správce a zadat powershell .

Dále importujeme certifikát pomocí Import-Certificate cmdlet prostředí PowerShell. V následujícím příkazu je první -CertStoreLocation argument zajistí, že certifikát bude importován do důvěryhodných kořenových certifikačních autorit počítače uložit, aby všechny programy a uživatelé mohli ověřit certifikát serveru VPN. -FilePath argument by měl ukazovat na umístění, kam jste certifikát zkopírovali. V následujícím příkladu je cesta C:\Users\sammy\Documents\ca-cert.pem . Ujistěte se, že jste příkaz upravili tak, aby odpovídal umístění, které jste použili.

  1. Import-Certificate `
  2. -CertStoreLocation cert:\LocalMachine\Root\ `
  3. -FilePath C:\users\sammy\Documents\ca-cert.pem

Příkaz vydá něco jako následující:

Output   PSParentPath: Microsoft.PowerShell.Security\Certificate::LocalMachine\Root

Thumbprint                                Subject
----------                                -------
DB00813B4087E9367861E8463A60CEA0ADC5F002  CN=VPN root CA

Nyní chcete-li nakonfigurovat VPN pomocí PowerShellu, spusťte následující příkaz. Do pole -ServerAddress nahraďte název DNS nebo IP adresu svého serveru čára. Různé příznaky zajistí, že Windows je správně nakonfigurován s příslušnými bezpečnostními parametry, které odpovídají možnostem, které nastavíte v /etc/ipsec.conf .

  1. Add-VpnConnection -Name "VPN Connection" `
  2. -ServerAddress "server_domain_or_IP" `
  3. -TunnelType "IKEv2" `
  4. -AuthenticationMethod "EAP" `
  5. -EncryptionLevel "Maximum" `
  6. -RememberCredential `

Pokud je příkaz úspěšný, nebude žádný výstup. Chcete-li ověřit, zda je VPN správně nakonfigurována, použijte Get-VPNConnection cmdlet:

  1. Get-VpnConnection -Name "VPN Connection"

Obdržíte výstup podobný následujícímu:

OutputName                  : VPN Connection
ServerAddress         : your_server_ip
AllUserConnection     : False
Guid                  : {B055A1AB-175C-4028-B4A8-D34309A2B20E}
TunnelType            : Ikev2
AuthenticationMethod  : {Eap}
EncryptionLevel       : Maximum
L2tpIPsecAuth         :
UseWinlogonCredential : False
EapConfigXmlStream    : #document
ConnectionStatus      : Disconnected
RememberCredential    : True
SplitTunneling        : False
DnsSuffix             :
IdleDisconnectSeconds : 0

Ve výchozím nastavení Windows volí starší a pomalejší algoritmy. Spusťte Set-VpnConnectionIPsecConfiguration cmdlet k upgradu parametrů šifrování, které bude systém Windows používat pro výměnu klíčů IKEv2, a k šifrování paketů:

  1. Set-VpnConnectionIPsecConfiguration -Name "VPN Connection" `
  2. -AuthenticationTransformConstants GCMAES256 `
  3. -CipherTransformConstants GCMAES256 `
  4. -DHGroup ECP384 `
  5. -IntegrityCheckMethod SHA384 `
  6. -PfsGroup ECP384 `
  7. -EncryptionMethod GCMAES256

Poznámka :If you would like to delete the VPN connection and reconfigure it with different options, you can run the Remove-VpnConnection cmdlet.

  1. Remove-VpnConnection -Name "VPN Connection" -Force

The -Force flag will skip prompting you to confirm the removal. You must be disconnected from the VPN if you attempt to remove it using this command.

Connecting to the VPN

Once you have the certificate imported and the VPN configured using either method, your new VPN connection will be visible under the list of networks. Select the VPN and click Connect . You’ll be prompted for your username and password. Type them in, click OK , and you’ll be connected.

Connecting from macOS

Follow these steps to import the certificate:

  1. Double-click the certificate file. Keychain Access will pop up with a dialog that says “Keychain Access is trying to modify the system keychain. Enter your password to allow this.”
  2. Enter your password, then click on Modify Keychain
  3. Double-click the newly imported VPN certificate. This brings up a small properties window where you can specify the trust levels. Set IP Security (IPSec) to Always Trust and you’ll be prompted for your password again. This setting saves automatically after entering the password.

Now that the certificate is imported and trusted, configure the VPN connection with these steps:

  1. Go to System Preferences and choose Network .
  2. Click on the small “plus” button on the lower-left of the list of networks.
  3. In the popup that appears, set Interface to VPN , set the VPN Type to IKEv2 , and give the connection a name.
  4. In the Server and Remote ID field, enter the server’s domain name or IP address. Leave the Local ID blank.
  5. Click on Authentication Settings , select Username , and enter your username and password you configured for your VPN user. Poté klikněte na OK .

Finally, click on Connect to connect to the VPN. You should now be connected to the VPN.

Connecting from Ubuntu

To connect from an Ubuntu machine, you can set up and manage StrongSwan as a service or use a one-off command every time you wish to connect. Instructions are provided for both.

Managing StrongSwan as a Service

To manage StrongSwan as a service, you will need to perform the following configuration steps.

First, update your local package cache using apt

  1. sudo apt update

Next, install StrongSwan and the required plugins for authentication:

  1. sudo apt install strongswan libcharon-extra-plugins

Now you’ll need a copy of the CA certificate in the /etc/ipsec.d/cacerts directory so that your client can verify the server’s identity. Run the following command to copy the ca-cert.pem file into place:

  1. sudo cp /tmp/ca-cert.pem /etc/ipsec.d/cacerts

To ensure the VPN only runs on demand, use systemctl to disable StrongSwan from running automatically:

  1. sudo systemctl disable --now strongswan-starter

Next configure the username and password that you will use to authenticate to the VPN server. Edit /etc/ipsec.secrets using nano or your preferred editor:

  1. sudo nano /etc/ipsec.secrets

Add the following line, editing the highlighted username and password values to match the ones that you configured on the server:

/etc/ipsec.secrets
your_username : EAP "your_password"

Finally, edit the /etc/ipsec.conf file to configure your client to match the server’s configuration:

/etc/ipsec.conf
config setup

conn ikev2-rw
    right=server_domain_or_IP
    # This should match the `leftid` value on your server's configuration
    rightid=server_domain_or_IP
    rightsubnet=0.0.0.0/0
    rightauth=pubkey
    leftsourceip=%config
    leftid=username
    leftauth=eap-mschapv2
    eap_identity=%identity
    auto=start

To connect to the VPN, type:

  1. sudo systemctl start strongswan-starter

To disconnect again, type:

  1. sudo systemctl stop strongswan-starter

Using the charon-cmd Client for One-Off Connections

To manage StrongSwan as a service, you will need to perform the following configuration steps.

First, update your local package cache using apt

  1. sudo apt update

Next, install StrongSwan and the required plugins for authentication:

  1. sudo apt install strongswan libcharon-extra-plugins

Now you’ll need a copy of the CA certificate in the /etc/ipsec.d/cacerts directory so that your client can verify the server’s identity. Run the following command to copy the ca-cert.pem file into place:

  1. sudo cp /tmp/ca-cert.pem /etc/ipsec.d/cacerts

At this point you can connect to the VPN server with charon-cmd using the server’s CA certificate, the VPN server’s IP address, and the username you configured.

Run the following command whenever you want to connect to the VPN:

  1. sudo charon-cmd --cert ca-cert.pem --host vpn_domain_or_IP --identity your_username

When prompted, provide the VPN user’s password and you will be connected to the VPN. To disconnect, press CTRL+C in the terminal and wait for the connection to close.

Connecting from iOS

To configure the VPN connection on an iOS device, follow these steps:

  1. Send yourself an email with the root certificate attached.
  2. Open the email on your iOS device and tap on the attached certificate file, then tap Install and enter your passcode. Once it installs, tap Done .
  3. Go to Settings , General , VPN and tap Add VPN Configuration . This will bring up the VPN connection configuration screen.
  4. Tap on Type and select IKEv2 .
  5. In the Description field, enter a short name for the VPN connection. This could be anything you like.
  6. In the Server and Remote ID field, enter the server’s domain name or IP address. The Local ID field can be left blank.
  7. Enter your username and password in the Authentication section, then tap Done .
  8. Select the VPN connection that you just created, tap the switch on the top of the page, and you’ll be connected.

Connecting from Android

Follow these steps to import the certificate:

  1. Send yourself an email with the CA certificate attached. Save the CA certificate to your downloads folder.
  2. Download the StrongSwan VPN client from the Play Store.
  3. Open the app. Tap the “more” icon (. . . ) in the upper-right corner and select CA certificates .
  4. Tap the “more” icon (. . . ) in the upper-right corner again. Select Import certificate .
  5. Browse to the CA certificate file in your downloads folder and select it to import it into the app.

Now that the certificate is imported into the StrongSwan app, you can configure the VPN connection with these steps:

  1. In the app, tap ADD VPN PROFILE at the top.
  2. Fill out the Server with your VPN server’s domain name or public IP address.
  3. Make sure IKEv2 EAP (Username/Password) is selected as the VPN Type.
  4. Fill out the Username a Heslo with the credentials you defined on the server.
  5. Deselect Select automatically in the CA certificate section and click Select CA certificate .
  6. Tap the IMPORTED tab at the top of the screen and choose the CA you imported (it will be named “VPN root CA” if you didn’t change the “DN” earlier).
  7. If you’d like, fill out Profile name (optional) with a more descriptive name.

When you wish to connect to the VPN, click on the profile you just created in the StrongSwan application.

Troubleshooting Connections

If you are unable to import the certificate, ensure the file has the .pem extension, and not .pem.txt .

If you’re unable to connect to the VPN, check the server name or IP address you used. The server’s domain name or IP address must match what you’ve configured as the common name (CN) while creating the certificate. If they don’t match, the VPN connection won’t work. For example, if you set up a certificate with the CN of vpn.example.com , you must use vpn.example.com when you enter the VPN server details. Double-check the command you used to generate the certificate, and the values you used when creating your VPN connection.

Finally, double-check the VPN configuration to ensure the leftid value is configured with the @ symbol if you’re using a domain name:

/etc/ipsec.conf
    leftid=@vpn.example.com

If you’re using an IP address, ensure that the @ symbol is omitted. Also make sure that when you generated the server-cert.pem file that you included both --san @IP_address and --san IP_address příznaky.

Závěr

In this tutorial, you’ve built a VPN server that uses the IKEv2 protocol. You learned about the directives that control the left and right sides of a connection on both server and clients. You also configured a Windows, macOS, iOS, Android, or Linux client to connect to the VPN.

To add or remove users, skip to Step 5 again. Each line in /etc/ipsec.secrets is for one user, so adding or removing users, or changing passwords just requires editing the file.

Now you can be assured that your online activities will remain secure wherever you go and with any device that you use to access the internet.


OpenVPN
  1. Jak nastavit WireGuard VPN na Ubuntu (průvodce krok za krokem)

  2. Jak nastavit WireGuard na Ubuntu 22.04

  3. Jak nastavit TeamSpeak Server na Ubuntu 16.04

  1. Jak nastavit server OpenVPN na Ubuntu 18.04

  2. Jak nastavit WireGuard VPN na Ubuntu 18.04

  3. Jak nastavit a nakonfigurovat certifikační úřad na Ubuntu 22.04

  1. Jak nastavit WireGuard VPN na Ubuntu 20.04

  2. Jak nastavit a nakonfigurovat server OpenVPN na Ubuntu 22.04

  3. Jak nastavit e-mailový server s Plesk na Ubuntu 20.04