Nastavení autentizace v síti L2TP pomocí RUTOKEN EDC 2.0 a RUTOKEN PKI

Nastavení autentizace v síti L2TP pomocí RUTOKEN EDC 2.0 a RUTOKEN PKI

Problematika

Ještě donedávna mnoho lidí nevědělo, jaké to je pracovat z domova. Pandemie náhle změnila situaci ve světě, všichni se začali přizpůsobovat vzniklým okolnostem, zejména tomu, že vycházet z domu se stalo prostě nebezpečné. A mnozí museli rychle organizovat práci z domova pro své zaměstnance.

To je důvod, proč nedostatečný přístup k výběru řešení pro vzdálenou práci může vést k nevratným ztrátám. Uživatelská hesla mohou být ukradena, což umožní útočníkovi bez omezení se připojit k síti a IT zdrojům podniku.

Právě proto nyní vzrostla poptávka po vytváření spolehlivých firemních VPN sítí. Pojďme si povědět o spolehlivé, bezpečné a snadno použitelné VPN síti.

Funguje na základě schématu IPsec/L2TP, které pro autentizaci klientů používá nezískatelné klíče a certifikáty uložené na tokeny, a také přenáší data po síti v zašifrované podobě.

Jako demonstrační stanici pro nastavení byl použit server s CentOS 7 (adresa: centos.vpn.server.ad) a klient s Ubuntu 20.04, stejně jako klient s Windows 10.

Popis systému

VPN bude fungovat na základě schématu IPSec + L2TP + PPP. Protokol Point-to-Point Protocol (PPP) pracuje na datové úrovni modelu OSI a zajišťuje autentizaci uživatele a šifrování přenášených dat. Jeho data jsou zapouzdřena do dat protokolu L2TP, který vlastně zajišťuje vytvoření připojení v VPN síti, ale nezajišťuje autentizaci a šifrování.

Data L2TP jsou zapouzdřena do protokolu IPSec, který také zajišťuje autentizaci a šifrování, ale na rozdíl od protokolu PPP se autentizace a šifrování realizuje na úrovni zařízení, nikoli na úrovni uživatelů.

Tato vlastnost umožňuje zajistit autentizaci uživatelů pouze z určitých zařízení. My však budeme používat protokol IPSec jako toto a umožníme autentizaci uživatelů z jakéhokoli zařízení.

Nastavení autentizace v síti L2TP pomocí RUTOKEN EDC 2.0 a RUTOKEN PKI

Autentizace uživatele pomocí smart karet bude probíhat na úrovni protokolu PPP pomocí protokolu EAP-TLS.

Podrobnější informace o fungování tohoto schématu lze nalézt v tomto článku.

Proč toto schéma splňuje všechny tři požadavky na dobrou VPN síť.

  1. Spolehlivost tohoto schématu byla ověřena časem. Používá se k nasazení VPN sítí od roku 2000.
  2. Bezpečnou autentizaci uživatelů zajišťuje protokol PPP. Standardní implementace protokolu PPP vyvinutá Paulem Mackerrasem nezajišťuje dostatečnou úroveň bezpečnosti, protože pro autentizaci se v nejlepším případě používá autentizace pomocí uživatelského jména a hesla. Všichni víme, že uživatelské jméno a heslo lze odhalit, hádat nebo ukrást. Naprave, již dlouho vývojář Jan Just Keijser v ve své implementaci tohoto protokolu tento problém opravil a přidal možnost použití protokolů založených na asymetrickém šifrování pro autentizaci, jako je EAP-TLS. Kromě toho přidal možnost použití smart karet pro autentizaci, což tuto systém učinilo bezpečnější.
    V současnosti probíhají aktivní jednání o sloučení těchto dvou projektů a lze si být jisti, že se to dříve či později stane. Například v repozitářích Fedora již dlouho leží patčená verze PPP, která používá pro autentizaci bezpečné protokoly.
  3. Ještě nedávno mohli tuto síť používat pouze uživatelé Windows, ale naši kolegové z MGU Vasily Shokov a Alexandr Smirnov našli starý projekt L2TP klienta pro Linux a upravili ho. Společnými silami jsme opravili řadu chyb a nedostatků v práci klienta, zjednodušili instalaci a nastavení systému, i při kompilaci ze zdrojových kódů. Mezi nejvýznamnější z nich patří:
    • Opraveny byly problémy s kompatibilitou starého klienta s rozhraním nových verzí openssl a qt.
    • Odstraněno bylo předávání pppd PIN kódu tokenu přes dočasný soubor.
    • Opraveno bylo nesprávné spouštění programu pro žádost o heslo přes grafické rozhraní. Toho bylo dosaženo nastavením správného prostředí pro službu xl2tpd.
    • Sestavení démona L2tpIpsecVpn nyní probíhá společně se sestavením samotného klienta, což usnadňuje proces sestavení a nastavení.
    • Pro usnadnění vývoje byla připojena systém Azure Pipelines pro testování správnosti sestavení.
    • Byla přidána možnost donutit ke snížení úrovně zabezpečení v kontextu openssl. To je užitečné pro správnou podporu nových operačních systémů, kde je standardní úroveň zabezpečení nastavena na 2, s VPN sítěmi, ve kterých se používají certifikáty, jež nevyhovují požadavkům zabezpečení této úrovně. Tato volba bude užitečná pro práci se stávajícími starými VPN sítěmi.

