1. Wstęp

Strongswan jest aplikacją pozwalającą na korzystanie z usługi VPN według zasad protokołu IKEv2. Składa się ona z dwóch części. Pierwszą z nich jest aplikacja pełniąca rolę serwera / bramki VPN do którego będą się łączyć urządzenia 

Drugim komponentem jest aplikacji kliencka instalowana na telefonach. Dzięki nim urządzenia końcowe będą łączyć się do bramki VPN i otrzymają dostęp do odpowiednich zasobów sieci. 

Niniejszy dokument przeprowadza przez proces przygotowania oraz konfiguracji środowiska dla obu tych komponentów: bramy VPN oraz konfiguracji urządzeń końcowych przy pomocy FAMOCa.

  1. Konfiguracja serwera

Wymagania ogólne

nr

Opis wymagania

Uwagi

1

System Operacyjny

CentOS 7 x64

w zależności od potrzeby: 
- osobna maszyna STANDALONE VPN

- instalacja równoległa na maszynie FAMOC PROXY  

2

FQDN

Maszyna VPN GATEWAY musi być osiągalna z internetu pod wskazanym FQDN

3

Adres sieci LAN dostępnej dla klientów łączących się do VPN

Wskazane zasoby - adresy IP lub całe podsieci do których podłączone urządzenia klienckie będą się łączyć po VPN

4

Adres sieci LAN klientów VPN

Pula adresów IP które będą przyznawane łączącym się klientom. UWAGA: adresy te będzie widać na firewallu pomiędzy DMZ a LAN. Należy upewnić się, że fw przepuszcza ten ruch.

5

Adres IP serwera DNS

Aby klienci mogli łączyć się do (3. LAN) korzystając z nazw domenowych niezbędny jest serwer DNS rozwiązujący te nazwy. UWAGA:

Adres IP serwera DNS musi znajdować się w puli adresów sieci LAN dostępnej dla klientów łączących się do VPN (3. LAN)

6

Firewall

Ruch przychodzący do maszyny VPN GATEWAY z INTERNETU po portach:


- UDP 500

- UDP 4500


Musi być odblokowany. Konieczne jest otworzenie tego ruchu na zewnętrznym FW oraz od strony samej maszyny VPN GATEWAY - poprzez iptables (patrz punkt 10 dla rozdziału “Bramka VPN”)

7

Certyfikat ROOT_CA + SUB_CA

Para certyfikatów ROOT_CA i wystawiony na jego podstawie subordinate CA (SUB_CA). Na podstawie tego certyfikatu SUB CA wystawiane będą:

1) certyfikaty klienckie autoryzujące połączenie do VPN

2) certyfikat serwera VPN GATEWAY (8.)

8

Certyfikat serwera VPN GATEWAY (VPN_CERT  oraz VPN_CERT_KEY)

Certyfikat wystawiony z SUB_CA (7) którym będzie posługiwać się bramka VPN

Generowanie certyfikatów

Do poprawnego skonfigurowania konieczne będzie zestaw certyfikatów (7,8):

  1. Certyfikat ROOT_CA

  2. Certyfikat SUB_CA

  3. Certyfikat VPN_CERT + klucz prywatny VPN_CERT_KEY

Jeśli bramka VPN jest integrowana z istniejącą już infrastrukturą PKI Microsoft CA, certyfikat bramki VPN_CERT musi być wystawiony z tego samego SUB_CA z jakiego wystawiane będą certyfikaty klienckie urządzeń końcowych. 

Istotne jest, aby certyfikat VPN_CERT:

  1. miał ustawione wartość SAN taką samą jak FQDN pod jakim maszyna z bramą VPN rozwiązuje się z internetu:
    Subject Alternative Name: DNS: FQDN

  2. posiadał ustawione następujące extendedKeyUsage:

    1. serverAuth (1.3.6.1.5.5.7.3.1 - TLS Web Server Authentication)

    2. ikeIntermediate (1.3.6.1.5.5.8.2.2 - IP security end entity)

Bramka VPN

Na maszynie pełniącej rolę bramki VPN (STANDALONE VPN lub FAMOC PROXY) musimy zainstalować paczkę Strongswan pełniącą rolę serwera VPN. 

1. Instalacja Strongswan

[root@vpn-standalone ~]# yum install strongswan


2. Dodanie Strongswan do procesów uruchamianych przy starcie systemu

[root@vpn-standalone ~]# systemctl enable strongswan

Created symlink from /etc/systemd/system/multi-user.target.wants/strongswan.service to /usr/lib/systemd/system/strongswan.service.


