strongSwan is een open-source, cross-platform, volledig uitgeruste en veelgebruikte IPsec-gebaseerde VPN (Virtual Private Network)-implementatie die draait op Linux, FreeBSD, OS X, Windows, Android en iOS. Het is voornamelijk een keying daemon die de Internet Key Exchange-protocollen (IKEv1 en IKEv2) ondersteunt om beveiligingsassociaties (SA) tussen twee peers op te zetten.
Dit artikel beschrijft hoe u site-to-site IPSec VPN-gateways kunt instellen met behulp van strongSwan op Ubuntu– en Debian-servers. Met site-to-site bedoelen we dat elke beveiligingsgateway een sub-netwerk erachter heeft. Bovendien zullen de peers elkaar authenticeren met behulp van een vooraf gedeelde sleutel (PSK).
Testomgeving
Vergeet niet de volgende IP-adressen te vervangen door uw werkelijke IP-adressen 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: Kernel-pakketdoorsturing inschakelen
1.Ten eerste moet u de kernel configureren om pakketdoorsturing in te schakelen door de juiste systeemvariabelen toe te voegen in het /etc/sysctl.conf-configuratiebestand op beide beveiligingsgateways.
$ sudo vim /etc/sysctl.conf
Zoek naar de volgende regels en haal de commentaartekens weg en stel hun waarden in zoals getoond (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 het volgende commando uit te voeren.
$ sudo sysctl -p

3. Als je een UFW firewall service hebt ingeschakeld, moet je de volgende regels toevoegen aan het configuratiebestand /etc/ufw/before.rules vlak voor de filterregels in de 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. Nadat firewallregels zijn toegevoegd, pas je de nieuwe wijzigingen toe door UFW te herstarten zoals getoond.
$ sudo ufw disable $ sudo ufw enable
Stap 2: strongSwan installeren in Debian en Ubuntu
5. Werk je pakketcache bij op beide beveiligingsgateways en installeer het 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 strongswan service en schakelt het deze in om automatisch te starten bij het opstarten van het systeem. Je kunt de status controleren en controleren of deze is ingeschakeld met het volgende commando.
$ sudo systemctl status strongswan.service $ sudo systemctl is-enabled strongswan.service
Stap 3: Beveiligingsgateways configureren
7. Vervolgens moet je 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:
- configuratie instellen – specificeert algemene configuratie-informatie voor IPSec die van toepassing is op alle verbindingen.
- charondebug – definieert hoeveel Charon-debugginguitvoer moet worden gelogd.
- uniqueids – specificeert of een bepaalde deelnemers-ID uniek moet blijven.
- conn prodgateway-to-devgateway – definieert de verbindingsnaam.
- type – definieert het verbindingsstype.
- auto – hoe de verbinding moet worden afgehandeld wanneer IPSec wordt gestart of opnieuw wordt gestart.
- keyexchange – definieert de versie van het IKE-protocol om te gebruiken.
- authby – definieert hoe peers elkaar moeten authenticeren.
- left – definieert het IP-adres van de openbare netwerkinterface van de linkerdeelnemer.
- leftsubnet – geeft het privé-subnet achter de linkerdeelnemer aan.
- right – specificeert het IP-adres van de openbare netwerkinterface van de rechterdeelnemer.
- rightsubnet – geeft het privé-subnet achter de linkerdeelnemer aan.
- ike – definieert een lijst van IKE/ISAKMP SA-encryptie/authenticatiealgoritmen die moeten worden gebruikt. U kunt een door komma’s gescheiden lijst toevoegen.
- esp – definieert een lijst van ESP-encryptie/authenticatiealgoritmen die moeten worden gebruikt voor de verbinding. U kunt een door komma’s gescheiden lijst toevoegen.
- agressief – geeft aan of Agressieve of Hoofdmodus moet worden gebruikt.
- keyingtries – geeft aan hoeveel pogingen moeten worden ondernomen om een verbinding tot stand te brengen.
- ikelifetime – geeft aan hoelang het keyingkanaal van een verbinding moet duren voordat het opnieuw wordt onderhandeld.
- levensduur – definieert hoelang een bepaald exemplaar van een verbinding moet duren, van succesvolle onderhandeling tot vervaldatum.
- dpddelay – specificeert het tijdsinterval waarmee R_U_THERE-berichten/INFORMATIE-uitwisselingen naar de peer worden verzonden.
- dpdtimeout – specificeert het time-outinterval, waarna alle verbindingen met een peer worden verwijderd bij 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, leest u de ipsec.conf man-pagina door het commando uit te voeren.
$ man ipsec.conf
Stap 4: Configuratie van PSK voor peer-to-peer authenticatie
8. Nadat beide beveiligingsgateways zijn geconfigureerd, genereert u een veilige PSK die door de peers moet worden gebruikt met het volgende commando.
$ head -c 24 /dev/urandom | base64

9. Voeg vervolgens de PSK toe in het /etc/ipsec.secrets bestand 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. Herstart het IPSec programma en controleer de status ervan om verbindingen te bekijken.
$ sudo ipsec restart $ sudo ipsec status

11. Verifieer ten slotte dat u toegang heeft tot de privé subnets vanaf beide beveiligingsgateways door een ping commando uit te voeren.
$ ping 192.168.0.101 $ ping 10.0.2.15

12. Bovendien kunt u IPSec stoppen en starten zoals getoond.
$ sudo ipsec stop $ sudo ipsec start
13. Om meer te weten te komen over IPSec commando’s om verbindingen handmatig tot stand te brengen en meer, zie de IPSec help pagina.
$ ipsec --help
Dat is alles! In dit artikel hebben we beschreven hoe u een site-to-site IPSec VPN opzet met strongSwan op Ubuntu en Debian servers, waarbij beide beveiligingsgateways geconfigureerd waren om elkaar te authenticeren met behulp van een PSK. Als u vragen of gedachten heeft om te delen, neem dan contact met ons op via het feedbackformulier hieronder.
Source:
https://www.tecmint.com/setup-ipsec-vpn-with-strongswan-on-debian-ubuntu/