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.