Hvordan sette opp IPsec-basert VPN med Strongswan på CentOS/RHEL 8


strongSwan er en åpen kildekode, multi-plattform, moderne og komplett IPsec-basert VPN-løsning for Linux som gir full støtte for Internet Key Exchange (både IKEv1 og IKEv2) for å etablere sikkerhetsforeninger (SA) mellom to likemenn. Den er fullverdig, modulær av design og tilbyr dusinvis av plugins som forbedrer kjernefunksjonaliteten.

Relatert artikkel: Hvordan sette opp IPsec-basert VPN med Strongswan på Debian og Ubuntu

I denne artikkelen lærer du hvordan du setter opp sted-til-sted IPsec VPN-gatewayer ved hjelp av strongSwanCentOS/RHEL 8-servere. Dette gjør det mulig for jevnaldrende å autentisere hverandre ved hjelp av en sterk forhåndsdelt nøkkel (PSK). Et sted-til-sted-oppsett betyr at hver sikkerhetsgateway har et undernett bak seg.

Testmiljø

Ikke glem å bruke de virkelige IP-adressene dine under konfigurasjonene mens du følger veiledningen.

Nettsted 1 Gateway
Public IP: 192.168.56.7
Private IP: 10.10.1.1/24
Private Subnet: 10.10.1.0/24
Nettsted 2 Gateway
Public IP:  192.168.56.6
Private IP: 10.20.1.1/24
Private Subnet: 10.20.1.0/24

Trinn 1: Aktiver kjerne-IP-videresending i CentOS 8

1. Start med å aktivere kjernens IP-videresendingsfunksjonalitet i /etc/sysctl.conf konfigurasjonsfilen på begge VPN-gatewayene.

vi /etc/sysctl.conf

Legg til disse linjene i filen.

net.ipv4.ip_forward = 1 
net.ipv6.conf.all.forwarding = 1 
net.ipv4.conf.all.accept_redirects = 0 
net.ipv4.conf.all.send_redirects = 0 

2. Etter å ha lagret endringene i filen, kjør følgende kommando for å laste de nye kjerneparameterne i kjøretid.

sysctl -p

3. Deretter oppretter du en permanent statisk rute i filen /etc/sysconfig/network-scripts/route-eth0 på begge sikkerhetsgatewayene.

vi /etc/sysconfig/network-scripts/route-eth0

Legg til følgende linje i filen.

#Site 1 Gateway
10.20.1.0/24  via 192.168.56.7

#Site 2 Gateway
10.10.1.0/24 via 192.168.56.6

4. Start deretter nettverksadministratoren på nytt for å bruke de nye endringene.

systemctl restart NetworkManager

Trinn 2: Installere strongSwan i CentOS 8

5. strongswan-pakken leveres i EPEL-depotet. For å installere det, må du aktivere EPEL-depotet, og deretter installere strongwan på begge sikkerhetsgatewayene.

dnf install epel-release
dnf install strongswan

6. For å sjekke versjonen av strongswan som er installert på begge gatewayene, kjør følgende kommando.

strongswan version

7. Start deretter strongswan-tjenesten og aktiver den automatisk ved systemoppstart. Kontroller deretter statusen på begge sikkerhetsgatewayene.

systemctl start strongswan 
systemctl enable strongswan
systemctl status strongswan

Merk: Den nyeste versjonen av strongswan i CentOS/REHL 8 kommer med støtte for både swanctl (et nytt, bærbart kommandolinjeverktøy introdusert med strongSwan 5.2.0, brukt til å konfigurere, kontrollere og overvåke IKE-demonen Charon ved å bruke vici-plugin) og starter (eller ipsec)-verktøyet ved å bruke den utdaterte stroke-plugin.

8. Hovedkonfigurasjonskatalogen er /etc/strongswan/ som inneholder konfigurasjonsfiler for begge programtilleggene:

ls /etc/strongswan/

For denne veiledningen vil vi bruke IPsec-verktøyet som påkalles ved hjelp av strongswan-kommandoen og strøk-grensesnittet. Så vi vil bruke følgende konfigurasjonsfiler:

  • /etc/strongswan/ipsec.conf – konfigurasjonsfil for strongSwan IPsec-undersystemet.
  • /etc/strongswan/ipsec.secrets – hemmelighetsfil.

Trinn 3: Konfigurering av sikkerhetsporter

9. I dette trinnet må du konfigurere tilkoblingsprofilene på hver sikkerhetsgateway for hvert nettsted ved å bruke /etc/strongswan/ipsec.conf strongswan-konfigurasjonsfilen.

Konfigurere Site 1 Connection Profile

cp /etc/strongswan/ipsec.conf /etc/strongswan/ipsec.conf.orig
vi /etc/strongswan/ipsec.conf

Kopier og lim inn følgende konfigurasjon i filen.

config setup
        charondebug="all"
        uniqueids=yes
conn ateway1-to-gateway2
        type=tunnel
        auto=start
        keyexchange=ikev2
        authby=secret
        left=192.168.56.7
        leftsubnet=10.10.1.1/24
        right=192.168.56.6
        rightsubnet=10.20.1.1/24
        ike=aes256-sha1-modp1024!
        esp=aes256-sha1!
        aggressive=no
        keyingtries=%forever
        ikelifetime=28800s
        lifetime=3600s
        dpddelay=30s
        dpdtimeout=120s
        dpdaction=restart

