Zoeken op website

Hoe u op IPsec gebaseerde VPN instelt met Strongswan op CentOS/RHEL 8


strongSwan is een open-source, multi-platform, moderne en complete IPsec-gebaseerde VPN-oplossing voor Linux die volledige ondersteuning biedt voor Internet Key Exchange (zowel IKEv1 als IKEv2) om beveiligingsassociaties (SA) tussen twee peers tot stand te brengen. Het is volledig uitgerust, modulair van opzet en biedt tientallen plug-ins die de kernfunctionaliteit verbeteren.

Gerelateerd artikel: Hoe u een op IPsec gebaseerde VPN kunt instellen met Strongswan op Debian en Ubuntu

In dit artikel leert u hoe u site-to-site IPsec VPN-gateways instelt met behulp van strongSwan op CentOS/RHEL 8-servers. Hierdoor kunnen peers elkaar authenticeren met behulp van een sterke, vooraf gedeelde sleutel (PSK). Een site-to-site-opstelling betekent dat elke beveiligingsgateway een subnet achter zich heeft.

Omgeving testen

Vergeet niet uw echte IP-adressen te gebruiken tijdens de configuraties terwijl u de gids volgt.

Site 1-gateway
Public IP: 192.168.56.7
Private IP: 10.10.1.1/24
Private Subnet: 10.10.1.0/24
Locatie 2-gateway
Public IP:  192.168.56.6
Private IP: 10.20.1.1/24
Private Subnet: 10.20.1.0/24

Stap 1: Kernel IP Forwarding inschakelen in CentOS 8

1. Begin met het inschakelen van de kernel-IP-doorstuurfunctionaliteit in het /etc/sysctl.conf configuratiebestand op beide VPN-gateways.

vi /etc/sysctl.conf

Voeg deze regels toe aan het bestand.

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. Nadat u de wijzigingen in het bestand hebt opgeslagen, voert u de volgende opdracht uit om de nieuwe kernelparameters tijdens runtime te laden.

sysctl -p

3. Maak vervolgens een permanente statische route in het bestand /etc/sysconfig/network-scripts/route-eth0 op beide beveiligingsgateways.

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

Voeg de volgende regel toe aan het bestand.

#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 vervolgens de netwerkbeheerder opnieuw op om de nieuwe wijzigingen toe te passen.

systemctl restart NetworkManager

Stap 2: StrongSwan installeren in CentOS 8

5. Het strongswan pakket wordt geleverd in de EPEL repository. Om het te installeren, moet u de EPEL-repository inschakelen en vervolgens strongwan op beide beveiligingsgateways installeren.

dnf install epel-release
dnf install strongswan

6. Om te controleren welke versie van strongswan op beide gateways is geïnstalleerd, voert u de volgende opdracht uit.

strongswan version

7. Start vervolgens de strongswan service en schakel deze in om automatisch te starten bij het opstarten van het systeem. Controleer vervolgens de status op beide beveiligingsgateways.

systemctl start strongswan 
systemctl enable strongswan
systemctl status strongswan

Opmerking: de nieuwste versie van strong>strongswan in CentOS/REHL 8 wordt geleverd met ondersteuning voor zowel swanctl (een nieuw, draagbaar opdrachtregelhulpprogramma geïntroduceerd in strongSwan 5.2.0, gebruikt om de IKE-daemon Charon te configureren, besturen en monitoren met behulp van de vici plug-in) en starter (of ipsec) hulpprogramma met behulp van de verouderde stroke-plug-in.

8. De hoofdconfiguratiemap is /etc/strongswan/, die configuratiebestanden voor beide plug-ins bevat:

ls /etc/strongswan/

Voor deze handleiding gebruiken we het IPsec-hulpprogramma dat wordt aangeroepen met het strong>strongswan commando en de stroke-interface. We zullen dus de volgende configuratiebestanden gebruiken:

  • /etc/strongswan/ipsec.conf – configuratiebestand voor het strongSwan IPsec-subsysteem.
  • /etc/strongswan/ipsec.secrets – geheimenbestand.

Stap 3: Beveiligingsgateways configureren

9. In deze stap moet u de verbindingsprofielen op elke beveiligingsgateway voor elke site configureren met behulp van het /etc/strongswan/ipsec.conf strongswan-configuratiebestand.

