IKE spravuje autentizaci mezi dvěma komunikujícími koncovými body. Umožňuje také koncovým bodům vyjednávat o algoritmech, které se použijí k nastavení tunelu IPsec.
V naší předchozí příručce jsme se zabývali tím, jak nainstalovat a nakonfigurovat IPSec VPN pomocí StrongSwan na Ubuntu 18.04. Viz odkaz níže;
Nakonfigurujte IPSEC VPN pomocí StrongSwan na Ubuntu 18.04
Nastavte IPSec VPN Server s Libreswan na CentOS 8
Existují různé implementace serveru VPN a klienta Libreswan. V této příručce se naučíme, jak nastavit IPSec VPN server pro mobilní klienty (klienty s dynamicky přiřazenými IP adresami, jako jsou notebooky) zde známé jako road warriors
, takže se mohou odkudkoli připojit k místní síti LAN. Mobilní klienti se ověřují pomocí certifikátů, a proto používají protokol IKEv2.
IKEv2 (Internet Key Exchange verze 2) je šifrovací protokol VPN, který zpracovává akce požadavků a odpovědí. IKE provádí vzájemnou autentizaci mezi dvěma stranami a vytváří přidružení zabezpečení IKE (SA), které zahrnuje sdílené tajné informace, které lze použít k efektivnímu vytvoření přidružení zabezpečení pro ESP (Encapsulating Security Payload) nebo autentizační hlavičku (AH) a sadu kryptografických algoritmů, které mají být používané SA k ochraně provozu, který přenášejí.
Spusťte aktualizaci systému
Aktualizujte své systémové balíčky na serveru, abyste je mohli používat jako server Libreswan VPN.
Aktualizace dnf
Nainstalovat Libreswan na CentOS 8
Po dokončení aktualizace nainstalujte Libreswan. Libreswan je k dispozici v repozitářích CentOS 8 AppStream, a proto jej můžete jednoduše nainstalovat pomocí správce balíčků následovně;
dnf install libreswan
Spuštění Libreswan
Po dokončení instalace spusťte a povolte Libreswan ipsec
služba se spustí při spouštění systému.
systemctl enable --now ipsec
Inicializovat databázi IPSec NSS
Dále je třeba inicializovat databázi NSS (Network Security Services). Databáze NSS se používá k ukládání ověřovacích klíčů a certifikátů identity.
ipsec initnss
Pokud existuje nějaká předchozí databáze, můžete ji odstranit, abyste mohli mít novou databázi. Databáze NSS je uložena pod /etc/ipsec.d
.
Chcete-li odstranit všechny staré databáze, zastavte protokol IPsec, pokud je spuštěn, a odeberte databáze NSS spuštěním příkazů níže;
systemctl stop ipsec
rm -rf /etc/ipsec.d/*db
Poté můžete znovu inicializovat databázi NSS;
ipsec initnss
Poté spusťte IPSec;
systemctl spustit ipsec
Otevřete porty a protokoly Libreswan na bráně firewall
IKE
protokol používá UDP port 500
a 4500
zatímco protokoly IPsec, Encapsulated Security Payload
(ESP) a Authenticated Header
(AH) používá protocol number 50 and 51
resp.
Otevřete proto tyto porty a protokoly v aktivní zóně brány firewall na serveru VPN (levý koncový bod) v této příručce.
firewall-cmd --get-active-zone
Chcete-li otevřít porty a firewall ve výchozí zóně s firewallem;
firewall-cmd --add-port={4500,500}/udp --permanent
firewall-cmd --add-protocol={50,51} --permanent
Nebo můžete jednoduše použít službu IPSec;
firewall-cmd --add-service=ipsec --permanent
Znovu načtěte FirewallD
firewall-cmd --reload
Konfigurace serveru IPSec VPN pomocí Libreswan
Libreswan nepoužívá model klient-server. Používá však výrazy left
a right
odkazovat na koncové body zapojené do jakéhokoli daného připojení. Termíny vlevo/vpravo lze použít libovolně k označení každého systému, pokud zachováte konzistentnost při používání termínů při konfiguraci připojení.
Povolit přesměrování IP
Na obou VPN server
, musíte povolit přesměrování IP.
Spusťte příkaz níže a zkontrolujte, zda je povoleno předávání IP;
sysctl net.ipv4.ip_forward
Pokud je výstup net.ipv4.ip_forward = 0
, pak je předávání IP zakázáno a musíte jej povolit provedením některého z níže uvedených příkazů;
Přesměrování IP lze povolit pouhým povolením maskování IP na firewallu.
firewall-cmd --add-masquerade --permanentfirewall-cmd --reload
Můžete ověřit přesměrování IP;
cat /proc/sys/net/ipv4/ip_forward 1
Hodnota 1 znamená, že je povoleno předávání IP.
Podobně. přesměrování IP můžete povolit spuštěním níže uvedených příkazů;
echo "net.ipv4.ip_forward =1">> /etc/sysctl.conf
Obnovte soubor sysctl.conf s novou konfigurací.
sysctl -p
Také se ujistěte, že jsou deaktivována přesměrování.
méně /etc/sysctl.d/50-libreswan.conf
# Zakazujeme přesměrování pro XFRM/IPsecnet.ipv6.conf.default.accept_redirects =0net.ipv6.conf.all.accept_redirects =0net.ipv4.conf.default.send_redirects =0net.ipv4.conf.default =.accept_redirects 0net.ipv4.conf.all.send_redirects =0net.ipv4.conf.all.accept_redirects =0net.ipv4.conf.all.rp_filter =0
Generovat VPN server a klientské certifikáty
Dále musíte vygenerovat certifikáty serveru VPN a klientů pro použití při ověřování.
Vytvoření databáze generování certifikátů
Spuštěním níže uvedeného příkazu vytvořte databázi, kterou lze použít ke generování úložiště soukromého klíče a certifikátu CA pro použití při generování certifikátů hostitelů. Budeme používat certutil
příkaz k vygenerování certifikátů.
mkdir /etc/ipsec.d/certsdb
certutil -N -d sql:/etc/ipsec.d/certsdb
Příkaz vás vyzve k zadání hesla pro zašifrování vašich klíčů.
Zadejte heslo, které bude použito k zašifrování vašich klíčů.Heslo by mělo mít alespoň 8 znaků a mělo by obsahovat alespoň jeden neabecední znak.Zadejte nové heslo:StrONgPassw0Rd Znovu zadejte heslo:StrONgPassw0Rd
Vygenerovat certifikát CA
V tomto tutoriálu používáme certifikáty s vlastním podpisem, a proto takto můžeme vygenerovat náš místní certifikát CA.
certutil -S -x -n "Kifarunix-demo CA" -s "O=Kifarunix-demo,CN=Kifarunix -demo CA" -k rsa -g 4096 -v 12 -d sql:/etc/ipsec.d/certsdb -t "CT,," -2
Viz man certutil
se dozvíte o použitých možnostech.
Po spuštění příkazu budete nejprve vyzváni k zadání hesla pro šifrovací klíče, které jste nastavili výše. Pokračujte zadáním hesla.
Dále musíte vygenerovat náhodné semeno pro použití při vytváření vašich klíčů psaním libovolné klávesy na klávesnici, dokud se ukazatel průběhu nezaplní. Jakmile bude plná, pokračujte stisknutím klávesy Enter.
...Pokračujte v psaní, dokud nebude ukazatel průběhu plný:|*************************************** *****************************|Dokončeno. Pokračujte stisknutím klávesy Enter:ENTER
- Dále zadejte y určete, že se jedná o generovaný certifikát CA.
- Stiskněte ENTER pro zadání délky cesty
- Zadejte n upřesnit, že se nejedná o kritické rozšíření.
Generování klíče. Může to chvíli trvat...Je toto certifikát CA [y/N]?y Zadejte omezení délky cesty, zadáním přeskočte [<0 pro neomezenou cestu]:> ENTER Je toto kritické rozšíření [ano/ne]?n
Vygenerujte certifikát serveru VPN
Dále vygenerujte certifikát serveru podepsaný pomocí výše vytvořené CA a přiřaďte mu rozšíření.
certutil -S -c "Kifarunix-demo CA" -n "vpn.kifarunix-demo.com" -s "O=Kifarunix-demo,CN=vpn.kifarunix-demo.com" -k rsa -g 4096 -v 12 -d sql:/etc/ipsec.d/certsdb -t ",," -1 -6 -8 "vpn.kifarunix-demo.com"
Podobně zadejte heslo pro šifrování klíčů, vygenerujte seed z klávesnice a pokračujte stisknutím klávesy ENTER.
Definujte klíč a použití rozšíření klíče.
Generování klíče. To může chvíli trvat... 0 - Digitální podpis 1 - Neodmítnutí 2 - Šifrování klíče 3 - Šifrování dat 4 - Smlouva o klíči 5 - Podpisový klíč certifikátu 6 - Podpisový klíč CRL Jiné do konce> 0 0 - Digitální podpis 1 - Nepopiratelnost 2 - Zašifrování klíče 3 - Zašifrování dat 4 - Smlouva o klíči 5 - Podpisový klíč certifikátu 6 - Podpisový klíč CRL Jiné na dokončení> 2 0 - Digitální podpis 1 - Nepopiratelnost 2 - Zašifrování klíče 3 - Šifrování dat 4 - Smlouva o klíči 5 – Podpisový klíč certifikátu 6 – Podpisový klíč CRL Jiné dokončit> 8
Je toto kritické rozšíření [y/N]?n 0 - Ověření serveru 1 - Ověření klienta 2 - Podepisování kódu 3 - Ochrana e-mailu 4 - Časové razítko 5 - Odpovídač OCSP 6 - Zvýšení 7 - Podepisování důvěryhodného seznamu společnosti Microsoft Jiné dokončit> 0 0 - Ověření serveru 1 - Ověření klienta 2 - Podepisování kódu 3 - Ochrana e-mailu 4 - Časové razítko 5 - Odpovídač OCSP 6 - Zvýšení 7 - Podepisování seznamu důvěryhodných společností Microsoft Jiné k dokončení> 8Je toto kritické rozšíření [y/ N]?N
Vygenerujte klientský certifikát VPN
Spuštěním příkazu níže vygenerujte klientský certifikát VPN. Nahraďte název certifikátu (zde použitý název hostitele) názvem hostitele, pro jehož klientský certifikát generujete;
certutil -S -c "Kifarunix-demo CA" -n "janedoe.kifarunix-demo.com" -s "O=Kifarunix-demo,CN=janedoe.kifarunix-demo.com" -k rsa -g 4096 -v 12 -d sql:/etc/ipsec.d/certsdb -t ",," -1 -6 -8 "janedoe.kifarunix-demo.com"
Podobně zadejte stejné možnosti jako výše.
Výpis dostupných certifikátů v databázi
certutil -L -d sql:/etc/ipsec.d/certsdb
Certifikát Přezdívka Důvěra Atributy SSL,S/MIME,JAR/XPIKifarunix-demo CA CTu,u,uvpn.kifarunix-demo.com u,u,ujanedoe.kifarunix-demo.com u,u,ujohndoe.kifarunix-demo .com u,u,u
Exportujte a importujte certifikát brány do databáze pluto.
pk12util -o vpn.kifarunix-demo.com.p12 -n "vpn.kifarunix-demo.com" -d sql:/etc/ipsec.d/certsdbHeslo PKCS12 můžete přeskočit.
lsvpn.kifarunix-demo.com.p12Po exportu importujte certifikát serveru VPN do DB.
import ipsec vpn.kifarunix-demo.com.p12Exportujte certifikáty hostitele klienta, soukromý klíč a certifikát CA. Všechny tyto budou uloženy v souboru .p12, jak je specifikováno jako výstupní soubor v příkazu níže.
pk12util -o janedoe.kifarunix-demo.com.p12 -n "janedoe.kifarunix-demo.com" -d sql:/etc/ipsec.d/certsdbPodobně přeskočte heslo PKCS12.
lsjanedoe.kifarunix-demo.com.p12 vpn.kifarunix-demo.com.p12Pokud jste vygenerovali certifikáty pro jiné klientské hostitele, můžete je také exportovat.
Vytvořit soubor konfigurace koncového bodu IPSec VPN
Na svém hostiteli IPSec VPN vytvořte konfigurační soubor na
/etc/ipsec.d
adresář pro vaše mobilní klienty./etc/ipsec.conf
je výchozí konfigurační soubor pro Libreswan a má direktivu pro zahrnutí dalších konfigurací definovaných na/etc/ipsec.d
adresář.vim /etc/ipsec.d/mobile-clients.confDo výše uvedeného souboru vložte následující konfigurace.
conn roadwarriors left=vpn.kifarunix-demo.com leftsubnet=0.0.0.0/0 leftcert=vpn.kifarunix-demo.com leftid=%fromcert leftrsasigkey=%cert leftsendcert=vždy vpravo=%libovolná rightaddresspool=10.0.8.10 -10.0.8.254 rightca=%stejný rightrsasigkey=%cert modecfgdns="8.8.8.8,10.0.8.1" authby=rsasig auto=start dpddelay=60 dpdtimeout=300 dpdaction=clear mobikenely=yes typizace ikevViz
man ipsec.conf
pro komplexní popis výše použitých možností.Ověřte konfigurační soubor, zda neobsahuje nějaké chyby;
/usr/libexec/ipsec/addconn --config /etc/ipsec.conf --checkconfigPokud nedojde k žádné chybě, ukončete příkaz se stavem 0.
echo $?V opačném případě se jakákoliv chyba zobrazí na standardním výstupu. Než budete moci pokračovat, opravte chyby.
Povolte protokolování IPsec zrušením komentáře na řádku,
#logfile=/var/log/pluto.log
, na/etc/ipsec.conf
konfigurace.config setup # Normálně se pluto protokoluje přes syslog. logfile=/var/log/pluto.log ...Restartujte IPsec;
systemctl restart ipsecZkontrolujte stav;
systemctl status ipsecPokud se ipsec nespustí, musí dojít k chybě syntaxe konfigurace. Spusťte níže uvedený příkaz a určete chybu.
journalctl -xeVypněte rp_filter pro Libreswan a znovu načtěte všechny konfigurace jádra.
echo "net.ipv4.conf.all.rp_filter =0">> /etc/sysctl.d/50-libreswan.confsysctl --systemOvěřte konfiguraci IPsec
Chcete-li potvrdit, že konfigurace IPsec je v pořádku, jednoduše spusťte níže uvedený příkaz;
ipsec ověřitOvěření nainstalovaných systémových a konfiguračních souborů Kontrola verze a ipsec na cestě [OK]Libreswan 3.29 (netkey) na 4.18.0-193.6.3.el8_2.x86_64Kontrola podpory IPsec v jádře [OK] NETKEY:Testování hodnot XFRM souvisejících proc ICMP default/send_redirects [OK] ICMP default/accept_redirects [OK] XFRM larval drop [OK]Pluto syntaxe ipsec.conf [OK]Kontrola rp_filter [OK]Kontrola, zda pluto běží [OK] Pluto naslouchá IKE na udp 500 [OK [ OK]Kontrola zastaralých možností ipsec.conf [OK]Zkopírujte klientské certifikáty VPN do svých mobilních klientů
Nyní můžetezkopírovat klientské certifikáty do vzdálených klientů a připojte se k serveru VPN.
V tomto tutoriálu jako naše vzdálené klienty používáme systémy Ubuntu 20.04 a Ubuntu 18.04.
Vygenerovali jsme certifikáty pro dva hostitele,
janedoe.kifarunix-demo.com
ajohndoe.kifarunix-demo.com
pro klientské hostitele Ubuntu 20.04 a Ubuntu 18.04.Konfigurace klienta Libreswan
Na vašem systému Ubuntu nainstalujte balíček libreswan.
apt updateapt install libreswanVytvořte soubor konfigurace připojení VPN klienta Libreswan
vim /etc/ipsec.d/johndoe.confZadejte obsah níže;
conn vpn.kifarunix-demo.com left=%defaultroute leftcert=johndoe.kifarunix-demo.com leftid=%fromcert leftrsasigkey=%cert leftsubnet=0.0.0.0/0 leftmodecfgclient=yes right=vpn .kifarunix-demo.com rightsubnet=0.0.0.0/0 [email protected] rightrsasigkey=%cert zúžení=ano ikev2=trvá na rekey=ano fragmentace=ano mobike=no auto=startPokud používáte názvy hostitelů, ujistěte se, že jsou rozlišitelné.
Podobně na vašem druhém hostiteli;
vim /etc/ipsec.d/janedoe.confconn vpn.kifarunix-demo.com left=%defaultroute leftcert=janedoe.kifarunix-demo.com leftid=%fromcert leftrsasigkey=%cert leftsubnet=0.0.0.0/0 leftmodecfgclient=yes right=vpn.kifarunix-demo. com rightsubnet=0.0.0.0/0 [email protected] rightrsasigkey=%cert zúžení=ano ikev2=trvá na rekey=ano fragmentace=ano mobike=no auto=startZkontrolujte syntaxi konfigurace;
/usr/lib/ipsec/addconn --config /etc/ipsec.conf --checkconfigInicializovat databázi NSS;
sudo ipsec checknssImportujte soubory certifikátu PKCS#12 X.509 do databáze NSS;
sudo ipsec import janedoe.kifarunix-demo.com.p12Udělejte totéž na druhém klientském hostiteli. Stiskněte ENTER pro přeskočení hesla PCKS12.
Zadejte heslo pro soubor PKCS12:ENTER pk12util:IMPORT PKCS12 ÚSPĚŠNÝ Oprava bitů důvěryhodnosti pro Kifarunix-demo CAMůžete vypsat dostupné certifikáty na klientském hostiteli;
certutil -L -d sql:/var/lib/ipsec/nssSpusťte protokol IPsec a povolte jeho spuštění při spouštění systému.
Spuštění nastavení sudo ipsecZkontrolujte stav;
systemctl status ipsec● ipsec.service – démon protokolu Internet Key Exchange (IKE) pro IPsec Načteno:načteno (/lib/systemd/system/ipsec.service; povoleno; přednastaveno dodavatelem:zakázáno) Aktivní:aktivní (běží) od neděle 2020- 06-21 12:28:02 JÍST; před 7 minutami Dokumenty:man:ipsec(8) man:pluto(8) man:ipsec.conf(5) Proces:11251 ExecStartPre=/usr/lib/ipsec/addconn --config /etc/ipsec.conf --checkconfig ( kód=ukončeno, stav=0/ÚSPĚCH) Proces:11266 ExecStartPre=/usr/lib/ipsec/_stackmanager start (code=ukončeno, stav=0/ÚSPĚCH) Proces:11742 ExecStartPre=/usr/sbin/ipsec --checknss ( kód=ukončeno, stav=0/ÚSPĚCH) Proces:11743 ExecStartPre=/usr/sbin/ipsec --checknflog (kód=ukončeno, stav=0/ÚSPĚCH) Hlavní PID:11757 (pluto) Stav:"Spuštění dokončeno." Úkoly:2 (limit:2319) Paměť:10,3M CGroup:/system.slice/ipsec.service └─11757 /usr/lib/ipsec/pluto --leak-detective --config /etc/ipsec.conf --noforkJun 21 12:28:02 koromicha pluto[11757]:"vpn.kifarunix-demo.com"[1] 192.168.56.133 #2:certifikát ověřen OK:O=Kifarunix-demo,CN=vpn.kifarunix-demo>21. června 12:28:02 koromicha pluto[11757]:"vpn.kifarunix-demo.com"[1] 192.168.56.133 #2:ID partnera v režimu IKEv2 je ID_DER_ASN1_DN:'CN=vpn.kifarunix-221.co> :28:02 koromicha pluto[11757]:"vpn.kifarunix-demo.com"[1] 192.168.56.133 #2:Ověřeno pomocí RSA21. června 12:28:02 koromicha pluto]:"11757 kifarunix-demo.com"[1] 192.168.56.133 #2:přijato INTERNAL_IP4_ADDRESS 10.0.8.10 21. června 12:28:02 koromicha pluto[11757]:"vpn.kifarunix-demo.com"[1] 192.168.56.133 #2:přijato INTERNAL_IP4_DNS 8.8.8.8. června 21 12:28:02 vpn.kifarunix-demo.com"[1] 192.168.56.133 #2:přijato INTERNAL_IP4_DNS 10.0.8.1 Jun 21 12:28:02 koromicha pluto[11757]:"vpn.kifarunix"[52111363.com.8 #2:výstup up-client:aktualizace resolvconfJun 21 12:28:02 koromicha pluto[11757]:"vpn.kifarunix-demo.com"[1] 192.168.56.133 #2:dohodnuté připojení [10.0.8.10-10. :0-65535 0] -> [0.0.0>Jun 21 12:28:02 koromicha pluto[11757]:"vpn.kifarunix-demo.com"[1] 192.168.56.133 #2:STATE_V2_IPsec SAI zaveden tunel:režim {ESP/NAT=Zkontrolujte stav na druhém vzdáleném hostiteli.
Ze stavového výstupu můžete zkontrolovat přidělenou IP adresu, INTERNAL_IP4_ADDRESS 10.0.8.10 . Na mém druhém klientském hostiteli, INTERNAL_IP4_ADDRESS 10.0.8.11 .
Načtěte připojení na každém klientském hostiteli;
sudo ipsec auto --add vpn.kifarunix-demo.comVytvořte tunel vytvořením připojení na každém hostiteli;
sudo ipsec auto --up vpn.kifarunix-demo.comZ každého hostitele odešlete příkaz ping na přidělenou IP adresu druhého hostitele.
ping 10.0.8.11 -c 4PING 10.0.8.11 (10.0.8.11) 56(84) bajtů dat.64 bajtů od 10.0.8.11:icmp_seq=1 ttl=63 čas=2,82 ms64 bajtů od 10.0.8.11:2 icttl čas=3 icmp_time =2,84 ms64 bytů z 10.0.8.11:icmp_seq=3 ttl=63 čas=3,06 ms64 bytů z 10.0.8.11:icmp_seq=4 ttl=63 čas=2,83 ms--- 10.0.8. 4 přijato, 0% ztráta paketů, čas 3010 msrtt min/avg/max/mdev =2,820/2,888/3,060/0,099 msNa druhém hostiteli;
ping 10.0.8.10 -c 4PING 10.0.8.10 (10.0.8.10) 56(84) bajtů dat.64 bajtů od 10.0.8.10:icmp_seq=1 ttl=63 čas=1,63 ms64 bajtů od 10.0.8.10:2 icttl čas=3 icmp_time =2,38 ms64 bajtů od 10.0.8.10:icmp_seq=3 ttl=63 čas=3,18 ms64 bajtů od 10.0.8.10:icmp_seq=4 ttl=63 čas=2,86 ms--- 10.0.8. 4 přijato, 0% ztráta paketů, čas 3005 msrtt min/avg/max/mdev =1,631/2,516/3,187/0,588 msDva vzdálení hostitelé nyní mohou komunikovat přes IPsec VPN server. Tím se dostáváme na konec našeho tutoriálu o tom, jak nastavit IPSec VPN server s Libreswan na CentOS 8.
Další čtení/odkaz
Příklady konfigurace Libreswan
Související výukové programy
Nainstalujte a nastavte OpenVPN Server na Ubuntu 20.04
Nakonfigurujte OpenVPN LDAP Based Authentication
Nakonfigurujte klienta strongSwan VPN na Ubuntu 18.04/CentOS 8
Nastavte IPSEC VPN pomocí StrongSwan na Debianu 10
Připojte se k Cisco VPN pomocí souboru PCF na Ubuntu
Nakonfigurujte OpenVPN tak, aby požadovala zadání přihlašovacích údajů při přihlášení v systémech Windows Připojte se k VPN automaticky na Ubuntu 20.04/18.04OpenVPN