Wyszukiwanie w witrynie

Jak skonfigurować VPN opartą na protokole IPsec za pomocą Strongswan na Debianie i Ubuntu


strongSwan to wieloplatformowa, w pełni funkcjonalna i szeroko stosowana implementacja VPN (wirtualna sieć prywatna) oparta na protokole IPsec, działająca w systemach Linux, FreeBSD, OS X, Windows, Android i iOS. Jest to przede wszystkim demon kluczowania obsługujący protokoły Internet Key Exchange (IKEv1 i IKEv2) w celu ustanowienia powiązań bezpieczeństwa (SA) pomiędzy dwoma rówieśnikami.

W tym artykule opisano, jak skonfigurować bramy IPSec VPN typu site-to-site przy użyciu strongSwan na serwerach Ubuntu i Debian . Przez lokację do lokacji rozumiemy, że za każdą bramą bezpieczeństwa znajduje się podsieć. Poza tym równorzędni będą uwierzytelniać się nawzajem za pomocą klucza wstępnego (PSK).

Środowisko testowe

Pamiętaj, aby zastąpić następujące adresy IP prawdziwymi adresami IP, aby skonfigurować środowisko.

Brama lokacji 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

Brama witryny 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

Krok 1: Włączanie przekazywania pakietów jądra

1. Najpierw musisz skonfigurować jądro, aby umożliwić przekazywanie pakietów, dodając odpowiednie zmienne systemowe w pliku konfiguracyjnym /etc/sysctl.conf na obu bramach bezpieczeństwa.

sudo vim /etc/sysctl.conf

Poszukaj poniższych linii, odkomentuj je i ustaw ich wartości jak pokazano (przeczytaj komentarze w pliku, aby uzyskać więcej informacji).

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. Następnie załaduj nowe ustawienia, uruchamiając następujące polecenie.

sudo sysctl -p

3. Jeśli masz włączoną usługę zapory UFW, musisz dodać następujące reguły do pliku konfiguracyjnego /etc/ufw/before.rules tuż przed regułami filtrowania w albo bramy bezpieczeństwa.

Brama lokacji 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

Brama witryny 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. Po dodaniu reguł zapory sieciowej zastosuj nowe zmiany, uruchamiając ponownie UFW, jak pokazano.

sudo ufw disable 
sudo ufw enable

Krok 2: Instalacja strongSwana w Debianie i Ubuntu

5. Zaktualizuj pamięć podręczną pakietów na obu bramach bezpieczeństwa i zainstaluj pakiet strongswan za pomocą menedżera pakietów APT.

sudo apt update
sudo apt install strongswan 

6. Po zakończeniu instalacji skrypt instalatora uruchomi usługę strong>strongswan i umożliwi jej automatyczne uruchomienie przy starcie systemu. Możesz sprawdzić jego status i czy jest włączony, używając następującego polecenia.

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

Krok 3: Konfigurowanie bram bezpieczeństwa

7. Następnie musisz skonfigurować bramy bezpieczeństwa przy użyciu pliku konfiguracyjnego /etc/ipsec.conf.

Brama lokacji 1 (tecmint-devgateway)

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

Skopiuj i wklej następującą konfigurację do pliku.

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

Brama witryny 2 (tecmint-prodgateway)

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

Skopiuj i wklej następującą konfigurację do pliku.

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

Oto znaczenie każdego parametru konfiguracyjnego:

  • konfiguracja – określa ogólne informacje konfiguracyjne dla IPSec, które dotyczą wszystkich połączeń.
  • charondebug – określa, ile wyników debugowania Charona powinno być rejestrowanych.
  • uniqueids – określa, czy konkretny identyfikator uczestnika powinien pozostać unikalny.
  • conn prodgateway-to-devgateway – definiuje nazwę połączenia.
  • type – określa typ połączenia.
  • auto – jak obsłużyć połączenie po uruchomieniu lub ponownym uruchomieniu protokołu IPSec.
  • keyexchange – określa wersję protokołu IKE, która ma być używana.
  • authby – określa, w jaki sposób partnerzy powinni się nawzajem uwierzytelniać.
  • left – definiuje adres IP interfejsu sieci publicznej lewego uczestnika.
  • leftsubnet – określa prywatną podsieć za lewym uczestnikiem.
  • right – określa adres IP interfejsu sieci publicznej odpowiedniego uczestnika.
  • rightsubnet – określa podsieć prywatną za lewym uczestnikiem.
  • ike – określa listę algorytmów szyfrowania/uwierzytelniania IKE/ISAKMP SA, które mają być stosowane. Możesz dodać listę rozdzielaną przecinkami.
  • esp – definiuje listę algorytmów szyfrowania/uwierzytelniania ESP, które mają być użyte w połączeniu. Możesz dodać listę rozdzielaną przecinkami.
  • agresywny – określa, czy używać trybu agresywnego, czy głównego.
  • keyingtries – określa liczbę prób, które należy podjąć, aby wynegocjować połączenie.
  • ikelifetime – określa, jak długo powinien trwać kanał kluczowania połączenia, zanim zostanie renegocjowany.
  • lifetime – określa, jak długo powinna trwać konkretna instancja połączenia, od udanych negocjacji do wygaśnięcia.
  • dpddelay – określa przedział czasu, z jakim R_U_THERE wysyłane są do partnera wiadomości/wymiany INFORMACYJNE.
  • dpdtimeout – określa limit czasu, po upływie którego w przypadku braku aktywności wszystkie połączenia z peerem są usuwane.
  • dpdaction – określa sposób użycia protokołu Dead Peer Detection (DPD) do zarządzania połączeniem.

Aby uzyskać więcej informacji na temat powyższych parametrów konfiguracyjnych, przeczytaj stronę podręcznika ipsec.conf, uruchamiając komendę.

man ipsec.conf

Krok 4: Konfiguracja PSK do uwierzytelniania peer-to-peer

8. Po skonfigurowaniu obu bram bezpieczeństwa wygeneruj bezpieczny PSK, który będzie używany przez równorzędnych użytkowników, za pomocą następującego polecenia.

head -c 24 /dev/urandom | base64

9. Następnie dodaj PSK do pliku /etc/ipsec.secrets na obu bramach.

sudo vim /etc/ipsec.secrets

Skopiuj i wklej następujący wiersz.

------- 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. Uruchom ponownie program IPSec i sprawdź jego stan, aby wyświetlić połączenia.

sudo ipsec restart
sudo ipsec status

11. Na koniec sprawdź, czy możesz uzyskać dostęp do prywatnych podsieci z obu bram bezpieczeństwa, uruchamiając polecenie ping.

ping 192.168.0.101
ping 10.0.2.15

12. Poza tym możesz zatrzymać i uruchomić IPSec, jak pokazano.

sudo ipsec stop
sudo ipsec start

13. Aby dowiedzieć się więcej o poleceniach IPSec umożliwiających ręczne nawiązywanie połączeń i nie tylko, zobacz stronę pomocy IPSec.

ipsec --help

To wszystko! W tym artykule opisaliśmy, jak skonfigurować VPN typu site-to-site IPSec przy użyciu strongSwan na serwerach Ubuntu i Debian, gdzie oba bramy bezpieczeństwa zostały skonfigurowane tak, aby uwierzytelniały się nawzajem przy użyciu PSK. Jeśli masz jakieś pytania lub przemyślenia, którymi chcesz się podzielić, skontaktuj się z nami za pomocą poniższego formularza opinii.