Wéi Dir IPsec-baséiert VPN mat Strongswan op Debian an Ubuntu opstellt


strongSwan ass eng Open Source, Cross-Plattform, voll Feature a wäit benotzt IPsec-baséiert VPN (Virtual Private Network) Implementatioun déi op Linux, FreeBSD, OS X, Windows, Android an iOS leeft. Et ass haaptsächlech e Schlësseldaemon deen d'Internet Key Exchange Protokoller (IKEv1 an IKEv2) ënnerstëtzt fir Sécherheetsassociatiounen (SA) tëscht zwee Peer opzebauen.

Dësen Artikel beschreift wéi Dir e Site-to-Site IPSec VPN Gateways opbaut mat strongSwan op Ubuntu an Debian Serveren. Mat Site-to-Site menge mir datt all Sécherheetspaart en Ënner-Netz hannert sech huet. Donieft authentifizéieren d'Peer géigesäiteg mat engem pre-shared Key (PSK).

Denkt drun déi folgend IPen duerch Är real-Welt IPs ze ersetzen fir Äert Ëmfeld ze konfiguréieren.

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

Schrëtt 1: Kernel Packet Forwarding aktivéieren

1. Als éischt musst Dir de Kernel konfiguréieren fir d'Packet Forwarding z'aktivéieren andeems Dir déi entspriechend Systemvariablen an /etc/sysctl.conf Konfiguratiounsdatei op béide Sécherheetspaarten addéiert.

$ sudo vim /etc/sysctl.conf

