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.