Opravenou verzi lze nalézt v této repozitáři.

Tento klient podporuje používání smart karet pro autentizaci a také maximálně skrývá všechna úskalí a obtíže spojené s nastavením této schémy pod Linuxem, což dělá nastavení klienta co nejjednodušší a nejrychlejší.

Samozřejmě, pro pohodlnou interoperabilitu PPP a GUI klienta bylo třeba provést i další úpravy každého z projektů, ale nějsme schopni je minimalizovat na minimum:

Nyní můžeme přistoupit k nastavení.

Nastavení serveru

Nainstalujeme všechny potřebné balíčky.

Instalace strongswan (IPsec)

Nejdříve nastavíme firewall pro práci ipsec

sudo firewall-cmd --permanent --add-port=1701/{tcp,udp}
sudo firewall-cmd --permanent --add-service=ipsec
sudo firewall-cmd --reload

Poté se pustíme do instalace

sudo yum install epel-release ipsec-tools dnf
sudo dnf install strongswan

Po instalaci je třeba nastavit konfiguraci pro strongswan (jednu z realizací IPSec). K tomu upravíme soubor /etc/strongswan/ipsec.conf :

config setup
    nat_traversal=yes
    virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12
    oe=off
    protostack=netkey

conn L2TP-PSK-NAT
    rightsubnet=vhost:%priv
    also=L2TP-PSK-noNAT

conn L2TP-PSK-noNAT
    authby=secret
    pfs=no
    auto=add
    keyingtries=3
    rekey=no
    ikelifetime=8h
    keylife=1h
    type=transport
    left=%any
    leftprotoport=udp/1701
    right=%any
    rightprotoport=udp/%any
    ike=aes128-sha1-modp1536,aes128-sha1-modp1024,aes128-md5-modp1536,aes128-md5-modp1024,3des-sha1-modp1536,3des-sha1-modp1024,3des-md5-modp1536,3des-md5-modp1024
    esp=aes128-sha1-modp1536,aes128-sha1-modp1024,aes128-md5-modp1536,aes128-md5-modp1024,3des-sha1-modp1536,3des-sha1-modp1024,3des-md5-modp1536,3des-md5-modp1024

Také nastavíme společné heslo pro přístup. Společné heslo by mělo být známo všem účastníkům sítě pro autentizaci. Tento způsob je spolehlivě nezabezpečený, protože toto heslo se snadno může dostat k osobám, kterým nechceme poskytovat přístup do sítě.
I přesto tento fakt neovlivní bezpečnost sítě, protože hlavní šifrování dat a autentizaci uživatelů provádí protokol PPP. Ale pro spravedlnost je třeba poznamenat, že strongswan podporuje bezpečnější technologie pro autentizaci, například pomocí privátních klíčů. Také je ve strongswan možnost zabezpečit autentizaci pomocí čipových karet, ale prozatím je podporován pouze omezený okruh zařízení, a proto je autentizace pomocí tokenů a čipových karet Rutoken zatím problematická. Nastavíme společné heslo pomocí souboru. /etc/strongswan/ipsec.secrets:

# ipsec.secrets - strongSwan IPsec secrets file
%any %any : PSK "SECRET_PASSPHRASE"