Kuckt no de folgende Zeilen an decommentéiert se a setzt hir Wäerter wéi gewisen (liest d'Kommentaren an der Datei fir méi Informatioun).

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. Als nächst lued déi nei Astellungen andeems Dir de folgende Kommando ausféiert.

$ sudo sysctl -p

3. Wann Dir en UFW Firewall Service aktivéiert hutt, musst Dir déi folgend Regelen an d'Konfiguratiounsdatei /etc/ufw/before.rules just virun de Filterregelen an entweder Sécherheetspaarten addéieren.

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. Eemol Firewall Regelen dobäi goufen, dann gëlle déi nei Ännerungen vun Restart UFW wéi gewisen.

$ sudo ufw disable 
$ sudo ufw enable

Schrëtt 2: Installéiere vun strongSwan an Debian an Ubuntu

5. Update Äre Package Cache op béide Sécherheetspaarten an installéiert de Strongswan Package mat dem APT Package Manager.

$ sudo apt update
$ sudo apt install strongswan 

6. Wann d'Installatioun fäerdeg ass, fänkt d'Installateur Skript de Strongswan Service un an aktivéiert et automatesch beim Systemboot ze starten. Dir kënnt säi Status kontrolléieren an ob et aktivéiert ass mat dem folgenden Kommando.

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

Schrëtt 3: Sécherheetsgateways konfiguréieren

7. Als nächst musst Dir d'Sécherheetsgateways mat der /etc/ipsec.conf Konfiguratiounsdatei konfiguréieren.

Site 1 Gateway (tecmint-devgateway)

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

Kopéiert a paste déi folgend Konfiguratioun an der Datei.

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 cp /etc/ipsec.conf 

Kopéiert a paste déi folgend Konfiguratioun an der Datei.

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

Hei ass d'Bedeitung vun all Konfiguratiounsparameter:

  • Configuratiounskonfiguratioun - spezifizéiert allgemeng Konfiguratiounsinformatioun fir IPSec déi op all Verbindungen gëlt.
  • charondebug - definéiert wéi vill Charon Debugging Output soll protokolléiert ginn.
  • uniqueids - spezifizéiert ob eng bestëmmte Participant ID eenzegaarteg gehale soll ginn.
  • conn prodgateway-to-devgateway - definéiert den Numm vun der Verbindung.
  • Typ - definéiert Verbindungstyp.
  • auto - wéi een d'Verbindung behandelt wann IPSec gestart oder nei gestart gëtt.
  • Keyexchange - definéiert d'Versioun vum IKE Protokoll fir ze benotzen.
  • authby - definéiert wéi Peer géigesäiteg authentifizéiere sollen.
  • lénks - definéiert d'IP Adress vun der ëffentlecher Netzwierk-Interface vum lénksen Participant.
  • leftsubnet - seet de private Subnet hannert dem lénksen Participant.
  • Recht - spezifizéiert d'IP Adress vun der ëffentlecher Netzwierk Interface vum richtege Participant.
  • rightsubnet - seet de private Subnet hannert dem lénksen Participant.
  • ike - definéiert eng Lëscht vun IKE/ISAKMP SA Verschlësselung/Authentifikatioun Algorithmen fir ze benotzen. Dir kënnt eng Komma-getrennte Lëscht derbäisetzen.
  • esp - definéiert eng Lëscht vun ESP Verschlësselung/Authentifikatioun Algorithmen fir d'Verbindung ze benotzen. Dir kënnt eng Komma-getrennte Lëscht derbäisetzen.
  • aggressiv - seet, ob den Aggressive oder den Haaptmodus benotzt gëtt.
  • Keyingtries - seet d'Zuel vun de Versuche fest, déi solle gemaach ginn fir eng Verbindung ze verhandelen.
  • ikelifetime - seet wéi laang de Schlësselkanal vun enger Verbindung sollt daueren ier se nei verhandelt ginn.
  • Liewensdauer - definéiert wéi laang eng bestëmmten Instanz vun enger Verbindung soll daueren, vun der erfollegräicher Verhandlunge bis zum Oflaf.
  • dpddelay - spezifizéiert den Zäitintervall mat deem R_U_THERE Messagen/INFORMATIONAL Austausch un de Peer geschéckt ginn.
  • dpdtimeout – spezifizéiert den Timeout-Intervall, no deem all Verbindunge mat engem Peer am Fall vun Inaktivitéit geläscht ginn.
  • dpdaction - definéiert wéi Dir den Dead Peer Detection (DPD) Protokoll benotzt fir d'Verbindung ze managen.

Fir méi Informatiounen iwwer déi uewe genannte Konfiguratiounsparameter, liest d'ipsec.conf Man Säit andeems Dir de Kommando ausféiert.

$ man ipsec.conf

Schrëtt 4: PSK fir Peer-to-Peer Authentifikatioun konfiguréieren

8. Nodeems Dir béid Sécherheetspaarten konfiguréiert hutt, generéiert e séchere PSK fir vun de Kollegen ze benotzen déi folgend Kommando benotzen.

$ head -c 24 /dev/urandom | base64

9. Als nächst füügt de PSK an der /etc/ipsec.secrets Datei op béide Paarte.

$ sudo vim /etc/ipsec.secrets

Kopéiert a paste déi folgend Linn.

------- 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. Restart den IPSec Programm a kontrolléiert säi Status fir Verbindungen ze gesinn.

$ sudo ipsec restart
$ sudo ipsec status

11. Endlech, z'iwwerpréiwen datt Dir op de privaten Ënnernetzer vun entweder Sécherheetspaarten zougräifen kënnt andeems Dir e Ping Kommando ausféiert.

$ ping 192.168.0.101
$ ping 10.0.2.15

12. Nieft, kënnt Dir ophalen an ufänken IPSec wéi gewisen.

$ sudo ipsec stop
$ sudo ipsec start

13. Fir méi iwwer IPSec Kommandoen ze wëssen fir manuell Verbindungen a méi ze bréngen, kuckt d'IPSec Hëllef Säit.

$ ipsec --help

Dat ass alles! An dësem Artikel hu mir beschriwwen wéi Dir e Site-to-Site IPSec VPN opbaut mat strongSwan op Ubuntu an Debian Serveren, wou béid Sécherheetspaarten konfiguréiert waren fir sech mat engem PSK ze authentifizéieren. Wann Dir Froen oder Gedanken hutt fir ze deelen, kontaktéiert eis iwwer de Feedbackformular hei ënnen.