Konfiguracja tunelu SSL VPN z wykorzystaniem klienta OpenVPN pod system Linux

firmware 3.x SSL VPN linux

 

1.1. Konfiguracja tunelu SSL VPN

Aby umożliwić łączenie się użytkowników za pomocą SSL VPN w pierwszej kolejności przechodzimy w menu do Połączenia VPN -> SSL VPN i wypełniamy pola analogicznie jak na poniższym zrzucie ekranu:

W pierwszym polu należy podać nasz zewnętrzny adres IP, na którym będzie nasłuchiwać usługa.

W drugim polu podajemy zasoby, które mają być udostępnione (obiekt Network_bridge w tym wypadku reprezentuje sieć podłączoną do interfejsu o nazwie „bridge”). W tym miejscu należy wskazać obiekt reprezentujący naszą sieć lub grupę adresów.

W trzecim polu podajemy sieć, w ramach której urządzenie będzie przydzielało adresy IP dla użytkowników podłączających się poprzez SSL VPN w ramach protokołu UDP – należy przy tym pamiętać, że sieć nie może zawierać się w żadnej z adresacji sieci wewnętrznych.

W polu czwartym podajemy sieć, w ramach której urządzenie będzie przydzielało adresy IP dla użytkowników podłączających się poprzez SSL VPN w ramach protokołu TCP – tutaj również używamy sieci, która nie zawiera się w żadnej adresacji sieci wewnętrznych oraz nie zawiera się w sieci SSL VPN (UDP).

Jeżeli chcemy żeby klienci po zestawieniu tunelu wykorzystywali wskazany przez serwer DNS to możemy go wskazać w polu Preferowany serwer DNS oraz musimy rozwinąć ustawienia zaawansowane i zaznaczyć opcję „Uzyj serwerów DNS zapewnionych przez zaporę”.

UWAGA

Jeżeli wskażemy serwer DNS znajdujący się poza naszą siecią lokalną to musimy odznaczyć opcję „Blokuj zewnętrzne serwery DNS” w ustawieniach zaawansowanych.

Po wypełnieniu powyższych pól, zapisujemy wprowadzone zmiany za pomocą przycisku „zastosuj”.

Zaraz po zapisaniu powinniśmy otrzymać informację dotyczącą wyłączonego portalu uwierzytelniania.

Klikamy na Włącz VPN

1.2. Konfiguracja polityk dostępu

Jeżeli nie mamy jeszcze bazy użytkowników, przejdź do instrukcji Tworzenie lokalnej bazy LDAP.

Gdy już mamy przygotowaną konfigurację VPN oraz bazę to teraz musimy zdefiniować czy wszyscy użytkownicy mogą zestawiać tunel, czy też tylko wybrany przez nas użytkownik. Konfigurujemy to w zakładce Użytkownicy -> Polityki dostępu. Globalne zezwolenie na zestawianie tunelu włączamy w zakładce Domyślne reguły dostępu:

Jeżeli chcemy jednak pozwolić jedynie konkretnemu użytkownikowi na zestawienie tunelu to przechodzimy do zakładki Szczegółowy dostęp, dodajemy użytkownika i w kolumnie Tunel SSL VPN wybieramy dopuszczony

1.3. Konfiguracja polityki Firewall

Ostatnią rzeczą, którą musimy zrobić po stronie urządzenia Stormshield to utworzenie reguły na firewall, która będzie pozwalała na komunikację z naszą siecią wewnętrzną, udostępnioną w ramach tunelu SSL VPN

1.4. Pobranie konfiguracji klienta

Konfigurację dla klienta VPN możemy wyeksportować z:

a) Interfejsu graficznego urządzenia, przechodząc do zakładki Połączenia VPN -> SSL VPN, gdzie w części Zaawansowane, pobieramy konfigurację

b) Z poziomu portalu autoryzacji. Wymaga to jednak jego wcześniejszego włączenia. Przejdź do instrukcji Włączenie portalu autoryzacji na potrzeby SSL VPN.

2. Konfiguracja klienta OpenVPN

W pierwszej kolejności pobieramy i instalujemy aplikację OpenVPN.

Po pobraniu i zainstalowaniu aplikacji do zestawienia tunelu SSL VPN będą nam potrzebne:

  • Pliki konfiguracyjne OpenVPN,
  • Dane logowania – nazwa użytkownika i hasło.

Pobrany plik konfiguracji należy rozpakować do jakiegoś bezpiecznego katalogu (np. /.stormshield):

[root@linux ~]# unzip openvpn_client.zip -d ~/.stormmshield
Archive: openvpn_client.zip
inflating: / root /.stormmshield/openvpn_client.ovpn
inflating: / root /.stormmshield/CA.cert.pem
inflating: / root /.stormmshield/openvpnclient.cert.pem
inflating: / root /.stormmshield/openvpnclient.pkey.pem
 

W celu zestawienia bezpiecznego połączenia należy wydać następujące polecenie:

[root@ linux.stormmshield]# cd ~/.stormmshield
[root@ linux.stormmshield]# openvpn --config openvpn_client.ovpn
Enter Auth Username: ***********
Enter Auth Password: ********
  

UWAGA!

Domyślnie aplikacja nie zostanie uruchomiona w tle. Zamknięcie konsoli spowoduje rozłączenie sesji VPN. Aby temu zapobiec należy do polecenia dodać parametr -daemon. Bardziej szczegółowe informacje dot. konfiguracji klienta OpenVPN można odnaleźć na stronie producenta OpenVPN.

Aby zweryfikować czy połączenie działa poprawnie po stronie klienta należy sprawdzić działanie interfejsu tun0 poprzez następujące polecenie:

[root@ linux.stormmshield]# ifconfig tun0
tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500
inet 192.168.40.6 netmask 255.255.255.255 destination 192.168.40.5
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 100 (UNSPEC)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
  

Wartość inet powinna a zgadzać się z zakresem podanym w konfiguracji urządzenia Stormshield (parametr: Zakres adresów przydzielanych klientom).

Poprawność routingu można sprawdzić za pomocą polecenia netstat:

[root@ linux.stormmshield]# netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.88.1 0.0.0.0 UG 0 0 0 xenbr0
10.0.0.0 192.168.40.5 255.255.255.0 UG 0 0 0 tun0
192.168.40.1 192.168.40.5 255.255.255.255 UGH 0 0 0 tun0
192.168.40.5 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
192.168.88.0 0.0.0.0 255.255.255.0 U 0 0 0 xenbr0
  

W tym miejscu powinny znaleźć się sieci podane w konfiguracji urządzenia Stormshield (parametr: Zasoby dostępne poprzez SSL VPN) wskazujące na interfejs tun0.

UWAGA

Firma DAGMA, dystrybutor rozwiązań STORMSHIELD w Polsce, dokłada wszelkich starań, aby zapewnić dostęp do materiałów i instrukcji produktów firm trzecich oraz możliwości ich integracji z rozwiązaniami firmy STORMSHIELD jednak nie odpowiada za świadczenie wsparcia technicznego dla tych produktów.

Rozwiązanie Open VPN nie jest produktem firmy STORMSHIELD.