Restartujeme strongswan:

sudo systemctl enable strongswan
sudo systemctl restart strongswan

Instalace xl2tp

sudo dnf install xl2tpd

Odpovíme ho pomocí souboru /etc/xl2tpd/xl2tpd.conf:

[global]
force userspace = yes
listen-addr = 0.0.0.0
ipsec saref = yes

[lns default]
exclusive = no
; určuje statickou adresu serveru ve virtuální síti
local ip = 100.10.10.1
; nastavuje rozsah virtuálních adres
ip range = 100.10.10.1-100.10.10.254
assign ip = yes
refuse pap = yes
require authentication = yes
; tuto možnost lze vypnout po úspěšném nastavení sítě
ppp debug = yes
length bit = yes
pppoptfile = \/etc\/ppp\/options.xl2tpd
; určuje adresu serveru v síti
name = centos.vpn.server.ad

Restartujeme službu:

sudo systemctl enable xl2tpd
sudo systemctl restart xl2tpd

Nastavení PPP

Je dobré mít poslední verzi pppd. Pro to vykonáme následující sekvenci příkazů:

sudo yum install git make gcc openssl-devel
git clone "https:\/\/github.com\/jjkeijser\/ppp"
cd ppp
.\/configure --prefix \/usr
make -j4
sudo make install

Zapište do souboru /etc/ppp/options.xl2tpd následující (pokud tam nějaké hodnoty jsou, můžete je odstranit):

ipcp-accept-local
ipcp-accept-remote
ms-dns 8.8.8.8
ms-dns 1.1.1.1

noccp
auth
crtscts
idle 1800
mtu 1410
mru 1410
nodefaultroute
debug
lock
proxyarp
connect-delay 5000

Vypíšeme kořenový certifikát a certifikát serveru:

#директория с сертификатами пользователей, УЦ и сервера
sudo mkdir /etc/ppp/certs
#директория с закрытыми ключами сервера и УЦ
sudo mkdir /etc/ppp/keys
#запрещаем любой доступ к этой дирректории кроме администатора
sudo chmod 0600 /etc/ppp/keys/

#генерируем ключ и выписываем сертификат УЦ
sudo openssl genrsa -out /etc/ppp/keys/ca.pem 2048
sudo openssl req -key /etc/ppp/keys/ca.pem -new -x509 -out /etc/ppp/certs/ca.pem -subj "/C=RU/CN=L2TP CA"

#генерируем ключ и выписываем сертификат сервера
sudo openssl genrsa -out /etc/ppp/keys/server.pem 2048
sudo openssl req -new -out server.req -key /etc/ppp/keys/server.pem -subj "/C=RU/CN=centos.vpn.server.ad"
sudo openssl x509 -req -in server.req -CAkey /etc/ppp/keys/ca.pem -CA /etc/ppp/certs/ca.pem -out /etc/ppp/certs/server.pem -CAcreateserial

Takže jsme dokončili základní nastavení serveru. Zbytek konfigurace serveru se týká přidání nových klientů.

Přidání nového klienta

Abychom přidali nového klienta do sítě, je třeba uložit jeho certifikát na seznam důvěryhodných pro tohoto klienta.

Pokud se uživatel chce stát účastníkem VPN sítě, vytvoří pár klíčů a žádost o certifikát pro daného klienta. Pokud je uživatel důvěryhodný, lze tuto žádost podepsat a získaný certifikát uložit do adresáře certifikátů:

sudo openssl x509 -req -in client.req -CAkey /etc/ppp/keys/ca.pem -CA /etc/ppp/certs/ca.pem -out /etc/ppp/certs/client.pem -CAcreateserial

Přidáme řádek do souboru /etc/ppp/eaptls-server pro přiřazení jména klienta a jeho certifikátu:

"client" * /etc/ppp/certs/client.pem /etc/ppp/certs/server.pem /etc/ppp/certs/ca.pem /etc/ppp/keys/server.pem *

POZNÁMKA
Abychom se nezaměnili, bylo by lepší, aby: Common Name, název souboru s certifikátem a uživatelské jméno byly jedinečné.

Je také dobré zkontrolovat, že v ostatních autentizačních souborech se nikde neobjevuje uživatelské jméno, které přidáváme, jinak mohou vzniknout problémy při autentizaci uživatele.

