GNU/Linux >> Znalost Linux >  >> Cent OS

Jak nastavit IKEv2 VPN pomocí Strongswan a Lets Encrypt na CentOS 8

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.


Cent OS
  1. Jak nastavit IKEv2 VPN pomocí Strongswan a Lets encrypt na CentOS 7

  2. Jak nainstalovat a nastavit DRBD na CentOS

  3. Jak nastavit Firewall pomocí FirewallD na CentOS 8

  1. Jak nastavit Puppet Master a Agent na CentOS 8

  2. Jak nastavit Puppet Master a Agent na CentOS 7

  3. Jak nastavit a nainstalovat Oracle Weblogic v CentOS 7

  1. Jak nainstalovat Shopware s NGINX a Lets Encrypt na CentOS 7

  2. Jak nainstalovat WonderCMS s Nginx a nechat šifrovat SSL na CentOS 7

  3. Jak nainstalovat Pico CMS s Nginx a Lets Encrypt na CentOS 7