V tomto tutoriálu bude LibreSwan nainstalován na platformě Ubuntu. LibreSwan je open source implementace protokolu IPsec, je založena na projektu FreeSwan a je k dispozici jako balíček připravený k použití na linuxových distribucích založených na RedHat. Podrobné pokyny jsou však uvedeny ve zdrojovém kódu projektu pro jeho kompilaci na jiných platformách Linux. Po procesu instalace bude brána k bráně založená na IPsec VPN nakonfigurována tak, aby zabezpečila data od odesílatele k přijímajícím protějškům.
Podrobnosti o protokolu IPsec jsou uvedeny v našem předchozím článku. Níže jsou však vysvětleny stručné informace o dvou částech protokolu IPsec s ohledem na LibreSwan.
VPN založená na IPsec se skládá z Internet Keying Exchange protokol a Encapsulating Security Payload (ESP).
--> IKE
Jak název napovídá, účelem protokolu IKE je ověřovat (pomocí předsdíleného klíče, kryptografie veřejného klíče, freeradius) partnery VPN, dynamicky generovat klíče a sdílet klíče s partnery VPN. Šifrovací klíče pro druhou fázi IPsec také závisí na IKE. Libreswan implementuje protokol IKE pomocí programu pluto projektu.
--> ESP
Protokol ESP je skutečná specifikace zásad odsouhlasených partnery, která je implementována v linuxovém jádře (NETEY/XFRM) IPsec stack.
Funkce Libreswan
- Podpora ověřování založeného na předsdíleném klíči.
- Podpora ověřování založeného na veřejném klíči.
- Podporuje obě verze IKE v1/v2 výměny klíčů.
- Podporována šifrovací knihovna NSS.
- Podporovány jsou také Xauth a DNSSec.
Požadované balíčky pro Ubuntu 16.04
Pro úspěšnou kompilaci LibreSwan je nutné nainstalovat následující balíčky na Ubuntu. Stručná informace je také uvedena ve zdrojovém kódu, jak povolit nebo zakázat pluginy/funkce a příkazy při instalaci LibreSwan.
apt-get -y update
apt-get install libunbound-dev libevent-dev libsystemd-dev libnss3-dev libnspr4-dev pkg-config \ libpam0g-dev libcap-ng-dev libcap-ng-utils libselinux1-dev libcurl4-nss-dev flex bison gcc make libnss3-tools
Instalace požadovaných balíčků je uvedena níže.
Nejnovější zdrojový kód nástroje IPsec je stažen pomocí příkazu wget a extrahován pomocí následujícího příkazu tar.
wget https://download.libreswan.org/libreswan-3.20.tar.gz
tar -xzf libreswan-3.20.tar.gz
cd libreswan-3.20
Není třeba spouštět příkaz configure, stačí spustit make příkaz který ukáže dva způsoby, jak postavit LibreSwan, jak je ukázáno níže.
Nakonec spusťte příkaz vytvořit vše příkaz k sestavení LibreSwan na platformě.
make all
Nyní spusťte provést instalaci příkaz k instalaci programu IPsec.
Spuštění služby IPsec
Jak ukazuje výše uvedený snímek obrazovky, je nutné povolit službu IPSec na platformě Ubuntu pomocí následujícího příkazu.
systemctl enable ipsec.service
Před spuštěním služby IPsec je nutné inicializovat šifrovací knihovnu NSS. Používá ho LibreSwan pro použití kryptografických algoritmů v IPsec VPN.
IPsec initnss
Nakonec spusťte službu IPSec pomocí následujícího příkazu.
ipsec setup start
Spustitstav ipsec příkaz k zobrazení nastavení LibreSwan na platformě Ubuntu.
ipsec status
Konfigurace LibreSwan
V tomto tutoriálu bude IPsec VPN nastavena mezi partnery pomocí předem sdíleného klíče a klíčů RSA (pár klíčů veřejný/soukromý). Konfigurace obou peerů (levý/pravý) je uvedena níže.
VPN založená na předsdíleném klíči
ipsec.conf (configuration file of left VM) ipsec.secrets (configuration file of left VM)
verze 2 192.168.15 192.168.15
nastavení konfigurace
protostack=netkey
conn vpn_psk
ike=aes256-sha256;modp4096
phase2alg=aes256-sha256;modp4096
vlevo=192.168.15.145
leftsubnet=172.16.10.0/24
right=192.168.15.245
rightsubnet=192.169.50.0/24
authby=secret
type=tunel
auto=start
ipsec.conf (configuration file of right VM) ipsec.secrets (configuration file of right VM)
verze 2 192.168.15.245
nastavení konfigurace
protostack=netkey
conn vpn_psk
ike=aes256-sha256;modp4096
phase2alg=aes256-sha256;modp4096
vlevo=192.168.15.245
leftsubnet=192.169.50.0/24
right=192.168.15.145
rightsubnet=172.16.10.0/24
authby=secret
type=tunel
auto=start
Po nastavení výše uvedené konfigurace v souborech ipsec.conf a ipsec.secrets spusťte na obou stranách následující příkaz a zahajte proces vyjednávání IPSec.
ipsec restart
Stav VPN s předsdíleným klíčem
Výstup stavu ipsec a setkey -D příkazy jsou uvedeny níže.
ipsec status
setkey -D
RSA (veřejné/soukromé) VPN založené na klíči
Je nutné vygenerovat klíče RSA pro oba počítače a zahrnout je do konfiguračního souboru. Zmenšená verze klíče RSA je zobrazena v tomto návodu. Také se ujistěte, že zahrnutý veřejný klíč by měl být na jednom řádku.
Generování klíčů RSA
Jak je ukázáno níže, následující příkazy se používají ke generování klíčů pro oba partnery.
ipsec newhostkey --output /etc/ipsec.secrets
Vygenerovaný veřejný klíč je přidán do souboru ipsec.secrets, jak je znázorněno níže.
Podobně jsou klíče RSA generovány pomocí stejného příkazu pro počítač na pravé straně, jak je znázorněno na následujícím snímku.
Jak je uvedeno výše, příkazy pro generování klíčů automaticky zahrnují veřejný klíč RSA v /etc/ipsec.secrets na obou peer strojích. Soukromý klíč RSA je uložen v databázi NSS pod /etc/ipsec.d/*.db soubory.
Po vygenerování RSA klíčů se v dalším kroku změní konfigurace obou počítačů v souboru ipsec.conf.
ipsec.conf (configuration file of left VM)
verze 2
nastavení konfigurace
protostack=netkey
conn vpn_rsa
ike=aes256-sha256;modp4096
phase2alg=aes256-sha256;modp4096
vlevo=192.168.15.145
leftsubnet=172.16.10.0/24
right=192.168.15.245
rightsubnet=192.169.50.0/24
authby=rsasig
leftrsasigkey=0sAQPgMUjAb8QOQaJ1FTkIQf3f[.......]ALQNXUf$
type=tunel
auto=start
ipsec.conf (configuration file of right VM)
verze 2
nastavení konfigurace
protostack=netkey
conn vpn_rsa
ike=aes256-sha256;modp4096
phase2alg=aes256-sha256;modp4096
vlevo=192.168.15.245
leftsubnet=192.169.50.0/24
right=192.168.15.145
rightsubnet=172.16.10.0/24
authby=rsasig
rightrsasigkey=0sAQPgMUjAb8QOQaJ1FTkIQf3f[........]ALQNXUf$
leftrsasigkey=0sAQOs7aPh6LppUGgC......[em.>254]+
type=tunel
auto=start
Po změně konfiguračních souborů LibreSwan je dalším krokem restartování služby IPsec na obou počítačích pomocí následujícího příkazu.
ipsec restart
Stav IPsec VPN na levém zařízení je zobrazen na následujícím snímku obrazovky. Ukazuje, že RSASIG se v zásadě používá k ověřování protějšků tunelu IPsec.
Účelem tohoto tutoriálu je prozkoumat "LibreSwan", který poskytuje implementaci protokolu IPsec. Je k dispozici v distribucích RedHat, lze jej však snadno zkompilovat pro jinou platformu, jako je Ubuntu/Debian. V tomto článku je první nástroj LibreSwan vytvořen ze zdroje a poté jsou konfigurovány dvě VPN pomocí předem sdílených klíčů a klíčů RSA mezi zařízeními bran.