Kako nastaviti VPN na osnovi IPsec s storitvijo Strongswan v Debianu in Ubuntuju


strongSwan je odprtokodna, večplastna, polno opremljena in široko uporabljena izvedba VPN (Virtual Private Network) na osnovi IPsec, ki deluje v Linuxu, FreeBSD, OS X, Windows, Android in iOS. To je v glavnem demon ključa, ki podpira protokole internetne izmenjave ključev (IKEv1 in IKEv2) za vzpostavitev varnostnih združenj (SA) med dvema enakovrednima stranicama.

V tem članku je opisano, kako nastaviti strežnike IPSec VPN od mesta do mesta z uporabo strongSwan na strežnikih Ubuntu in Debian. Pod lokacijo na spletno mesto mislimo, da ima vsak varnostni prehod podmrežo za seboj. Poleg tega se bodo vrstniki med seboj overjali s ključem PSK.

Ne pozabite zamenjati naslednjih naslovov IP z vašimi resničnimi naslovi za konfiguriranje okolja.

Prehod mesta 1 (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

Prehod mesta 2 (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

1. korak: Omogočanje posredovanja paketov jedra

1. Najprej morate konfigurirati jedro, da omogoči posredovanje paketov, tako da v konfiguracijsko datoteko /etc/sysctl.conf na obeh varnostnih prehodih dodate ustrezne sistemske spremenljivke.

$ sudo vim /etc/sysctl.conf

Poiščite naslednje vrstice in jih razkomentirajte ter nastavite njihove vrednosti, kot je prikazano (za več informacij preberite komentarje v datoteki).

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. Nato naložite nove nastavitve tako, da zaženete naslednji ukaz.

$ sudo sysctl -p

3. Če imate omogočeno storitev požarnega zidu UFW, morate v konfiguracijsko datoteko /etc/ufw/before.rules tik pred pravili filtriranja v obeh varnostnih prehodih dodati naslednja pravila.

Prehod mesta 1 (tecmint-devgateway)

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

Prehod mesta 2 (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. Ko so dodana pravila požarnega zidu, uporabite nove spremembe tako, da znova zaženete UFW, kot je prikazano.

$ sudo ufw disable 
$ sudo ufw enable

2. korak: Namestitev strongSwan v Debian in Ubuntu

5. Posodobite predpomnilnik paketov na obeh varnostnih prehodih in namestite paket strongswan z upraviteljem paketov APT.

$ sudo apt update
$ sudo apt install strongswan 

6. Ko je namestitev končana, namestitveni skript zažene storitev strongswan in omogoči samodejni zagon ob zagonu sistema. Z naslednjim ukazom lahko preverite njegovo stanje in ali je omogočena.

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

3. korak: Konfiguriranje varnostnih prehodov

7. Nato morate konfigurirati varnostne prehode s konfiguracijsko datoteko /etc/ipsec.conf.

Prehod mesta 1 (tecmint-devgateway)

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

Kopirajte in prilepite naslednjo konfiguracijo v datoteko.

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

Prehod mesta 2 (tecmint-prodgateway)

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

Kopirajte in prilepite naslednjo konfiguracijo v datoteko.

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

Tukaj je pomen vsakega konfiguracijskega parametra:

  • nastavitev konfiguracije - določa splošne informacije o konfiguraciji za IPSec, ki veljajo za vse povezave.
  • charondebug - določa, koliko izhodnih podatkov za odpravljanje napak Charona mora biti zabeleženih.
  • uniqueids - določa, ali naj določen ID udeleženca ostane edinstven.
  • conn prodgateway-to-devgateway - definira ime povezave.
  • vrsta - določa vrsto povezave.
  • samodejno - kako ravnati s povezavo, ko se IPSec zažene ali znova zažene.
  • keyexchange - določa različico protokola IKE, ki jo je treba uporabiti.
  • authby - določa, kako naj se vrstniki preverjajo pristnost drug drugega.
  • levo - določa naslov IP vmesnika javnega omrežja levega udeleženca.
  • leftsubnet - navaja zasebno podomrežje za levim udeležencem.
  • desno - določa naslov IP vmesnika javnega omrežja desnega udeleženca.
  • rightsubnet - navaja zasebno podomrežje za levim udeležencem.
  • ike - definira seznam algoritmov za šifriranje/preverjanje pristnosti IKE/ISAKMP SA, ki jih je treba uporabiti. Dodate lahko seznam, ločen z vejicami.
  • esp - definira seznam algoritmov za šifriranje/preverjanje pristnosti ESP, ki se uporabljajo za povezavo. Dodate lahko seznam, ločen z vejicami.
  • agresiven - določa, ali naj se uporabi agresivni ali glavni način.
  • poskusi ključa - navaja število poskusov pogajanj o povezavi.
  • ikelifetime - določa, kako dolgo naj traja kanal za vnos povezave pred ponovnimi pogajanji.
  • življenjska doba - določa, kako dolgo naj traja določen primerek povezave, od uspešnega pogajanja do izteka.
  • dpddelay - določa časovni interval, s katerim se sporočila R_U_THERE/INFORMACIJSKE izmenjave pošljejo enakovredni osebi.
  • dpdtimeout - določa interval zakasnitve, po katerem se v primeru neaktivnosti izbrišejo vse povezave z enakovrednim računalnikom.
  • dpdaction - določa, kako uporabiti protokol za zaznavanje mrtvih (DPD) za upravljanje povezave.

Če želite več informacij o zgornjih konfiguracijskih parametrih, preberite man stran ipsec.conf z zagonom ukaza.

$ man ipsec.conf

4. korak: Konfiguriranje PSK za avtentifikacijo peer-to-peer

8. Po konfiguraciji obeh varnostnih prehodov z naslednjim ukazom ustvarite varen PSK, ki ga bodo uporabljali vrstniki.

$ head -c 24 /dev/urandom | base64

9. Nato dodajte PSK v datoteko /etc/ipsec.secrets na obeh prehodih.

$ sudo vim /etc/ipsec.secrets

Kopirajte in prilepite naslednjo vrstico.

------- 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. Znova zaženite program IPSec in preverite njegovo stanje, da si ogledate povezave.

$ sudo ipsec restart
$ sudo ipsec status

11. Na koncu preverite, ali lahko dostopate do zasebnih podomrežij iz katerega koli varnostnega prehoda z zagonom ukaza ping.

$ ping 192.168.0.101
$ ping 10.0.2.15

12. Poleg tega lahko IPSec ustavite in zaženete, kot je prikazano.

$ sudo ipsec stop
$ sudo ipsec start

13. Če želite izvedeti več o ukazih IPSec za ročno vzpostavljanje povezav in še več, glejte stran s pomočjo za IPSec.

$ ipsec --help

To je vse! V tem članku smo opisali, kako nastaviti IPSec VPN od mesta do mesta z uporabo strongSwan na strežnikih Ubuntu in Debian, kjer sta bila oba varnostna prehoda konfigurirana za medsebojno overjanje z uporabo PSK. Če imate kakršna koli vprašanja ali pomisleke, nas pokličite prek spodnjega obrazca za povratne informacije.