Kako postaviti VPN baziran na IPsec-u sa Strongswan-om na CentOS/RHEL 8


strongSwan je open-source, multi-platformsko, moderno i potpuno IPsec-bazirano VPN rješenje za Linux koje pruža punu podršku za Internet Key Exchange (i IKEv1 i IKEv2) za uspostavljanje sigurnosnih asocijacija (SA) između dva ravnopravna računala. Potpuno je opremljen, modularan po dizajnu i nudi desetke dodataka koji poboljšavaju osnovnu funkcionalnost.

Povezani članak: Kako postaviti VPN baziran na IPsec-u sa Strongswan-om na Debian-u i Ubuntu-u

U ovom članku ćete naučiti kako postaviti IPsec VPN gateway od lokacije do lokacije koristeći strongSwan na CentOS/RHEL 8 serverima. Ovo omogućava vršnjacima da autentifikuju jedni druge pomoću jakog prethodno dijeljenog ključa (PSK). Podešavanje od lokacije do lokacije znači da svaki sigurnosni gateway ima podmrežu iza sebe.

Testing Environment

Ne zaboravite da koristite svoje IP adrese u stvarnom svijetu tokom konfiguracija dok pratite vodič.

Site 1 Gateway
Public IP: 192.168.56.7
Private IP: 10.10.1.1/24
Private Subnet: 10.10.1.0/24
Site 2 Gateway
Public IP:  192.168.56.6
Private IP: 10.20.1.1/24
Private Subnet: 10.20.1.0/24

Korak 1: Omogućavanje Kernel IP Forwarding u CentOS 8

1. Počnite tako što ćete omogućiti funkciju prosljeđivanja IP adrese kernela u konfiguracijskoj datoteci /etc/sysctl.conf na oba VPN gatewaya.

vi /etc/sysctl.conf

Dodajte ove redove u fajl.

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. Nakon što sačuvate promjene u datoteci, pokrenite sljedeću naredbu da učitate nove parametre kernela u vremenu izvođenja.

sysctl -p

3. Zatim kreirajte trajnu statičku rutu u datoteci /etc/sysconfig/network-scripts/route-eth0 na oba sigurnosna gatewaya.

vi /etc/sysconfig/network-scripts/route-eth0

Dodajte sljedeći red u datoteku.

#Site 1 Gateway
10.20.1.0/24  via 192.168.56.7

#Site 2 Gateway
10.10.1.0/24 via 192.168.56.6

4. Zatim ponovo pokrenite upravitelj mreže da primijenite nove promjene.

systemctl restart NetworkManager

Korak 2: Instaliranje strongSwan u CentOS 8

5. Paket strongswan se nalazi u EPEL spremištu. Da biste ga instalirali, morate omogućiti EPEL spremište, a zatim instalirati strongwan na oba sigurnosna gateway-a.

dnf install epel-release
dnf install strongswan

6. Da provjerite verziju strongswan instalirane na oba gatewaya, pokrenite sljedeću naredbu.

strongswan version

7. Zatim pokrenite uslugu strongswan i omogućite joj da se automatski pokreće pri pokretanju sistema. Zatim provjerite status na oba sigurnosna gateway-a.

systemctl start strongswan 
systemctl enable strongswan
systemctl status strongswan

Napomena: Najnovija verzija strongswan u CentOS/REHL 8 dolazi s podrškom za oba swanctl (novi, prenosivi uslužni program komandne linije predstavljen sa strongSwan 5.2.0, koji se koristi za konfiguriranje, kontrolu i nadgledanje IKE demona Charon pomoću dodatka vici) i starter (ili ipsec) uslužni program koji koristi zastarjeli dodatak za stroke.

8. Glavni direktorij konfiguracije je /etc/strongswan/ koji sadrži konfiguracijske datoteke za oba dodatka:

ls /etc/strongswan/

Za ovaj vodič koristit ćemo IPsec uslužni program koji se poziva pomoću naredbe strong>strong>strong> i interfejsa za udarce. Stoga ćemo koristiti sljedeće konfiguracijske datoteke:

  • /etc/strongswan/ipsec.conf – konfiguraciona datoteka za podsistem strongSwan IPsec.
  • /etc/strongswan/ipsec.secrets – tajni fajl.

Korak 3: Konfiguriranje sigurnosnih prolaza

9. U ovom koraku, trebate konfigurirati profile povezivanja na svakom sigurnosnom gatewayu za svaku lokaciju koristeći /etc/strongswan/ipsec.conf konfiguracijski fajl strongswan.

Konfiguriranje profila veze na lokaciji 1

cp /etc/strongswan/ipsec.conf /etc/strongswan/ipsec.conf.orig
vi /etc/strongswan/ipsec.conf

Kopirajte i zalijepite sljedeću konfiguraciju u datoteku.

config setup
        charondebug="all"
        uniqueids=yes
conn ateway1-to-gateway2
        type=tunnel
        auto=start
        keyexchange=ikev2
        authby=secret
        left=192.168.56.7
        leftsubnet=10.10.1.1/24
        right=192.168.56.6
        rightsubnet=10.20.1.1/24
        ike=aes256-sha1-modp1024!
        esp=aes256-sha1!
        aggressive=no
        keyingtries=%forever
        ikelifetime=28800s
        lifetime=3600s
        dpddelay=30s
        dpdtimeout=120s
        dpdaction=restart

