MS Azure i SVC

Posted by pawel in PROBLEMATYKA OGÓLNA

Ostatnio stanąłem przed zadaniem skonfigurowania SVC w oparciu o chmurę Microsoft AZURE. W niniejszym artykule podzielę się swoimi doświadczeniami w tej kwestii.

Ogólne założenie jest takie, że Stormshield UTM wysyła logi przez tunel IPSEC do AZURE. W AZURE znajduje się instancja SVC która odbiera logi i daje użytkownikowi możliwość tworzenia raportów. Dostęp do konsoli SVC (https) możliwy jest przez tunel IPSEC. Poniższy opis dotyczy sytuacji gdy konfigurujemy zasoby AZURE „od początku”.

Opis konfiguracji AZURE zostanie przedstawiony hasłowo, Microsoft udostępnia dość szczegółową dokumentację wraz z przykładami zatem dublowanie opisów nie ma sensu.

Podsieć wirtualna

Zaczynamy od utworzenia w AZURE wirtualnej podsieci w ramach której powołamy wirtualny serwer z SVC. Istotne jest aby adres IP wirtualnej sieci był różny od adresów sieci w naszym  lan.

mamy zatem w ramach sieci wirtualnej Stormshield (172.16.200.0/21):

  • podsieć wirtualną PodsiecSVC: 172.16.200.0/24
  • podsieć GatewaySubnet: 172.16.207.0/24

 

Serwer wirtualny

Kolejnym koniecznym elementem jest serwer na którym uruchomimy wirtualizację. Wybrałem bezpłatny serwer Ubuntu Server 16.04 LTS. Wybierając (AZURE przedstawia listę proponowanych konfiguracji serwerów wirtualnych) serwer trzeba koniecznie zwrócić uwagę aby był to serwer w wersji 3 gdyż tylko taki posiada wsparcie dla wirtualizacji systemów 64-bitowych. Mój serwer ma 16 GB RAM i 2 procesory. Utworzony serwer będzie miał również publiczny adres IP za pomocą którego dostaniemy się do konsoli serwera (ssh) nim uruchomimy tunel IPSEC. Po wdrożeniu na zaporze AZURE powinniśmy zablokować dostęp do serwera z sieci Internet. Podczas tworzenia serwera wirtualnego tworzymy również użytkownika i nadajemy mu hasło początkowe.

mój serwer ma dwa interfejsy ale to nie jest konieczne:

Ubuntu Server nie ma zainstalowanego żadnego interfejsu graficznego, dla wygodny zainstalowałem sobie proste GUI oraz dostęp przez xrdp (do połączenia będziemy mogli użyć systemowego, windowsowego tzw. klienta pulpitu zdalengo).

Gdy AZURE zaraportuje, że utworzenie serwera pozytywnie się zakończyło logujemy się do serwera i wykonujemy:

ssh -l username IP_pub_serwera (logowanie do serwera wirtualnego)

sudo apt-get update

sudo apt-get upgrade

sudo apt-get install mc (opcjonalnie)

sudo apt-get install openbox obconf

sudo apt-get install mate-core mate-desktop-environment mate-notification-daemon

sudo apt install lightdm

sudo apt-get install firefox

sudo apt-get install xrdp

sudo sed -i.bak '/fi/a #xrdp multiple users configuration \n mate-session \n' /etc/xrdp/startwm.sh

sudo systemctl restart xrdp

Po wykonaniu powyższych poleceń powinnismy uzyskać dostęp do serwera z klienta RDP. Zainstalowana została przeglądarka Firefox z pomocą ktorej możemy zalogować się na https://mystormshield.eu jak i w przyszłości testować SVC.

Teraz kolej na zainstalowanie VirtualBox. Aplikacji w ramach której uruchomimy instancję SVC. Warto zainstalować najnowszą wersję (tj. na dzień dzieisjszy 5.2).

W katalogu /etc/apt/sources.list tworzymy plik virtualbox.list:

cd /etc/apt/sources.list

sudo touch virtualbox.list

sudo vi virtualbox.list

i dodajemy wpis:

deb http://download.virtualbox.org/virtualbox/debian xenial contrib

pobieramy i instalujemy klucze podpisów:

wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -

wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -

aktualizujemy środowisko i instalujemy VirtualBox-a:

sudo apt update