Konfigurere Site 2 Connection Profile

cp /etc/strongswan/ipsec.conf /etc/strongswan/ipsec.conf.orig
vi /etc/strongswan/ipsec.conf

Kopier og lim inn følgende konfigurasjon i filen:

config setup
        charondebug="all"
        uniqueids=yes
conn 2gateway-to-gateway1
        type=tunnel
        auto=start
        keyexchange=ikev2
        authby=secret
        left=192.168.56.6
        leftsubnet=10.20.1.1/24
        right=192.168.56.7
        rightsubnet=10.10.1.1/24
        ike=aes256-sha1-modp1024!
        esp=aes256-sha1!
        aggressive=no
        keyingtries=%forever
        ikelifetime=28800s
        lifetime=3600s
        dpddelay=30s
        dpdtimeout=120s
        dpdaction=restart

La oss kort beskrive hver av konfigurasjonsparametrene ovenfor:

  • konfigurasjonsoppsett – definerer den generelle konfigurasjonsinformasjonen for IPSec som gjelder for alle tilkoblinger.
  • charondebug – angir hvor mye Charon-feilsøkingsutdata som skal logges.
  • uniqueids – definerer om en bestemt deltaker-ID skal holdes unik.
  • Conn gateway1-to-gateway2 – brukes til å angi tilkoblingsnavnet.
  • type – definerer tilkoblingstype.
  • Auto – brukes til å deklarere hvordan tilkobling skal håndteres når IPSec startes eller startes på nytt.
  • keyexchange – erklærer hvilken versjon av IKE-protokollen som skal brukes.
  • autentisering – angir hvordan jevnaldrende skal autentisere hverandre.
  • venstre – angir IP-adressen til den venstre deltakerens offentlige nettverksgrensesnitt.
  • leftsubnet – erklærer det private subnettet bak den venstre deltakeren.
  • høyre – angir IP-adressen til rett deltakers offentlige nettverksgrensesnitt.
  • rightsubnet – erklærer det private subnettet bak den venstre deltakeren.
  • ike – brukes til å deklarere en liste over IKE/ISAKMP SA-krypterings-/autentiseringsalgoritmer som skal brukes. Merk at dette kan være en kommadelt liste.
  • esp – spesifiserer en liste over ESP-krypterings-/autentiseringsalgoritmer som skal brukes for tilkoblingen.
  • aggressiv – erklærer om du skal bruke aggressiv eller hovedmodus.
  • keyingtries – angir antall forsøk som bør gjøres for å forhandle en tilkobling.
  • ikelifetime – angir hvor lenge nøkkelkanalen til en tilkobling skal vare før den reforhandles.
  • levetid – angir hvor lenge en bestemt forekomst av en tilkobling skal vare, fra vellykket forhandling til utløp.
  • dpddelay – deklarerer tidsintervallet som R_U_THERE meldinger/INFORMASJONAL utveksling sendes til peer.
  • dpdtimeout – brukes til å deklarere tidsavbruddsintervallet, hvoretter alle tilkoblinger til en peer blir slettet i tilfelle inaktivitet.
  • dpdaction – spesifiserer hvordan du bruker Dead Peer Detection (DPD)-protokollen for å administrere tilkoblingen.

Du kan finne en beskrivelse av alle konfigurasjonsparametere for strongSwan IPsec-delsystemet ved å lese ipsec.conf-man-siden.

man ipsec.conf

Trinn 4: Konfigurere PSK for node-til-node-autentisering

10. Deretter må du generere en sterk PSK som skal brukes av jevnaldrende for autentisering som følger.

head -c 24 /dev/urandom | base64

11. Legg til PSK-en i /etc/strongswan/ipsec.conf-filen på begge sikkerhetsgatewayene.

vi /etc/strongswan/ipsec.secrets

Skriv inn følgende linje i filen.

#Site 1 Gateway
192.168.56.7  192.168.56.6 : PSK "0GE0dIEA0IOSYS2o22wYdicj/lN4WoCL"

#Site 1 Gateway
192.168.56.6  192.168.56.7 : PSK "0GE0dIEA0IOSYS2o22wYdicj/lN4WoCL"

12. Start deretter strongsan-tjenesten og sjekk statusen til tilkoblingene.

systemctl restart strongswan
strongswan status

13. Test om du kan få tilgang til de private undernettene fra en av sikkerhetsgatewayene ved å kjøre en ping-kommando.

ping 10.20.1.1
ping 10.10.1.1

14. Sist men ikke minst, for å lære flere strongswan-kommandoer for å manuelt hente opp/ned tilkoblinger og mer, se strongswans hjelpeside.

strongswan --help

Det er alt for nå! For å dele tankene dine med oss eller stille spørsmål, kontakt oss via tilbakemeldingsskjemaet nedenfor. Og for å lære mer om det nye swanctl-verktøyet og den nye mer fleksible konfigurasjonsstrukturen, se strongSwan-brukerdokumentasjonen.