Kā iestatīt IPsec balstītu VPN ar Strongswan Debian un Ubuntu


strongSwan ir atvērtā koda, starpplatformu, pilnvērtīga un plaši izmantota IPsec balstīta VPN (virtuālā privātā tīkla) ieviešana, kas darbojas operētājsistēmās Linux, FreeBSD, OS X, Windows, Android un iOS. Tas galvenokārt ir atslēgu dēmons, kas atbalsta interneta atslēgu apmaiņas protokolus (IKEv1 un IKEv2), lai izveidotu drošības asociācijas (SA) starp diviem vienaudžiem.

Šajā rakstā ir aprakstīts, kā iestatīt vietnes IPSec VPN vārtejas, izmantojot strongSwan Ubuntu un Debian serveros. Ar jēdzienu “vietne uz vietni” mēs domājam, ka katram drošības vārtejam aiz tā ir apakšsavienojums. Turklāt vienaudži viens otru autentificēs, izmantojot iepriekš koplietotu atslēgu (PSK).

Lai konfigurētu savu vidi, neaizmirstiet aizstāt šos IP ar reālās pasaules IP.

1. vietnes vārteja (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

Vietnes 2 vārteja (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. darbība: kodola pakešu pārsūtīšanas iespējošana

1. Pirmkārt, jums jākonfigurē kodols, lai iespējotu pakešu pārsūtīšanu, abos drošības vārtejos pievienojot atbilstošos sistēmas mainīgos /etc/sysctl.conf konfigurācijas failā.

$ sudo vim /etc/sysctl.conf

Meklējiet šīs rindas un noņemiet no tām komentārus, un iestatiet to vērtības, kā parādīts (lai iegūtu vairāk informācijas, lasiet komentārus failā).

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. Pēc tam ielādējiet jaunos iestatījumus, izpildot šādu komandu.

$ sudo sysctl -p

3. Ja jums ir iespējots UFW ugunsmūra pakalpojums, konfigurācijas failā /etc/ufw/before.rules jāpievieno šādi noteikumi tieši pirms filtrēšanas kārtulām abās drošības vārtejās.

1. vietnes vārteja (tecmint-devgateway)

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

Vietnes 2 vārteja (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. Kad ugunsmūra noteikumi ir pievienoti, pēc tam lietojiet jaunās izmaiņas, restartējot UFW, kā parādīts.

$ sudo ufw disable 
$ sudo ufw enable

2. solis: strongSwan instalēšana Debian un Ubuntu

5. Atjauniniet pakotnes kešatmiņu abās drošības vārtejās un instalējiet paketi strongswan, izmantojot APT pakotņu pārvaldnieku.

$ sudo apt update
$ sudo apt install strongswan 

6. Kad instalēšana ir pabeigta, instalētāja skripts sāks strongswan pakalpojumu un ļaus tam automātiski startēt sistēmas sāknēšanas laikā. Izmantojot šo komandu, varat pārbaudīt tā statusu un to, vai tas ir iespējots.

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

3. darbība: drošības vārteju konfigurēšana

7. Pēc tam jums jākonfigurē drošības vārtejas, izmantojot konfigurācijas failu /etc/ipsec.conf.

1. vietnes vārteja (tecmint-devgateway)

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

Nokopējiet un ielīmējiet failā šādu konfigurāciju.

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

Vietnes 2 vārteja (tecmint-prodgateway)

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

Nokopējiet un ielīmējiet failā šādu konfigurāciju.

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

Šeit ir katra konfigurācijas parametra nozīme:

  • konfigurācijas iestatīšana - norāda vispārēju IPSec konfigurācijas informāciju, kas attiecas uz visiem savienojumiem.
  • charondebug - nosaka, cik daudz Charon atkļūdošanas izejas jāreģistrē.
  • unikāli - norāda, vai konkrēts dalībnieka ID ir jāpatur unikāls.
  • conn prodgateway-to-devgateway - nosaka savienojuma nosaukumu.
  • tips - nosaka savienojuma veidu.
  • auto - kā rīkoties ar savienojumu, kad tiek palaists vai restartēts IPSec.
  • keyexchange - nosaka izmantojamā IKE protokola versiju.
  • authby - nosaka, kā vienaudžiem vajadzētu viens otru autentificēt.
  • pa kreisi - nosaka kreisā dalībnieka publiskā tīkla saskarnes IP adresi.
  • leftsubnet - norāda privāto apakštīklu aiz kreisā dalībnieka.
  • pa labi - norāda pareizā dalībnieka publiskā tīkla saskarnes IP adresi.
  • tiesību apakštīkls - norāda privāto apakštīklu aiz kreisā dalībnieka.
  • ike - nosaka izmantojamo IKE/ISAKMP SA šifrēšanas/autentifikācijas algoritmu sarakstu. Varat pievienot ar komatiem atdalītu sarakstu.
  • esp - nosaka ESP šifrēšanas/autentifikācijas algoritmu sarakstu, kas jāizmanto savienojumam. Varat pievienot ar komatiem atdalītu sarakstu.
  • agresīvs - norāda, vai izmantot agresīvo vai galveno režīmu.
  • atslēgas mēģinājumi - norāda mēģinājumu skaitu, kas jāveic, lai risinātu sarunas par savienojumu.
  • ikelifetime - norāda, cik ilgi pirms atkārtotām sarunām vajadzētu ilgt savienojuma ievadīšanas kanālam.
  • kalpošanas laiks - nosaka, cik ilgam jābūt konkrētam savienojuma gadījumam, sākot no veiksmīgām sarunām un beidzoties.
  • dpddelay - norāda laika intervālu, ar kuru R_U_THERE ziņojumi/INFORMĀCIJAS apmaiņa tiek nosūtīti vienaudžiem.
  • dpdtimeout - norāda taimauta intervālu, pēc kura neaktivitātes gadījumā visi savienojumi ar vienaudžiem tiek dzēsti.
  • dpdaction - nosaka, kā izmantot Dead Peer Detection (DPD) protokolu, lai pārvaldītu savienojumu.

Lai iegūtu papildinformāciju par iepriekš minētajiem konfigurācijas parametriem, palaidiet komandu ipsec.conf manā lapā, palaižot komandu.

$ man ipsec.conf

4. darbība: PSK konfigurēšana vienādranga autentifikācijai

8. Pēc abu drošības vārteju konfigurēšanas izveidojiet drošu PSK, kas jāizmanto vienaudžiem, izmantojot šādu komandu.

$ head -c 24 /dev/urandom | base64

9. Pēc tam pievienojiet PSK failā /etc/ipsec.secrets abās vārtejās.

$ sudo vim /etc/ipsec.secrets

Nokopējiet un ielīmējiet šo rindu.

------- 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. Restartējiet programmu IPSec un pārbaudiet tās statusu, lai skatītu savienojumus.

$ sudo ipsec restart
$ sudo ipsec status

11. Visbeidzot pārbaudiet, vai varat piekļūt privātajiem apakštīkliem no jebkuras drošības vārtejas, izpildot ping komandu.

$ ping 192.168.0.101
$ ping 10.0.2.15

12. Bez tam, jūs varat pārtraukt un palaist IPSec, kā parādīts.

$ sudo ipsec stop
$ sudo ipsec start

13. Lai uzzinātu vairāk par IPSec komandām, lai manuāli izveidotu savienojumus, un vēl vairāk, skatiet IPSec palīdzības lapu.

$ ipsec --help

Tas ir viss! Šajā rakstā mēs esam aprakstījuši, kā izveidot vietnes IPSec VPN, izmantojot strongSwan Ubuntu un Debian serveros, kur abas drošības vārtejas bija konfigurētas viena otras autentificēšanai, izmantojot PSK. Ja jums ir kādi jautājumi vai domas, ar kuriem dalīties, sazinieties ar mums, izmantojot tālāk sniegto atsauksmju veidlapu.