Tento certifikát je nutné poslat uživateli zpět.

Generování páru klíčů a certifikátu

Pro úspěšnou autentizaci je potřeba, aby klient:

  1. vygeneroval pár klíčů;
  2. měl kořenový certifikát CA;
  3. měl certifikát pro svůj pár klíčů podepsaný kořenovou CA.

pro klienta na Linuxu

Nejprve vygenerujeme pár klíčů na tokenu a vytvoříme žádost o certifikát:

#идентификатор ключа (параметр --id) можно заменить на любой другой.
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --keypairgen --key-type rsa:2048 -l --id 45

openssl
OpenSSL> engine dynamic -pre SO_PATH:/usr/lib/x86_64-linux-gnu/engines-1.1/pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:librtpkcs11ecp.so
...
OpenSSL> req -engine pkcs11 -new -key 45 -keyform engine -out client.req -subj "/C=RU/CN=client"

Odesílejte vzniklou žádost client.req k CA. Jakmile obdržíte certifikát pro svůj pár klíčů, uložte ho na token se stejným id, jaké má klíč:

pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -l -y cert -w ./client.pem --id  45

pro klienty Windows a Linux (univerzálnější způsob)

Tento způsob je univerzálnější, protože umožňuje vygenerovat klíč a certifikát, který bude úspěšně rozpoznán uživateli Windows a Linux, ale vyžaduje, aby byla k dispozici mašina se systémem Windows pro provedení procedury generování klíčů.

Před generováním žádostí a importováním certifikátů je nutné přidat kořenový certifikát VPN sítě do seznamu důvěryhodných. K tomu jej otevřeme a v otevřeném okně vybereme možnost "Nainstalovat certifikát":

Nastavení autentizace v síti L2TP pomocí RUTOKEN EDC 2.0 a RUTOKEN PKI

V otevřeném okně zvolíme instalaci certifikátu pro místního uživatele:

Nastavení autentizace v síti L2TP pomocí RUTOKEN EDC 2.0 a RUTOKEN PKI

Nainstalujeme certifikát do úložiště důvěryhodných kořenových certifikátů CA:

Nastavení autentizace v síti L2TP pomocí RUTOKEN EDC 2.0 a RUTOKEN PKI

Po všech těchto krocích souhlasíme se všemi dalšími body. Nyní je systém nakonfigurován.

Vytvoříme soubor cert.tmp s následujícím obsahem:

[NewRequest]
Subject = "CN=client"
KeyLength = 2048
KeySpec = "AT_KEYEXCHANGE" 
ProviderName = "Microsoft Base Smart Card Crypto Provider"
KeyUsage = "CERT_KEY_ENCIPHERMENT_KEY_USAGE"
KeyUsageProperty = "NCRYPT_ALLOW_DECRYPT_FLAG"
RequestType = PKCS10
SMIME = FALSE

Následně vygenerujeme pár klíčů a vytvoříme žádost o certifikát. Za tímto účelem otevřeme PowerShell a zadáme následující příkaz:

certreq.exe -new -pin $PIN .cert.tmp .client.req

Odešlete vytvořenou žádost client.req do vašeho certifikačního úřadu a vyčkejte na certifikát client.pem. Ten lze zapsat na token a přidat do úložiště certifikátů Windows pomocí následujícího příkazu:

certreq.exe -accept .client.pem

Je třeba poznamenat, že obdobné akce lze provést pomocí grafického rozhraní programu mmc, ale tento způsob je časově náročnější a méně programovatelný.

Nastavení klienta Ubuntu

POZNÁMKA
Nastavení klienta na Linuxu je v současné době poměrně časově náročné, protože vyžaduje kompilaci jednotlivých programů ze zdrojového kódu. Budeme se snažit, aby se všechna tato vylepšení co nejdříve dostala do oficiálních repozitářů.

Pro zajištění připojení na úrovni IPSec k serveru se používá balíček strongswan a démon xl2tp. Pro usnadnění připojení k síti pomocí smart karet použijeme balíček l2tp-ipsec-vpn, který poskytuje grafické rozhraní pro jednodušší konfiguraci připojení.

Zahájíme sestavu prvků postupně, ale předtím nainstalujeme všechny potřebné balíčky pro přímou práci s VPN:

