Strongswan je open source multiplatformní implementace IPSec. Je to řešení VPN založené na IPSec, které se zaměřuje na silné mechanismy ověřování. Strongswan nabízí podporu pro protokoly výměny klíčů IKEv1 a IKEv2, autentizaci založenou na certifikátech X.509 nebo předem sdílených klíčích a bezpečné ověřování uživatelů IKEv2 EAP.
V tomto tutoriálu vám ukážu, jak nainstalovat server IPSec VPN pomocí Strongswan. Vytvoříme VPN server IKEv2 s ověřováním 'EAP-MSCHAPv2' a budeme používat certifikáty Letsencrypt na serveru CentOS 7.
Předpoklady
- Server CentOS 7
- Oprávnění uživatele root
Co uděláme?
- Nainstalujte Strongswan na CentOS 7
- Vygenerujte SSL Letsencrypt
- Nakonfigurujte Strongswan
- Povolte bránu firewall NAT
- Povolte přesměrování portů
- Testování
Krok 1 – Instalace Strongswan na CentOS 7
V tomto prvním kroku nainstalujeme implementační software strongswan IPsec a všechny potřebné balíčky z úložiště EPEL.
Nainstalujte úložiště EPEL a nainstalujte balíček strongswan pomocí příkazů yum níže.
yum -y install epel-release
yum -y install strongswan
Počkejte, až se balíček strongswan nainstaluje.
Krok 2 – Vygenerování certifikátu SSL pomocí Let's encrypt
Vytvoříme IKEv2 VPN server s názvem domény 'ikev2.hakase-labs.io' a použijeme certifikáty vygenerované z letsencrypt.
V tomto kroku nainstalujeme nástroj letsencrypt 'certbot' a vygenerujeme certifikáty pro název domény serveru 'ikev2.hakase-labs.io'.
Nainstalujte nástroj letsencrypt 'certbot'.
yum -y install certbot
Po instalaci certbota musíme otevřít HTTP a HTTPS port serveru pomocí firewall-cmd.
Přidejte služby HTTP a HTTPS do seznamu služeb brány firewall spuštěním příkazů firewall-cmd níže.
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reload
Nyní můžeme generovat nové soubory certifikátů SSL pomocí nástroje letsencrypt certbot.
Spusťte níže uvedený příkaz certbot.
certbot certonly --rsa-key-size 4096 --standalone --agree-tos --no-eff-email --email [email protected] -d ikev2.hakase-labs.io
Certifikáty Letsencrypt pro název domény vpn 'ikev2.hakase-labs.io' byly vygenerovány a jsou umístěny v adresáři '/etc/letsencrypt/live'.
Dále musíme zkopírovat soubory certifikátu 'fullchain.pem', 'privkey.pem' a 'chain.pem' do adresáře '/etc/strongswan/ipsec.d/'.
cp /etc/letsencrypt/live/ikev2.hakase-labs.io/fullchain.pem /etc/strongswan/ipsec.d/certs/
cp /etc/letsencrypt/live/ikev2.hakase-labs.io/privkey.pem /etc/strongswan/ipsec.d/private/
cp /etc/letsencrypt/live/ikev2.hakase-labs.io/chain.pem /etc/strongswan/ipsec.d/cacerts/
Všechny letsencrypt certifikáty pro Strongswan VPN s názvem 'ikev2.hakase-labs.io' byly vygenerovány a zkopírovány do adresáře '/etc/strongswan/ipsec.d'.
tree /etc/strongswan/ipsec.d/
Krok 3 – Konfigurace Strongswan
Přejděte do adresáře '/etc/strongswan' a zálohujte výchozí konfigurační soubor 'ipsec.conf'.
cd /etc/strongswan/
mv ipsec.conf ipsec.conf.asli
Vytvořte nový 'ipsec.conf' pomocí editoru vim.
vim ipsec.conf
A vložte následující konfiguraci.
#global configuration IPsec #chron logger config setup charondebug="ike 1, knl 1, cfg 0" uniqueids=no #define new ipsec connection conn hakase-vpn auto=add compress=no type=tunnel keyexchange=ikev2 ike=aes128-sha1-modp1024,aes128-sha1-modp1536,aes128-sha1-modp2048,aes128-sha256-ecp256,aes128-sha256-modp1024,aes128-sha256-modp1536,aes128-sha256-modp2048,aes256-aes128-sha256-sha1-modp2048-modp4096-modp1024,aes256-sha1-modp1024,aes256-sha256-modp1024,aes256-sha256-modp1536,aes256-sha256-modp2048,aes256-sha256-modp4096,aes256-sha384-ecp384,aes256-sha384-modp1024,aes256-sha384-modp1536,aes256-sha384-modp2048,aes256-sha384-modp4096,aes256gcm16-aes256gcm12-aes128gcm16-aes128gcm12-sha256-sha1-modp2048-modp4096-modp1024,3des-sha1-modp1024! esp=aes128-aes256-sha1-sha256-modp2048-modp4096-modp1024,aes128-sha1,aes128-sha1-modp1024,aes128-sha1-modp1536,aes128-sha1-modp2048,aes128-sha256,aes128-sha256-ecp256,aes128-sha256-modp1024,aes128-sha256-modp1536,aes128-sha256-modp2048,aes128gcm12-aes128gcm16-aes256gcm12-aes256gcm16-modp2048-modp4096-modp1024,aes128gcm16,aes128gcm16-ecp256,aes256-sha1,aes256-sha256,aes256-sha256-modp1024,aes256-sha256-modp1536,aes256-sha256-modp2048,aes256-sha256-modp4096,aes256-sha384,aes256-sha384-ecp384,aes256-sha384-modp1024,aes256-sha384-modp1536,aes256-sha384-modp2048,aes256-sha384-modp4096,aes256gcm16,aes256gcm16-ecp384,3des-sha1! fragmentation=yes forceencaps=yes dpdaction=clear dpddelay=300s rekey=no left=%any [email protected] leftcert=fullchain.pem leftsendcert=always leftsubnet=0.0.0.0/0 right=%any rightid=%any rightauth=eap-mschapv2 rightsourceip=10.15.1.0/24 rightdns=1.1.1.1,8.8.8.8 rightsendcert=never eap_identity=%identity
Uložte a ukončete.
Podrobnosti konfigurace:
- Vytvořte nové připojení IPSec VPN tunel s názvem 'hakase-vpn'.
- Určete šifrovací sady IKEv2 a ESP pro ověřování.
- Konfigurace „levého“ serveru s názvem domény „ikev2.hakase-labs.io“ a pomocí certifikátu letsencrypt „fullchain.pem“ umístěného v adresáři „/etc/strongswan/ipsec.d/certs“.
- „Správní“ klienti/vzdálené nastavení s autentizační metodou EAP „eap-mschapv2“, přiřazení rozsahu virtuálních IP adres „10.15.1.0/24“ všem připojeným klientům a pomocí veřejných DNS Cloudflare a google. li>
Dále musíme upravit soubor 'ipsec.secrets', abychom definovali soukromý klíč serveru RSA a přihlašovací údaje pro uživatelské heslo EAP.
Upravte soubor 'ipsec.secrets'.
vim ipsec.secrets
Vložte konfiguraci níže.
: RSA "privkey.pem" hakase : EAP "[email protected]" tensai : EAP "[email protected]"
Uložte a ukončete.
Podrobnosti konfigurace:
- Uveďte soukromý klíč serveru RSA pomocí certifikátu letsencrypt 'privkey.pem' umístěného v adresáři '/etc/strongswan/ipsec.d/private'.
- Definujte přihlašovací údaje uživatele EAP ve formátu 'user :EAP "heslo"'.
Konfigurace strongswan IPSec byla dokončena. Spusťte službu strongswan a povolte její spuštění při každém spuštění systému.
systemctl start strongswan
systemctl enable strongswan
Krok 4 – Povolení NAT v Firewallu
V tomto kroku povolíme maskování NAT a přidáme protokoly IPSec Authentication Header (AH) a Encapsulating Security Payload (ESP) na Firewallu pomocí konfigurace 'rich-rule'.
Přidejte do brány firewall 'AH' a 'ESP' pro autentizační a šifrovací protokoly.
firewall-cmd --zone=public --permanent --add-rich-rule='rule protocol value="esp" accept'
firewall-cmd --zone=public --permanent --add-rich-rule='rule protocol value="ah" accept'
Přidejte porty a službu ipsec UDP.
firewall-cmd --zone=public --permanent --add-port=500/udp
firewall-cmd --zone=public --permanent --add-port=4500/udp
firewall-cmd --zone=public --permanent --add-service="ipsec"
Nyní povolte maskování režimu NAT a znovu načtěte konfigurační pravidla brány firewall.
firewall-cmd --zone=public --permanent --add-masquerade
firewall-cmd --reload
Režim NAT na firewallu byl povolen, zkontrolujte pomocí příkazu níže.
firewall-cmd --list-all
Následuje výsledek.
Krok 5 – Povolte přesměrování portů
Abychom povolili přesměrování portů, musíme upravit soubor 'sysctl.conf'.
Upravte soubor '/etc/sysctl.conf' pomocí editoru vim.
vim /etc/sysctl.conf
Zde vložte následující konfiguraci.
net.ipv4.ip_forward = 1 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.all.send_redirects = 0
Uložte a ukončete, nyní znovu načtěte pomocí příkazu sysctl níže.
sysctl -p
Přesměrování portů bylo povoleno. Nyní restartujte službu strongswan.
systemctl restart strongswan
Krok 6 – Testování Strongswan IPSec VPN
V tomto případě provedeme test na telefonu MacOS X a Android.
V systému MacOS
– Otevřete „Předvolby systému“ a klikněte na nabídku „Síť“.
Kliknutím na tlačítko „+“ vytvoříte nové připojení VPN.
- Rozhraní:'VPN'
- Typ VPN:'IKEv2'
- Název služby:'IKEv2-vpn
– Do polí „Adresa serveru“ a „Vzdálené ID“ zadejte název domény VPN „ikev2.hakase-labs.io“.
- Klikněte na „Nastavení ověřování“.
- Ověření pomocí „Uživatelského jména“ .
- Zadejte uživatelské jméno „tensai“ s heslem „[email protected]“
- Klikněte na „OK“ a klikněte na „Použít“.
Na klientovi bylo vytvořeno nové připojení IKEv2 VPN. Nyní klikněte na tlačítko připojit.
A klient byl připojen k serveru strongswan VPN a má interní/soukromou IP adresu 10.15.1.1.
V systému Android
- Stáhněte si a nainstalujte nativní aplikaci pro Android strongswan z Google-Play.
- Přidejte nový profil VPN
- Zadejte název domény serveru 'ikev2.hakase-labs.io' a použijte uživatelské jméno a heslo IKEv2 EAP ověření.
Následující je výsledek, když se připojíme k serveru VPN.
VPN server založený na IKEv2 IPSec byl vytvořen pomocí Strongswan a Letsencrypt na serveru CentOS 7.