Kako postaviti VPN temeljen na IPsec-u uz Strongswan na Debianu i Ubuntuu
strongSwan je open-source, cross-platforma, puna značajki i naširoko korištena IPsec-based VPN (Virtual Private Network) implementacija koja radi na Linux, FreeBSD, OS X, Windows, Android i iOS. To je prvenstveno demon za ključeve koji podržava protokole Internet Key Exchange (IKEv1 i IKEv2) za uspostavljanje sigurnosnih asocijacija (SA jak>) između dva vršnjaka.
Ovaj članak opisuje kako postaviti web-mjesto IPSec VPN pristupnika koristeći strongSwan na Ubuntu i Debian poslužiteljima . Pod site-to-site mislimo da svaki sigurnosni pristupnik iza sebe ima podmrežu. Osim toga, ravnopravni će se međusobno autentificirati korištenjem unaprijed dijeljenog ključa (PSK).
Okruženje za testiranje
Ne zaboravite zamijeniti sljedeće IP-ove svojim stvarnim IP-ovima kako biste konfigurirali svoje okruženje.
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
Korak 1: Omogućavanje prosljeđivanja paketa jezgre
1. Prvo morate konfigurirati kernel da omogući prosljeđivanje paketa dodavanjem odgovarajućih sistemskih varijabli u konfiguracijsku datoteku /etc/sysctl.conf na oba sigurnosna pristupnika.
sudo vim /etc/sysctl.conf
Potražite sljedeće retke i odkomentirajte ih te postavite njihove vrijednosti kao što je prikazano (pročitajte komentare u datoteci za više informacija).
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. Zatim učitajte nove postavke pokretanjem sljedeće naredbe.
sudo sysctl -p
3. Ako imate omogućenu uslugu vatrozida UFW, morate dodati sljedeća pravila u /etc/ufw/before.rules konfiguracijsku datoteku neposredno prije pravila filtera u bilo sigurnosnih pristupnika.
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. Nakon što su dodana pravila vatrozida, primijenite nove promjene ponovnim pokretanjem UFW kao što je prikazano.
sudo ufw disable
sudo ufw enable
Korak 2: Instaliranje strongSwana u Debian i Ubuntu
5. Ažurirajte predmemoriju paketa na oba sigurnosna pristupnika i instalirajte paket strongswan koristeći APT upravitelj paketa.
sudo apt update
sudo apt install strongswan
6. Nakon dovršetka instalacije, skripta za instalaciju pokrenut će uslugu strongswan i omogućiti joj automatsko pokretanje pri dizanju sustava. Možete provjeriti njegov status i je li omogućen pomoću sljedeće naredbe.
sudo systemctl status strongswan.service
sudo systemctl is-enabled strongswan.service
Korak 3: Konfiguriranje sigurnosnih pristupnika
7. Zatim trebate konfigurirati sigurnosne pristupnike pomoću konfiguracijske datoteke /etc/ipsec.conf.
Site 1 Gateway (tecmint-devgateway)
sudo cp /etc/ipsec.conf /etc/ipsec.conf.orig
sudo nano /etc/ipsec.conf
Kopirajte i zalijepite sljedeću konfiguraciju u datoteku.
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
Kopirajte i zalijepite sljedeću konfiguraciju u datoteku.
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
Evo značenja svakog konfiguracijskog parametra:
- postavljanje konfiguracije – navodi opće informacije o konfiguraciji za IPSec koje se odnose na sve veze.
- charondebug – definira koliko izlaza debugiranja Charona treba biti zabilježeno.
- uniqueids – određuje treba li određeni ID sudionika biti jedinstven.
- conn prodgateway-to-devgateway – definira naziv veze.
- vrsta – definira vrstu veze.
- automatski – kako upravljati vezom kada se IPSec pokrene ili ponovno pokrene.
- razmjena ključeva – definira verziju IKE protokola za korištenje.
- authby – definira kako se ravnopravni korisnici međusobno autentificiraju.
- lijevo – definira IP adresu sučelja javne mreže lijevog sudionika.
- leftsubnet – navodi privatnu podmrežu iza lijevog sudionika.
- desno – navodi IP adresu sučelja javne mreže pravog sudionika.
- rightsubnet – navodi privatnu podmrežu iza lijevog sudionika.
- ike – definira popis IKE/ISAKMP SA algoritama za šifriranje/provjeru autentičnosti koji će se koristiti. Možete dodati popis odvojen zarezom.
- esp – definira popis ESP algoritama za šifriranje/provjeru autentičnosti koji će se koristiti za vezu. Možete dodati popis odvojen zarezom.
- agresivno – navodi želite li koristiti agresivni ili glavni način rada.
- keyingtries – navodi broj pokušaja koje treba poduzeti za pregovaranje veze.
- ikelifetime – navodi koliko dugo kanal ključanja veze treba trajati prije ponovnog pregovaranja.
- životni vijek – definira koliko dugo treba trajati određena instanca veze, od uspješnog pregovora do isteka.
- dpddelay – određuje vremenski interval s kojim se R_U_THERE poruka/INFORMACIONALNE razmjene šalju ravnopravnoj osobi.
- dpdtimeout – određuje interval vremenskog ograničenja, nakon kojeg se brišu sve veze s peerom u slučaju neaktivnosti.
- dpdaction – definira kako koristiti Dead Peer Detection (DPD) protokol za upravljanje vezom.
Za više informacija o gornjim konfiguracijskim parametrima, pročitajte stranicu priručnika ipsec.conf pokretanjem naredbe.
man ipsec.conf
Korak 4: Konfiguriranje PSK-a za peer-to-peer autentifikaciju
8. Nakon konfiguriranja obaju sigurnosnih pristupnika, generirajte sigurni PSK koji će koristiti ravnopravni korisnici pomoću sljedeće naredbe.
head -c 24 /dev/urandom | base64
9. Zatim dodajte PSK u datoteku /etc/ipsec.secrets na oba pristupnika.
sudo vim /etc/ipsec.secrets
Kopirajte i zalijepite sljedeći redak.
------- 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. Ponovno pokrenite program IPSec i provjerite njegov status da biste vidjeli veze.
sudo ipsec restart
sudo ipsec status
11. Konačno, provjerite možete li pristupiti privatnim pod-mrežama s oba sigurnosna pristupnika pokretanjem naredbe ping.
ping 192.168.0.101
ping 10.0.2.15
12. Osim toga, možete zaustaviti i pokrenuti IPSec kao što je prikazano.
sudo ipsec stop
sudo ipsec start
13. Da biste saznali više o IPSec naredbama za ručno pokretanje veza i više, pogledajte IPSec stranicu za pomoć.
ipsec --help
To je sve! U ovom smo članku opisali kako postaviti IPSec VPN od mjesta do mjesta pomoću strongSwan na Ubuntu i Debian poslužiteljima, gdje oba sigurnosni pristupnici konfigurirani su za provjeru autentičnosti jednog drugog pomoću PSK. Ako imate bilo kakvih pitanja ili ideja za podijeliti, obratite nam se putem obrasca za povratne informacije u nastavku.