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 i IKEv2, ověřování založené na certifikátech X.509 nebo předsdílených klíčích a bezpečné ověřování uživatelů IKEv2 EAP.
V tomto tutoriálu vám ukážu, jak nainstalovat IPSec VPN server pomocí Strongswan. Vytvoříme VPN server IKEv2 s ověřováním 'EAP-MSCHAPv2' a budeme používat certifikáty Letsencrypt na serveru CentOS 8.
Předpoklady
- CentOS 8 Server
- Oprávnění uživatele root
Co budeme dělat?
- Nainstalujte Strongswan na CentOS 8
- Vygenerujte SSL Letsencrypt
- Nakonfigurujte Strongswan
- Povolte bránu firewall NAT
- Povolte přesměrování portů
- Testování
Krok 1 – Instalace Strongswan na CentOS 8
V tomto prvním kroku nainstalujeme implementační software strongswan IPsec a všechny potřebné balíčky z úložiště EPEL.
Před instalací balíčku strongswan musíte do systému CentOS 8 přidat úložiště EPEL.
Přidejte úložiště EPEL pro server CentOS 8.
sudo dnf install epel-release
Poté nainstalujte balíček strongswan z úložiště EPEL pomocí příkazu dnf níže.
sudo dnf install strongswan
Počkejte, až se balíček strongswan nainstaluje.
Krok 2 – Vygenerování certifikátu SSL pomocí Let's encrypt
V této příručce vytvoříme server IKEv2 VPN pomocí názvu domény 'vpn.hakase-labs.io' a použijeme certifikáty vygenerované z letsencrypt.
V tomto kroku ručně nainstalujeme nástroj letsencrypt 'certbot' a vygenerujeme certifikáty pro název domény serveru 'vpn.hakase-labs.io'.
Stáhněte si binární soubor certbot z GitHubu pomocí příkazu wget níže.
wget https://dl.eff.org/certbot-auto -O /usr/local/bin/certbot-auto
Poté z něj udělejte spustitelný soubor změnou oprávnění souboru.
chmod +x /usr/local/bin/certbot-auto
A byl nainstalován nástroj certbot pro generování certifikátů Letsencrypt.
Před vygenerováním certifikátů Letsencrypt musíme otevřít porty HTTP a HTTPS 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-auto.
Změňte e-mailovou adresu a název domény za vlastní a spusťte níže uvedený příkaz „certbot-auto“.
certbot-auto certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email [email protected] -d vpn.hakase-labs.io
Jakmile bude kompletní, dostanete výsledek, jak je uvedeno níže.
Všechny certifikáty názvu vaší domény jsou generovány do adresáře '/etc/letsencrypt/live/domain.com'.
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/vpn.hakase-labs.io/fullchain.pem /etc/strongswan/ipsec.d/certs/
cp /etc/letsencrypt/live/vpn.hakase-labs.io/privkey.pem /etc/strongswan/ipsec.d/private/
cp /etc/letsencrypt/live/vpn.hakase-labs.io/chain.pem /etc/strongswan/ipsec.d/cacerts/
Všechny letsencrypt certifikáty pro Strongswan VPN s názvem 'vpn.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.
config setup
uniqueids=never # allow multiple connections per user
charondebug="ike 2, knl 2, cfg 2, net 2, esp 2, dmn 2, mgr 2"
conn %default
fragmentation=yes
closeaction=restart
rekey=no
dpdaction=clear
keyexchange=ikev2
compress=yes
dpddelay=35s
lifetime=3h
ikelifetime=12h
ike=aes256gcm16-prfsha512-ecp384!
esp=aes256gcm16-ecp384!
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
conn ikev2-pubkey
auto=add
Uložte a ukončete.
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.
A konfigurace strongswan IPSec byla dokončena. Přidejte službu strongswan do doby spouštění při spuštění a poté službu spusťte.
systemctl enable strongswan
systemctl start strongswan
Služba strongswan je spuštěna a spuštěna na serveru CentOS 8, zkontrolujte ji pomocí následujícího příkazu.
systemctl status strongswan
netstat -plntu
A zobrazí se vám výsledek, jak je uvedeno níže.
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 'Remote 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 8.