sudo apt-get install xl2tpd strongswan libp11-3

Instalace softwaru pro práci s tokeny

Nainstalujte poslední verzi knihovny librtpkcs11ecp.so s webu, stejně jako knihovny pro práci se smart kartami:

sudo apt-get install pcscd pcsc-tools opensc libengine-pkcs11-openssl

Připojte RUT token a zkontrolujte, zda je systémem rozpoznán:

pkcs11-tool --module /usr/lib/librtpkcs11ecp.so  -O -l

Instalace upraveného ppp

sudo apt-get -y install git make gcc libssl-dev
git clone "https://github.com/jjkeijser/ppp"
cd ppp
./configure --prefix /usr
make -j4
sudo make install

Instalace klienta L2tpIpsecVpn

V současné době je také nutné klienta sestavit ze zdrojového kódu. To se provádí pomocí následujícího sledu příkazů:

sudo apt-get -y install git qt5-qmake qt5-default build-essential libctemplate-dev libltdl-dev
git clone "https://github.com/Sander80/l2tp-ipsec-vpn"
cd l2tp-ipsec-vpn
make -j4
sudo make install

Nastavení klienta L2tpIpsecVpn

Spouštíme nainstalovaného klienta:

Nastavení autentizace v síti L2TP pomocí RUTOKEN EDC 2.0 a RUTOKEN PKI

Po spuštění by se vám měl otevřít applet L2tpIpsecVPN. Klikneme na něj pravým tlačítkem myši a provedeme nastavení připojení:

Nastavení autentizace v síti L2TP pomocí RUTOKEN EDC 2.0 a RUTOKEN PKI

Aby pracovat s tokeny, nejprve určíme cestu k modulu OpenSSL a knihovně PKCS#11. K tomu otevřete kartu "Nastavení" pro konfiguraci parametrů openssl:

Nastavení autentizace v síti L2TP pomocí RUTOKEN EDC 2.0 a RUTOKEN PKI.

Zavřeme okno nastavení OpenSSL a přejdeme k nastavení sítě. Přidáme novou síť kliknutím na tlačítko Přidat… v panelu nastavení a zadejte jméno sítě:

Nastavení autentizace v síti L2TP pomocí RUTOKEN EDC 2.0 a RUTOKEN PKI

Poté se tato síť stane dostupnou v panelu nastavení. Dvakrát klikneme pravým tlačítkem myši na novou síť, abychom ji nakonfigurovali. Na první kartě je třeba provést nastavení IPsec. Zadejte adresu serveru a sdílený klíč:

Nastavení autentizace v síti L2TP pomocí RUTOKEN EDC 2.0 a RUTOKEN PKI

Poté přejdeme na kartu nastavení PPP a uvedeme tam uživatelské jméno, pod kterým se chceme přihlásit do sítě:

Nastavení autentizace v síti L2TP pomocí RUTOKEN EDC 2.0 a RUTOKEN PKI

Poté otevřeme kartu Vlastnosti a uvedeme cestu k klíči, certifikátu klienta a certifikační autoritě:
Nastavení autentizace v síti L2TP pomocí RUTOKEN EDC 2.0 a RUTOKEN PKI

Zavřeme tuto kartu a provedeme konečná nastavení, k tomu otevřeme kartu "IP nastavení" a zaškrtneme možnost "Získat adresu DNS serveru automaticky":

Nastavení autentizace v síti L2TP pomocí RUTOKEN EDC 2.0 a RUTOKEN PKI
Tato možnost umožní klientovi získat od serveru osobní IP adresu uvnitř sítě.

Po všech nastaveních zavřeme všechny karty a restartujeme klienta:

Nastavení autentizace v síti L2TP pomocí RUTOKEN EDC 2.0 a RUTOKEN PKI

Připojení k síti

Po nastavení můžeme přejít k připojení k síti. K tomu otevřeme kartuApplet a vybereme síť, k níž se chceme připojit:

Nastavení autentizace v síti L2TP pomocí RUTOKEN EDC 2.0 a RUTOKEN PKI

Během procesu vytváření spojení klient požádá o zadání PIN kódu pro Rútoken:

Nastavení autentizace v síti L2TP pomocí RUTOKEN EDC 2.0 a RUTOKEN PKI