[root@vpn-standalone ~]# systemctl status strongswan

● strongswan.service - strongSwan IPsec IKEv1/IKEv2 daemon using ipsec.conf

   Loaded: loaded (/usr/lib/systemd/system/strongswan.service; enabled; vendor preset: disabled)

   Active: inactive (dead)


3. Wgrać plik z certyfikatem ROOT CA oraz plik z certyfikatem SUB CA (patrz Rozdział 3) do katalogu: /etc/strongswan/ipsec.d/cacerts/

4. Wgrać klucz prywatny certyfikatu serwera (VPN_CERT_KEY) do:
 /etc/strongswan/ipsec.d/private

5. Zmienić uprawnienia klucza prywatnego: chmod 640 /etc/strongswan/ipsec.d/private/VPN_CERT_KEY

6. Wgrać klucz certyfikat serwera (VPN_CERT) do /etc/strongswan/ipsec.d/certs

7. Edycja pliku konfiguracyjnego Strongswan zgodnie z poniższym wzorem /etc/strongswan/ipsec.conf:


config setup
    uniqueids=never

conn %default
        leftsubnet=LAN

        rightsourceip=CLIENT_SUBNET
        rightdns=DNS_IP
        dpdaction=clear
        keyingtries=3
        lifetime=8h
        ikelifetime=24h
        margintime=30m
        auto=add

conn ikev2
    keyexchange=ikev2
    leftcert=VPN_CERT

    leftid=FQDN
    leftsendcert=always


LAN - zasoby, do których ma być dostęp po podłączeniu do VPN, np. intranet (adres IP lub cała podsieć)

CLIENT_SUBNET - pula adres IP dla urządzeń, które będą miały dostęp do VPN

DNS_IP - adres serwera DNS

VPN_CERT - certyfikat serwera VPN (bramki VPN)

FQDN - adres serwera VPN (bramki VPN), wymagana rozwiązywalna nazwa domenowa


8. Utworzenie pliku ipsec.secrets, pod ścieżką /etc/strongswan/

: RSA VPN_CERT_KEY


9. Wyłączenie forwardowania IPv4:

[root@vpn-standalone ~]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf


[root@vpn-standalone ~]# sysctl -p

net.ipv6.conf.all.disable_ipv6 = 1

net.ipv6.conf.default.disable_ipv6 = 1

net.ipv4.ip_forward = 1

10. Konfiguracja IP tables (zgodnie z wymaganiem 6)

  1. iptables -I INPUT 4 -m state --state NEW -p udp -m udp --dport 500 -j ACCEPT

  2. iptables -I INPUT 4 -m state --state NEW -p udp -m udp --dport 4500 -j ACCEPT

  3. iptables -I FORWARD 1 -d CLIENT_SUBNET -m policy --dir out --pol ipsec -j ACCEPT

  4. iptables -I FORWARD 1 -s CLIENT_SUBNET -m policy --dir in --pol ipsec -j ACCEPT 


11. Zapisz konfigurację iptables

[root@vpn-standalone ~]# iptables-save > /etc/sysconfig/iptables


12. Testowe uruchomienie bramki VPN w trybie debug:

[root@vpn-standalone ~]# strongswan start --debug --nofork

Starting strongSwan 5.5.3 IPsec [starter]...

Loading config setup

found netkey IPsec stack

Attempting to start charon...

00[DMN] Starting IKE charon daemon (strongSwan 5.5.3, Linux 3.10.0-693.2.2.el7.x86_64, x86_64)

00[LIB] openssl FIPS mode(2) - enabled

00[CFG] loading ca certificates from '/etc/strongswan/ipsec.d/cacerts'

00[CFG] loading aa certificates from '/etc/strongswan/ipsec.d/aacerts'

00[CFG] loading ocsp signer certificates from '/etc/strongswan/ipsec.d/ocspcerts'

00[CFG] loading attribute certificates from '/etc/strongswan/ipsec.d/acerts'

00[CFG] loading crls from '/etc/strongswan/ipsec.d/crls'

00[CFG] loading secrets from '/etc/strongswan/ipsec.secrets'

00[LIB] loaded plugins: charon aes des rc2 sha2 sha1 md4 md5 random nonce x509 revocation constraints acert pubkey pkcs1 pkcs8 pkcs12 pgp dnskey sshkey pem openssl gcrypt fips-prf gmp curve25519 xcbc cmac hmac ctr ccm gcm curl attr kernel-netlink resolve socket-default farp stroke vici updown eap-identity eap-md5 eap-gtc eap-mschapv2 eap-tls eap-ttls eap-peap xauth-generic xauth-eap xauth-pam xauth-noauth dhcp unity

