Zoeken op website

Hoe u op IPsec gebaseerde VPN instelt met Strongswan op Debian en Ubuntu


strongSwan is een open-source, platformonafhankelijke, complete en veelgebruikte op IPsec gebaseerde VPN-implementatie (Virtual Private Network) die draait op Linux, FreeBSD, OS X, Windows, Android en iOS. Het is in de eerste plaats een sleuteldaemon die de Internet Key Exchange-protocollen (IKEv1 en IKEv2) ondersteunt om beveiligingskoppelingen tot stand te brengen (SA sterk>) tussen twee gelijken.

In dit artikel wordt beschreven hoe u site-to-site IPSec VPN-gateways instelt met strong>strongSwan op Ubuntu- en Debian-servers . Met site-to-site bedoelen we dat elke beveiligingsgateway een subnet achter zich heeft. Bovendien zullen de peers elkaar authenticeren met behulp van een vooraf gedeelde sleutel (PSK).

Omgeving testen

Vergeet niet om de volgende IP's te vervangen door uw echte IP's om uw omgeving te configureren.

Site 1-gateway (tecmint-devgateway)

OS 1: Debian or Ubuntu
Public IP: 10.20.20.1
Private IP: 192.168.0.101/24
Private Subnet: 192.168.0.0/24

Site 2-gateway (tecmint-prodgateway)

OS 2: Debian or Ubuntu
Public IP:  10.20.20.3
Private IP: 10.0.2.15/24
Private Subnet: 10.0.2.0/24

Stap 1: Kernelpakket doorsturen inschakelen

1. Eerst moet je de kernel configureren om het doorsturen van pakketten mogelijk te maken door de juiste systeemvariabelen toe te voegen in het configuratiebestand /etc/sysctl.conf op beide beveiligingsgateways.

sudo vim /etc/sysctl.conf

Zoek naar de volgende regels, verwijder de opmerkingen en stel hun waarden in zoals weergegeven (lees de opmerkingen in het bestand voor meer informatie).

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. Laad vervolgens de nieuwe instellingen door de volgende opdracht uit te voeren.

sudo sysctl -p

3. Als u een UFW-firewallservice heeft ingeschakeld, moet u de volgende regels toevoegen aan het /etc/ufw/before.rules configuratiebestand net vóór de filterregels in beide beveiligingsgateways.

Site 1-gateway (tecmint-devgateway)

*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.0.2.0/24  -d 192.168.0.0/24 -j MASQUERADE
COMMIT

Site 2-gateway (tecmint-prodgateway)

*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING  -s 192.168.0.0/24 -d 10.0.2.0/24 -j MASQUERADE
COMMIT

4. Zodra de firewallregels zijn toegevoegd, pas dan de nieuwe wijzigingen toe door UFW opnieuw te starten, zoals weergegeven.

sudo ufw disable 
sudo ufw enable

Stap 2: StrongSwan installeren in Debian en Ubuntu

5. Update uw pakketcache op beide beveiligingsgateways en installeer het strong>strongswan pakket met behulp van de APT-pakketbeheerder.

sudo apt update
sudo apt install strongswan 

6. Zodra de installatie is voltooid, start het installatiescript de strong>strongswan service en zorgt ervoor dat deze automatisch start bij het opstarten van het systeem. U kunt de status ervan controleren en of deze is ingeschakeld met behulp van de volgende opdracht.

sudo systemctl status strongswan.service
sudo systemctl is-enabled strongswan.service

Stap 3: Beveiligingsgateways configureren

7. Vervolgens moet u de beveiligingsgateways configureren met behulp van het configuratiebestand /etc/ipsec.conf.

Site 1-gateway (tecmint-devgateway)

sudo cp /etc/ipsec.conf /etc/ipsec.conf.orig
sudo nano /etc/ipsec.conf 

Kopieer en plak de volgende configuratie in het bestand.

config setup
        charondebug="all"
        uniqueids=yes
conn devgateway-to-prodgateway
        type=tunnel
        auto=start
        keyexchange=ikev2
        authby=secret
        left=10.20.20.1
        leftsubnet=192.168.0.101/24
        right=10.20.20.3
        rightsubnet=10.0.2.15/24
        ike=aes256-sha1-modp1024!
        esp=aes256-sha1!
        aggressive=no
        keyingtries=%forever
        ikelifetime=28800s
        lifetime=3600s
        dpddelay=30s
        dpdtimeout=120s
        dpdaction=restart

Site 2-gateway (tecmint-prodgateway)

sudo cp /etc/ipsec.conf /etc/ipsec.conf.orig
sudo nano /etc/ipsec.conf 

Kopieer en plak de volgende configuratie in het bestand.

config setup
        charondebug="all"
        uniqueids=yes