sudo apt install virtualbox-5.2

dla pewności sprawdzamy czy pakiety kompilatora i pliki nagłówkowe są zainstalowane (opcjonalnie):

sudo apt-get install gcc make build-essential linux-headers-$(uname -r)

konfigurujemy VirtualBox-a z odpowienimi modułami kernela włącznie:

sudo /sbin/vboxconfig


VirtualBox dla SVC

W konfiguracji VB ustanawiamy sieć wewnętrzną dla maszyn wirtualnych i parametryzujemy:

Co oznacza, że powołujemy podsieć która będzie podlegała translacji na adres IP serwera wirtualnego, uruchamiamy dla niej DHCP oraz tworzymy reguły translacji. VirtualBox nie pozwala na przekierowanie portów poniżej portu 1024.

Stormshield Visibilty Center (SVC)

Na serwer wgrywamy plik maszyny wirtualnej SVC w formacie ova. Plik ova możemy pobrać ze strony https://mystormshield.eu – bezpośrednio z poziomu maszyny wirtualnej AZURE lub pobrać go na komputer lokalny i przesłać na serwer za pomocą polecenia scp. Pobrany plik importujemy w aplikacji VirtualBox.

 Przed uruchomieniem maszyny wirtualnej SVC należy upewnić się (i ewentualnie skorygować parametry), że wszystkie parametry są zgodne, tzn. brak jest ostrzeżeń o błędach. Jeżeli tego nie zrobimy maszyna zostanie błędnie skonfigurowana i SVC nie będzie działać prawidłowo. Pamiętajmy, że VirtualBox nie jest oficjalnie wspierany przez Stormshielda dla SVC.

Uruchamiamy maszynę SVC, po chwili otrzymamy monit o konfigurację środowiska (klawiatura, strefa czasowa, etc.). Przy nadawaniu adresu IP usługi SVC należy ustawić DHCP.

  Jeżeli nadamy adres IP dla SVC z przestrzeni adresowej sieci wirtualnej to AZURE będzie izolowała ten adres od bramy lokalnej sieci wirtualnej. 

Środowisko sieciowe SVC powinno być ustawione jak na poniższym screenie:

Instalowanie SVC trwa dość długo. Na koniec powinniśmy uzyskać widok:

Dla pewności możemy wylistować czy usługi sieciowe zostały uruchomione:

Z wykorzystaniem Firefoxa powinniśmy mieć dostęp do konsoli SVC:

IPSEC

W ramach AZURE musimy wykreować tunel typu Lokacja-Lokacja. Zaczynamy od utworzenia tzw. Bramy sieci wirtualnej:

AZURE przydzieli bramie dodatkowy, publiczny adres IP.

Następnie tworzymy tzw. Bramę sieci lokalnej który to zasób reprezentuje zakończenie tunelu po stronie UTM-a (adres publiczny i adresację podsieci lokalnych):

i to w zasadzie wszystko:

Po stronie UTM tworzymy tunel typu site-to-site. Możemy użyć profilu Good Encryption dla obu faz. W fazie I należy wybrać IKE v.2.

Gdzie:

Azure_Traffic to podsieć wirtualna AZURE w której mam serwer wirtualny z SVC

Gdzie:

AzureIPSEC to adres bramy IPSEC po stronie AZURE

SYSLOG

Gdzie:

svc_azure to adres serwera wirtualnego w AZURE (w moim przypadku 172.16.200.4)

azure_udp to port na jaki UTM ma wysyłać logi (w moim przypadku 5014/udp)

Pozostaje jeszcze modyfikacja adresu źródłowego dla pakietów sysloga (jest to wymagane aby zachować zgodność z profilem IPSEC):

Logujemy się na UTM-ie przez SSH i przechodzimy do katalogu:

/data/Main/ConfigFiles/Communication

edytujemy plik: config

Dla wpisów dotyczących właściwego profilu modyfikujemy pole BindAddr:

zapisujemy plik i wydajemy polecenie:

enlog

 

Dostęp do konsoli SVC

25 kw. 2018


Wszystkie teksty i opisy znajdujące się w domenie stormshield.edu.pl są mojego autorstwa.
Najnowszy firmware SNS: 4.5.2 (Release Note)
Najnowszy firmware SNSv3: 3.11.18 (Release Note)