Site 1-verbindingsprofiel configureren

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

Kopieer en plak de volgende configuratie in het bestand.

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

Site 2-verbindingsprofiel configureren

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

Kopieer en plak de volgende configuratie in het bestand:

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

Laten we elk van de bovenstaande configuratieparameters kort beschrijven:

  • config setup – definieert de algemene configuratie-informatie voor IPSec die van toepassing is op alle verbindingen.
  • charondebug – specificeert hoeveel Charon-foutopsporingsuitvoer moet worden geregistreerd.
  • uniqueids – bepaalt of een bepaalde deelnemer-ID uniek moet blijven.
  • conn gateway1-to-gateway2 – gebruikt om de verbindingsnaam in te stellen.
  • type – definieert het verbindingstype.
  • Auto – wordt gebruikt om aan te geven hoe de verbinding moet worden afgehandeld wanneer IPSec wordt gestart of opnieuw wordt opgestart.
  • sleuteluitwisseling – geeft aan welke versie van het IKE-protocol moet worden gebruikt.
  • authby – specificeert hoe peers elkaar moeten authenticeren.
  • links – declareert het IP-adres van de openbare netwerkinterface van de linkerdeelnemer.
  • leftsubnet – declareert het privé-subnet achter de linkerdeelnemer.
  • rechts – declareert het IP-adres van de openbare netwerkinterface van de juiste deelnemer.
  • rightsubnet – declareert het privé-subnet achter de linkerdeelnemer.
  • ike – wordt gebruikt om een lijst met te gebruiken IKE/ISAKMP SA-coderings-/authenticatie-algoritmen aan te geven. Houd er rekening mee dat dit een door komma's gescheiden lijst kan zijn.
  • esp – specificeert een lijst met ESP-coderings-/authenticatie-algoritmen die voor de verbinding moeten worden gebruikt.
  • agressief – geeft aan of de agressieve of hoofdmodus moet worden gebruikt.
  • keyingtries – geeft het aantal pogingen aan dat moet worden gedaan om een verbinding tot stand te brengen.
  • ikelifetime – specificeert hoe lang het sleutelkanaal van een verbinding moet duren voordat er opnieuw onderhandeld wordt.
  • levensduur – specificeert hoe lang een bepaald exemplaar van een verbinding moet duren, vanaf succesvolle onderhandeling tot het verlopen ervan.
  • dpddelay – declareert het tijdsinterval waarmee R_U_THERE berichten/INFORMATIONAL uitwisselingen naar de peer worden verzonden.
  • dpdtimeout – gebruikt om het time-outinterval aan te geven, waarna alle verbindingen met een peer worden verwijderd in geval van inactiviteit.
  • dpdaction – specificeert hoe het Dead Peer Detection (DPD) protocol moet worden gebruikt om de verbinding te beheren.

U kunt een beschrijving van alle configuratieparameters voor het strongSwan IPsec-subsysteem vinden door de manpagina ipsec.conf te lezen.

man ipsec.conf

Stap 4: PSK configureren voor peer-to-peer-authenticatie

10. Vervolgens moet u als volgt een sterke PSK genereren die door de peers voor authenticatie kan worden gebruikt.

head -c 24 /dev/urandom | base64

11. Voeg de PSK toe aan het bestand /etc/strongswan/ipsec.conf op beide beveiligingsgateways.

vi /etc/strongswan/ipsec.secrets

Voer de volgende regel in het bestand in.

#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 vervolgens de strong>strongsan service en controleer de status van verbindingen.

systemctl restart strongswan
strongswan status

13. Test of u vanaf beide beveiligingsgateways toegang hebt tot de privé-subnetten door een ping-opdracht uit te voeren.

ping 10.20.1.1
ping 10.10.1.1

14. Als laatste, maar daarom niet minder belangrijk, kun je de strongswan-helppagina raadplegen voor meer strongswan-opdrachten om handmatig verbindingen omhoog/omlaag te brengen en meer.

strongswan --help

Dat is het voor nu! Als u uw mening met ons wilt delen of vragen wilt stellen, kunt u ons bereiken via het onderstaande feedbackformulier. En voor meer informatie over het nieuwe hulpprogramma Swanctl en de nieuwe, flexibelere configuratiestructuur, raadpleegt u de strongSwan-gebruikersdocumentatie.