Pokud se v stavovém řádku objeví oznámení, že spojení bylo úspěšně navázáno, pak bylo nastavení provedeno úspěšně:

Nastavení autentizace v síti L2TP pomocí RUTOKEN EDC 2.0 a RUTOKEN PKI

V opačném případě stojí za to zjistit, proč spojení nebylo navázáno. K tomu se podívejte do protokolu programu a vyberte vAppletu příkaz "Informace o připojení":

Nastavení autentizace v síti L2TP pomocí RUTOKEN EDC 2.0 a RUTOKEN PKI

Nastavení klienta Windows

Nastavení klienta ve Windows je mnohem jednodušší než v Linuxu, protože veškerý potřebný software je již zabudován do systému.

Nastavení systému

Nainstalujeme všechny potřebné ovladače pro práci s Rútokeny tím, že je stáhneme z oficiálního webu.

Import kořenového certifikátu pro autentizaci

Stáhneme kořenový certifikát serveru a nainstalujeme ho do systému. K tomu ho otevřeme a v otevřeném okně vybereme možnost "Nainstalovat certifikát":

Nastavení autentizace v síti L2TP pomocí RUTOKEN EDC 2.0 a RUTOKEN PKI

V otevřeném okně vybereme instalaci certifikátu pro místního uživatele. Pokud chceme, aby byl certifikát dostupný všem uživatelům na počítači, pak bychom měli vybrat instalaci certifikátu na místní počítač:

Nastavení autentizace v síti L2TP pomocí RUTOKEN EDC 2.0 a RUTOKEN PKI

Nainstalujeme certifikát do úložiště důvěryhodných kořenových certifikátů CA:

Nastavení autentizace v síti L2TP pomocí RUTOKEN EDC 2.0 a RUTOKEN PKI

Po všech těchto krocích souhlasíme se všemi dalšími body. Nyní je systém nakonfigurován.

Nastavení VPN připojení

Pro nastavení VPN připojení přejděte do ovládacího panelu a vyberte možnost vytvoření nového připojení.

Nastavení autentizace v síti L2TP pomocí RUTOKEN EDC 2.0 a RUTOKEN PKI

V vyskakovacím okně vyberte možnost vytvoření připojení k pracovnímu místu:

Nastavení autentizace v síti L2TP pomocí RUTOKEN EDC 2.0 a RUTOKEN PKI

V dalším okně vyberte připojení přes VPN:

Nastavení autentizace v síti L2TP pomocí RUTOKEN EDC 2.0 a RUTOKEN PKI

a zadejte údaje VPN připojení, stejně jako nastavte možnost pro použití smart karty:

Nastavení autentizace v síti L2TP pomocí RUTOKEN EDC 2.0 a RUTOKEN PKI

Tímto nastavení nekončí. Zbývá zadat sdílený klíč pro protokol IPsec, proto přejděme na kartu "Nastavení síťových připojení" a poté na kartu "Vlastnosti tohoto připojení":

Nastavení autentizace v síti L2TP pomocí RUTOKEN EDC 2.0 a RUTOKEN PKI

V zobrazeném okně přejděme na kartu "Bezpečnost", nastavíme jako typ sítě "Síť L2TP/IPsec" a vybereme "Pokročilé možnosti":

Nastavení autentizace v síti L2TP pomocí RUTOKEN EDC 2.0 a RUTOKEN PKI

V otevřeném okně uveďte sdílený klíč IPsec:
Nastavení autentizace v síti L2TP pomocí RUTOKEN EDC 2.0 a RUTOKEN PKI

Připojení

Po dokončení nastavení můžete vyzkoušet připojení k síti:

Nastavení autentizace v síti L2TP pomocí RUTOKEN EDC 2.0 a RUTOKEN PKI

Během připojování budeme požádáni o zadání PIN kódu tokenu:

Nastavení autentizace v síti L2TP pomocí RUTOKEN EDC 2.0 a RUTOKEN PKI

Nastavili jsme si bezpečnou VPN síť a ujistili se, že to není složité.

Poděkování

Chtěl bych ještě jednou poděkovat našim kolegům Vasilii Šokovovi a Aleksandru Smirnovovi za společně odvedenou práci na zjednodušení vytváření VPN připojení pro klienty Linux.

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster