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.