Sådan oprettes IPsec-baseret VPN med Strongswan på CentOS/RHEL 8


strongSwan er en open-source, multi-platform, moderne og komplet IPsec-baseret VPN-løsning til Linux, der giver fuld support til Internet Key Exchange (både IKEv1 og IKEv2) til at etablere sikkerhedsforeninger (SA) mellem to jævnaldrende. Det er fuldt udstyret, modulært af design og tilbyder snesevis af plugins, der forbedrer kernefunktionaliteten.

Relateret artikel: Sådan oprettes IPsec-baseret VPN med Strongswan på Debian og Ubuntu

I denne artikel lærer du, hvordan du konfigurerer site-to-site IPsec VPN-gateways ved hjælp af strongSwan på CentOS/RHEL 8-servere. Dette gør det muligt for jævnaldrende at godkende hinanden ved hjælp af en stærk præ-delt nøgle (PSK). En site-to-site-opsætning betyder, at hver sikkerhedsgateway har et undernet bag sig.

Glem ikke at bruge dine virkelige IP-adresser under konfigurationerne, mens du følger vejledningen.

Public IP: 192.168.56.7
Private IP: 10.10.1.1/24
Private Subnet: 10.10.1.0/24
Public IP:  192.168.56.6
Private IP: 10.20.1.1/24
Private Subnet: 10.20.1.0/24

Trin 1: Aktivering af Kernel IP-videresendelse i CentOS 8

1. Start med at aktivere kernel IP-videresendingsfunktionalitet i /etc/sysctl.conf-konfigurationsfilen på begge VPN-gateways.

# vi /etc/sysctl.conf

Tilføj disse linjer 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. Efter at have gemt ændringerne i filen, skal du køre følgende kommando for at indlæse de nye kerneparametre i løbetid.

# sysctl -p

3. Opret derefter en permanent statisk rute i filen/etc/sysconfig/network-scripts/route-eth0 på begge sikkerhedsgateways.

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

Tilføj 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. Genstart derefter netværksadministratoren for at anvende de nye ændringer.

# systemctl restart NetworkManager

Trin 2: Installation af strongSwan i CentOS 8

5. Strongswan-pakken findes i EPEL-arkivet. For at installere det skal du aktivere EPEL-arkivet og derefter installere strongwan på begge sikkerhedsgateways.

# dnf install epel-release
# dnf install strongswan

6. Kør følgende kommando for at kontrollere versionen af strongswan installeret på begge gateways.

# strongswan version

7. Derefter skal du starte strongswan-tjenesten og aktivere den til automatisk at starte ved systemstart. Kontroller derefter status på begge sikkerhedsgateways.

# systemctl start strongswan 
# systemctl enable strongswan
# systemctl status strongswan

Bemærk: Den nyeste version af strongswan i CentOS/REHL 8 leveres med support til begge swanctl (et nyt, bærbart kommandolinjeprogram introduceret med strongSwan 5.2.0, der bruges til at konfigurere, kontrollere og overvåge IKE-dæmonen Charon ved hjælp af vici-plugin) og starter (eller ipsec) hjælpeprogram ved hjælp af det forældede slagtilslutnings plugin.

8. Hovedkonfigurationsmappen er/etc/strongswan/som indeholder konfigurationsfiler til begge plugins:

# ls /etc/strongswan/

I denne vejledning bruger vi IPsec-værktøjet, der påberåbes ved hjælp af strongswan-kommandoen og streggrænsefladen. Så vi bruger følgende konfigurationsfiler:

  • /etc/strongswan/ipsec.conf - konfigurationsfil til strongSwan IPsec-undersystemet.
  • /etc/strongswan/ipsec.secrets - hemmelighedsfil.

Trin 3: Konfiguration af sikkerhedsgateways

9. I dette trin skal du konfigurere forbindelsesprofilerne på hver sikkerhedsgateways for hvert websted ved hjælp af /etc/strongswan/ipsec.conf strongswan-konfigurationsfilen.

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