00[JOB] spawning 16 worker threads

charon (13191) started after 80 ms




13. Jeśli bramka uruchomiła się poprawnie w trybie debug, zamknij ją (ctrl + c) i uruchom produkcyjnie jako proces Strongswan

[root@vpn-standalone ~]# systemctl start strongswan


Maszyna Aplikacyjna (FAMOC)

Do poprawnego funkcjonowania klienta VPN dla urządzeń android konieczne jest wgranie odpowiedniej aplikacji klienckiej dostarczonej przez FancyFon. 

  1. Konfiguracja FAMOC

Konfiguracja Certificate Authority (CA)

Aby w pełni wykorzystać potencjał integracji z bramką VPN zalecane jest skonfigurowanie Certificate Authority (CA) które będzie odpowiedzialne za dystrybucję certyfikatów dla urządzeń klienckich. Na ich podstawie telefony będą uzyskiwały autoryzację do połączenia z bramą VPN.

Jeśli nie chcemy korzystać z W tym celu dodamy lokalne FAMOC CA. Możemy zrobić to pod ścieżką w systemie:

  • “ZAAWANSOWANE” -> “Ustawienia” -> “Serwery” -> “Dodaj serwer”

Po utworzeniu lokalnego FAMOC CA można przystąpić do konfiguracji klientów VPN dla urządzeń końcowych.

Konfiguracja Android

Aby telefony z systemem Android mogły korzystać z połączenia do VPN konieczne jest aby:

  1. Zainstalować na nich klienta VPN Strongswan

  2. Skonfigurować klienta VPN strongswan

Konfiguracja iOS

Aby telefony z systemem iOS mogły korzystać z połączenia do VPN konieczne jest aby odpowiednio przygotować konfigurację profilu iOS. Nie jest konieczne instalowanie dodatkowych, zewnętrznych aplikacji - konfigurowany jest natywny klient VPN iOS. 

Konfiguracja profilu iOS znajduje się pod lokalizacją: Centrum Konfiguracji -> Konfiguracje -> Dodaj Konfiguracje -> iOS -> Konfiguracja podstawowego profilu iOS. 

W sekcji “Certyfikaty” należy skonfigurować:

  1. Certyfikat kliencki CLIENT_CERT instalowany na urządzenia iOS generowany przez wskazanie zdefiniowanego VPN_CA (ODNOŚNIK DO CA)

  2. Jeśli zdefiniowany ROOT_CA (7) nie jest zaufany na urządzeniach (np. Korzystamy z certyfikatu self-sign, albo wewnętrznej infrastruktury PKI) - konieczne jest również jego dodanie w konfiguracji.

Przykładową konfigurację certyfikatów przedstawiono na poniższym zrzucie ekranu

W sekcji “Konfiguracja VPN” należy określić konfigurację dla natywnego klienta VPN urządzeń iOS. Do najważniejszych pół w konfiguracji należą:

  • Nazwa połączenia - tak będzie nazywał się profil VPNowy na urządzeniu

  • Adres serwera - fqdn bramy vpn

  • Lokalny identyfikator - jeden z parametrów określających jak urządzenie będzie przedstawiać się do serwera VPN. Ważne - musi zgadzać się z polem “UPN attribute” na certyfikacie klienckim

  • Zdalny identyfikator - drugi z parametrów określających jak urządzenie będzie przedstawiać się do serwera VPN

  • Metoda uwierzytelniania - w zalecanym przypadku jest to certyfikat generowany przez FAMOC CA i zdefiniowany w sekcji “CERTYFIKATY” w konfiguracji iOS (patrz wyżej)

  • Proxy - jeśli będzie używane - tutaj możesz go zdefiniować

  • Adresy serwerów DNS - tutaj zdefiniuj adresy IP wykorzystywanych serwerów DNS

  1. Podsumowanie

Niniejsza instrukcja pozwala na przejście procesu konfigurowania środowiska VPN Strongswan FAMOC (bramka vpn, konfiguracja FAMOC mdm, konfiguracja klientów). Wymienione kroki pozwolą na przejście całej procedury od postawienia bramki VPN do skonfigurowania urządzeń końcowych i podłączenia się do skonfigurowanych zasobów. W razie jakichkolwiek wątpliwości lub niejasności w związku z opisywaną procedurą, zapraszamy do kontaktu z naszym działem wsparcia technicznego pod adresem: support@fancyfon.com.