conn prodgateway-to-devgateway
        type=tunnel
        auto=start
        keyexchange=ikev2
        authby=secret
        left=10.20.20.3
        leftsubnet=10.0.2.15/24
        right=10.20.20.1
        rightsubnet=192.168.0.101/24 
        ike=aes256-sha1-modp1024!
        esp=aes256-sha1!
        aggressive=no
        keyingtries=%forever
        ikelifetime=28800s
        lifetime=3600s
        dpddelay=30s
        dpdtimeout=120s
        dpdaction=restart

Hier is de betekenis van elke configuratieparameter:

  • config setup – specificeert algemene configuratie-informatie voor IPSec die van toepassing is op alle verbindingen.
  • charondebug – definieert hoeveel Charon-foutopsporingsuitvoer moet worden geregistreerd.
  • uniqueids – specificeert of een bepaalde deelnemer-ID uniek moet blijven.
  • conn prodgateway-to-devgateway – definieert de verbindingsnaam.
  • type – definieert het verbindingstype.
  • auto – hoe om te gaan met de verbinding wanneer IPSec wordt gestart of opnieuw wordt opgestart.
  • sleuteluitwisseling – definieert de versie van het IKE-protocol dat moet worden gebruikt.
  • authby – definieert hoe peers elkaar moeten authenticeren.
  • links – definieert het IP-adres van de openbare netwerkinterface van de linkerdeelnemer.
  • leftsubnet – vermeldt het privé-subnet achter de linkerdeelnemer.
  • rechts – specificeert het IP-adres van de openbare netwerkinterface van de juiste deelnemer.
  • rightsubnet – vermeldt het privé-subnet achter de linkerdeelnemer.
  • ike – definieert een lijst met IKE/ISAKMP SA-coderings-/authenticatie-algoritmen die moeten worden gebruikt. U kunt een door komma's gescheiden lijst toevoegen.
  • esp – definieert een lijst met ESP-codering/authenticatie-algoritmen die voor de verbinding moeten worden gebruikt. U kunt een door komma's gescheiden lijst toevoegen.
  • 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 – geeft aan hoe lang het sleutelkanaal van een verbinding moet duren voordat er opnieuw over wordt onderhandeld.
  • levensduur – definieert hoe lang een bepaald exemplaar van een verbinding moet duren, vanaf succesvolle onderhandeling tot het verlopen ervan.
  • dpddelay – specificeert het tijdsinterval waarmee R_U_THERE berichten/INFORMATIONAL uitwisselingen naar de peer worden verzonden.
  • dpdtimeout – specificeert het time-outinterval, waarna alle verbindingen met een peer worden verwijderd in geval van inactiviteit.
  • dpdaction – definieert hoe het Dead Peer Detection (DPD) protocol moet worden gebruikt om de verbinding te beheren.

Voor meer informatie over de bovenstaande configuratieparameters kunt u de manpagina ipsec.conf lezen door de opdracht uit te voeren.

man ipsec.conf

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

8. Nadat u beide beveiligingsgateways heeft geconfigureerd, genereert u een veilige PSK die door de peers kan worden gebruikt met behulp van de volgende opdracht.

head -c 24 /dev/urandom | base64

9. Voeg vervolgens de PSK toe aan het bestand /etc/ipsec.secrets op beide gateways.

sudo vim /etc/ipsec.secrets

Kopieer en plak de volgende regel.

------- Site 1 Gateway (tecmint-devgateway) ------- 

10.20.20.1 10.20.20.3 : PSK "qLGLTVQOfqvGLsWP75FEtLGtwN3Hu0ku6C5HItKo6ac="

------- Site 2 Gateway (tecmint-prodgateway) -------

10.20.20.3  10.20.20.1 : PSK "qLGLTVQOfqvGLsWP75FEtLGtwN3Hu0ku6C5HItKo6ac="

10. Start het IPSec-programma opnieuw en controleer de status ervan om de verbindingen te bekijken.

sudo ipsec restart
sudo ipsec status

11. Controleer ten slotte of u vanaf beide beveiligingsgateways toegang hebt tot de privé-subnetten door een ping-opdracht uit te voeren.

ping 192.168.0.101
ping 10.0.2.15

12. Bovendien kunt u IPSec stoppen en starten zoals weergegeven.

sudo ipsec stop
sudo ipsec start

13. Voor meer informatie over IPSec-opdrachten om handmatig verbindingen weer te geven en meer, raadpleegt u de IPSec-helppagina.

ipsec --help

Dat is alles! In dit artikel hebben we beschreven hoe u een site-to-site IPSec VPN kunt instellen met behulp van strongSwan op Ubuntu- en Debian-servers, waarbij beide beveiligingsgateways zijn geconfigureerd om elkaar te authenticeren met behulp van een PSK. Als u vragen of gedachten heeft, kunt u ons bereiken via het onderstaande feedbackformulier.