Konfiguriranje profila veze na lokaciji 2

cp /etc/strongswan/ipsec.conf /etc/strongswan/ipsec.conf.orig
vi /etc/strongswan/ipsec.conf

Kopirajte i zalijepite sljedeću konfiguraciju u datoteku:

config setup
        charondebug="all"
        uniqueids=yes
conn 2gateway-to-gateway1
        type=tunnel
        auto=start
        keyexchange=ikev2
        authby=secret
        left=192.168.56.6
        leftsubnet=10.20.1.1/24
        right=192.168.56.7
        rightsubnet=10.10.1.1/24
        ike=aes256-sha1-modp1024!
        esp=aes256-sha1!
        aggressive=no
        keyingtries=%forever
        ikelifetime=28800s
        lifetime=3600s
        dpddelay=30s
        dpdtimeout=120s
        dpdaction=restart

Hajde da ukratko opišemo svaki od gore navedenih parametara konfiguracije:

  • podešavanje konfiguracije – definira opće informacije o konfiguraciji za IPSec koje se odnose na sve veze.
  • charondebug – određuje koliko Charon izlaza za otklanjanje grešaka treba zabilježiti.
  • uniqueids – definira da li određeni ID učesnika treba ostati jedinstven.
  • conn gateway1-to-gateway2 – koristi se za postavljanje naziva veze.
  • tip – definira tip veze.
  • Auto – koristi se za deklarisanje načina rukovanja vezom kada se IPSec pokrene ili ponovo pokrene.
  • razmjena ključeva – deklarira verziju IKE protokola za korištenje.
  • authby – specificira kako vršnjaci trebaju međusobno autentifikovati.
  • lijevo – deklarira IP adresu javnog mrežnog interfejsa lijevog učesnika.
  • lijeva podmreža – deklarira privatnu podmrežu iza lijevog učesnika.
  • desno – deklarira IP adresu javnog mrežnog interfejsa pravog učesnika.
  • rightsubnet – deklarira privatnu podmrežu iza lijevog učesnika.
  • ike – koristi se za deklarisanje liste IKE/ISAKMP SA algoritama šifriranja/autentifikacije koji će se koristiti. Imajte na umu da ovo može biti lista odvojena zarezima.
  • esp – specificira listu ESP algoritama šifriranja/autentifikacije koji će se koristiti za vezu.
  • agresivan – izjavljuje da li će se koristiti agresivni ili glavni način rada.
  • keyingtries – deklarira broj pokušaja koji treba učiniti da bi se dogovorila veza.
  • ikelifetime – specificira koliko dugo kanal ključanja veze treba da traje prije nego što se ponovo pregovara.
  • životni vijek – određuje koliko dugo određena instanca veze treba da traje, od uspješnog pregovaranja do isteka.
  • dpddelay – deklarira vremenski interval u kojem se R_U_THERE poruke/INFORMACIONE razmjene šalju ravnopravnom uređaju.
  • dpdtimeout – koristi se za deklarisanje intervala vremenskog ograničenja, nakon kojeg se sve konekcije sa ravnopravnom osobom brišu u slučaju neaktivnosti.
  • dpdaction – specificira kako koristiti Dead Peer Detection (DPD) protokol za upravljanje vezom.

Možete pronaći opis svih konfiguracijskih parametara za strongSwan IPsec podsistem čitajući ipsec.conf man stranicu.

man ipsec.conf

Korak 4: Konfiguriranje PSK-a za Peer-to-Peer autentifikaciju

10. Zatim morate generirati jak PSK koji će koristiti peer za autentifikaciju kako slijedi.

head -c 24 /dev/urandom | base64

11. Dodajte PSK u datoteku /etc/strongswan/ipsec.conf na oba sigurnosna gatewaya.

vi /etc/strongswan/ipsec.secrets

Unesite sljedeći red u datoteku.

#Site 1 Gateway
192.168.56.7  192.168.56.6 : PSK "0GE0dIEA0IOSYS2o22wYdicj/lN4WoCL"

#Site 1 Gateway
192.168.56.6  192.168.56.7 : PSK "0GE0dIEA0IOSYS2o22wYdicj/lN4WoCL"

12. Zatim pokrenite strongsan uslugu i provjerite status veza.

systemctl restart strongswan
strongswan status

13. Testirajte da li možete pristupiti privatnim podmrežama sa bilo kojeg sigurnosnog gatewaya pokretanjem komande ping.

ping 10.20.1.1
ping 10.10.1.1

14. Na kraju, ali ne i najmanje važno, da naučite više strongswan komandi za ručno podizanje/spuštanje veza i više, pogledajte stranicu za pomoć za strongswan.

strongswan --help

To je sve za sada! Da biste podijelili svoje mišljenje s nama ili postavili pitanja, kontaktirajte nas putem obrasca za povratne informacije u nastavku. A da biste saznali više o novom uslužnom programu swanctl i novoj fleksibilnijoj strukturi konfiguracije, pogledajte StrongSwan korisničku dokumentaciju.