Kopier og indsæt følgende konfiguration 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
# cp /etc/strongswan/ipsec.conf /etc/strongswan/ipsec.conf.orig
# vi /etc/strongswan/ipsec.conf

Kopier og indsæt følgende konfiguration 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

Lad os kort beskrive hver af konfigurationsparametrene ovenfor:

  • konfigurationsopsætning - definerer de generelle konfigurationsoplysninger for IPSec, der gælder for alle forbindelser.
  • charondebug - angiver, hvor meget Charon-fejlretningsoutput der skal logges.
  • uniqueids - definerer, om et bestemt deltager-id skal holdes unikt.
  • conn gateway1-to-gateway2 - bruges til at indstille forbindelsesnavnet.
  • type - definerer forbindelsestype.
  • Auto - bruges til at erklære, hvordan forbindelsen skal håndteres, når IPSec startes eller genstartes.
  • keyexchange - erklærer, at versionen af IKE-protokollen skal bruges.
  • authby - specificerer, hvordan jævnaldrende skal godkende hinanden.
  • venstre - erklærer IP-adressen for den venstre deltagers offentlige netværksgrænseflade.
  • leftsubnet - erklærer det private undernet bag den venstre deltager.
  • højre - erklærer IP-adressen for den rigtige deltagers offentlige netværksgrænseflade.
  • rightsubnet - erklærer det private undernet bag den venstre deltager.
  • ike - bruges til at erklære en liste over IKE/ISAKMP SA krypterings-/godkendelsesalgoritmer, der skal bruges. Bemærk, at dette kan være en komma-adskilt liste.
  • esp - specificerer en liste over ESP-krypterings-/godkendelsesalgoritmer, der skal bruges til forbindelsen.
  • aggressiv - erklærer, om der skal bruges Aggressiv eller Hovedtilstand.
  • keyingtries - erklærer antallet af forsøg, der skal gøres for at forhandle en forbindelse.
  • ikelifetime - specificerer, hvor længe en forbindelseskanal for en forbindelse skal vare, før den genforhandles.
  • levetid - angiver, hvor længe en bestemt forekomst af en forbindelse skal vare, fra vellykket forhandling til udløb.
  • dpddelay - erklærer det tidsinterval, hvormed R_U_THERE-meddelelser/INFORMATIONS-udvekslinger sendes til peer.
  • dpdtimeout - bruges til at erklære timeoutintervallet, hvorefter alle forbindelser til en peer slettes i tilfælde af inaktivitet.
  • dpdaction - specificerer, hvordan du bruger DPD-protokollen (Dead Peer Detection) til at styre forbindelsen.

Du kan finde en beskrivelse af alle konfigurationsparametre til det stærkeSwan IPsec-undersystem ved at læse ipsec.conf man-siden.

# man ipsec.conf

Trin 4: Konfiguration af PSK til peer-to-peer-godkendelse

10. Dernæst skal du generere en stærk PSK, der skal bruges af jævnaldrende til godkendelse som følger.

# head -c 24 /dev/urandom | base64

11. Tilføj PSK i filen /etc/strongswan/ipsec.conf på begge sikkerhedsgateways.

# vi /etc/strongswan/ipsec.secrets

Indtast 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 derefter strongsan-tjenesten og kontroller forbindelsesstatus.

# systemctl restart strongswan
# strongswan status

13. Test om du kan få adgang til de private undernet fra begge sikkerhedsgateways ved at køre en ping-kommando.

# ping 10.20.1.1
# ping 10.10.1.1

14. Sidst, men ikke mindst, for at lære flere strongswan-kommandoer til manuelt at bringe forbindelser op/ned og mere, se Strongswan-hjælpesiden.

# strongswan --help

Det er alt for nu! Hvis du vil dele dine tanker med os eller stille spørgsmål, skal du kontakte os via feedbackformularen nedenfor. Og for at lære mere om det nye swanctl-værktøj og den nye mere fleksible konfigurationsstruktur, se den stærkeSwan brugerdokumentation.