Stormshield jako podrzędny urząd certyfikacji dla AD CS w filtrze SSL i dodawanie certyfikatu SSL dla strony

Okej, ten sam temat przerabialiśmy wcześniej z FortiGate i teraz robimy to na Stormshieldzie. Nie chce mi się instalować przez GPO wbudowanego certyfikatu ze Stormshielda na każdym komputerze. Łatwiej jest podpisać certyfikat dla podrzędnego CA, którym byłby Stormshield i temat załatwiony, bo główne CA i tak mają wszyscy w komputerach po instalacji AD CS. Druga rzecz to jest to, by stronka wyświetlała stronkę Stormshielda jako bezpieczną. Zaczniemy najpierw od tego. Przykłady są bazowane na SNS 4.0.3, ale równie dobrze to będzie działało zarówno na starszych jak i nowszych wersjach.

Instalowanie certyfikatu SSL dla strony

To, jak uzyskać taki certyfikat z AD CSa opisałem tutaj, więc zapraszam do lekturki. Po tym, gdy certyfikat już mamy wyeksportowany należy przejść do strony Stormshielda, zalogować się i przejść do zakładki Konfiguracja, następnie z lewej strony wybrać Obiekty > Certyfikaty – PKI, a następnie kliknąć Dodaj > Importuj plik.

Następnie należy wskazać ścieżkę do plików certyfikatu (certyfikat musi mieć zintegrowany klucz prywatny, więc musimy skorzystać z P12 (PKCS #12). Jeśli to jest potrzebne – podajemy hasło i klikamy Importuj.

Poniżej coś, na co się naciąłem przy generowaniu certyfikatów z Windowsa: jeśli nie zaimportujemy podpisanego certyfikatu do naszego lokalnego magazynu certyfikatów z komputera, na którym generowaliśmy CSR to nie będzie widać drzewka z urzędu certyfikacji (przykład po lewej). Po prawej jest przykład tego, jak to powinno wyglądać.

Potem należy przejść do Użytkownicy > Portal uwierzytelnienia, wybrać zakładkę Portal uwierzytelnienia i w sekcji Serwer SSL wybrać nasz nowy certyfikat, a po tym zatwierdzić ustawienia.

Po otwarciu na nowo przeglądarki strona powinna być jako bezpieczna…

Nawet po adresie IP, jeśli wykorzystaliście mój przykład z generowaniem CSR z CLI z tego posta.

Na wypadek fuck-upu

Jeśli zrobicie tak jak ja i odwołacie certyfikat, który aktualnie jest używany na Stormshieldzie to jesteście w czarnej D. W takiej sytuacji jedyne, co pozostaje do podpięcie się przez PuTTY po SSH do Stormshielda i usunięcie certyfikatu z CLI. Należy otworzyć plik konfiguracyjny za pomocą polecenia:

joe ConfigFiles/auth

Następnie należy w pliku wyczyścić w sekcji [Config] wartość pola SslCertificate=:

Po tym wystarczy zapisać skrótem Ctrl+K+X i wykonać polecenie enauth. To zrestartuje portal i znowu będziemy mieć samopodpisany certyfikat SSL.

Certyfikat SSL dla podrzędnego CA w celu filtrowania SSL

Generowanie certyfikatu i import wygląda podobnie. Szablon w pliku tekstowym wygląda tak:

[Version]
Signature="$Windows NT$"
 
[NewRequest]
;w tym polu określamy dane certyfikatu
Subject = "C=PL, O=it.supra.tf, CN=stormshield.stormshield.local, L=Tychy, S=śląskie, [email protected], OU=IT"
KeySpec = 1
KeyLength = 2048
Exportable = TRUE
MachineKeySet = TRUE
SMIME = False
PrivateKeyArchive = FALSE
UserProtected = FALSE
UseExistingKeySet = FALSE
KeySpec = AT_KEYEXCHANGE
ProviderName = "Microsoft RSA SChannel Cryptographic Provider"
ProviderType = 12
RequestType = PKCS10
KeyUsage = CERT_CRL_SIGN_KEY_USAGE
HashAlgorithm = SHA256

[RequestAttributes]
CertificateTemplate=SubCA

Równie dobrze można to zrobić z GUI. W praktyce działa tak samo. Sposób wystawiania takiego certyfikatu i eksportowania go opisałem tutaj. Tutaj część o robieniu tego przez CLI. Certyfikat dla podrzędnego CA importuje się tak samo, jak ten do stronki:

Następnie w Kontrola aplikacji > Analiza protokołów > SSL należy wybrać Pokaż ustawienia wspólne dla wszystkich profili i wybrać w Główny urząd certyfikacyjny (CA) nasz urząd certyfikacji:

Na koniec wystarczy dodać hasło do certyfikatu i zapisać.

Tak wygląda efekt końcowy:

Masowe dodawanie obiektów w DHCP w Stormshield

Przenoszenie się z jednego rozwiązania na drugie zwykle jest uciążliwe, w szczególności, gdy ma się pod sobą dużo hostów…na przykład 200. Często firmy stosują statyczne przydziały DHCP i przepisywanie ich byłoby katorgą w miejscu, gdzie mamy kilka razy coś wyklikać, więc prostszym rozwiązaniem jest masowy import konfiguracji i to postaram się pokazać jak się robi w Stormshieldzie.

NIESUPPORTOWANE ROZWIĄZANIE

Tak, to jest nie supportowane rozwiązanie i robisz je na własną odpowiedzialność. Pamiętaj o zrobieniu kopii zapasowej urządzenia zanim będzie płacz i zgrzytanie zębów, a co najważniejsze nie wytykaj mnie palcem za swoje błędy w konfiguracji.

Tak poza tym – jeśli stosujesz się do instrukcji poniżej to wszystko powinno działać.

Na samym początku należy sobie wyeksportować listę obiektów, którą mamy w Stormshield. Robi się to w zakładce Konfiguracja, Obiekty > Obiekty sieciowe kilkając przycisk Eksportuj nad listą obiektów.

W efekcie dostaniemy plik tekstowy, który wygląda mniej więcej tak:

Nieprzypadkowo wrzucam ten fragment w postaci zrzutu ekranu. Polecam Visual Studio Code do edycji w takiej sytuacji, bo ten program naprawdę dobrze podkreśla segmenty pliku CSV, z którym mamy do czynienia. W tym wszystkim da się zauważyć strukturę obiektów. Nas interesują obiekty hosta, więc to, co zaczyna się od linijki

#type,#name,#begin,#end,#beginipv6,#endipv6,#comment

można usunąć, bo nie będzie nam potrzebne. Składnia obiektów hosta w tym pliku jest w pierwszej linijce:

#type,#name,#ip,#ipv6,#resolve,#mac,#comment

Następnie do tej listy po prostu musimy dopisać wedle schematu nasze komputery, które chcemy dodać do statycznych dzierżaw w DHCP. Poniżej mój przykład:

host,mojkomp,192.168.40.12,,static,11:11:11:11:11:11,""
host,mojkomp-1,192.168.40.13,,static,11:11:11:11:11:12,""
host,mojkomp-2,192.168.40.14,,static,11:11:11:11:11:13,""
host,mojkomp-3,192.168.40.15,,static,11:11:11:11:11:14,""
host,mojkomp-4,192.168.40.16,,static,11:11:11:11:11:15,""
host,mojkomp-5,192.168.40.17,,static,11:11:11:11:11:16,""
host,mojkomp-6,192.168.40.18,,static,11:11:11:11:11:17,""
host,mojkomp-7,192.168.40.19,,static,11:11:11:11:11:18,""
host,mojkomp-8,192.168.40.20,,static,11:11:11:11:11:19,""
host,mojkomp-9,192.168.40.21,,static,11:11:11:11:11:1A,""
host,mojkomp-10,192.168.40.22,,static,11:11:11:11:11:1B,""
host,mojkomp-11,192.168.40.23,,static,11:11:11:11:11:1C,""
host,mojkomp-12,192.168.40.24,,static,11:11:11:11:11:1D,""
host,mojkomp-13,192.168.40.25,,static,11:11:11:11:11:1E,""
host,mojkomp-14,192.168.40.26,,static,11:11:11:11:11:1F,""
host,mojkomp-15,192.168.40.27,,static,11:11:11:11:11:20,""
host,mojkomp-16,192.168.40.28,,static,11:11:11:11:11:21,""
host,mojkomp-17,192.168.40.29,,static,11:11:11:11:11:22,""
host,mojkomp-18,192.168.40.30,,static,11:11:11:11:11:23,""
host,mojkomp-19,192.168.40.31,,static,11:11:11:11:11:24,""
host,mojkomp-20,192.168.40.32,,static,11:11:11:11:11:25,""
host,mojkomp-21,192.168.40.33,,static,11:11:11:11:11:26,""
host,mojkomp-22,192.168.40.34,,static,11:11:11:11:11:27,""

Mając takie obiekty dopisane do listy zapisujemy zmiany i efekt końcowy powinien wyglądać tak:

Następnie należy wrócić do interfejsu, wybrać przycisk Zaimportuj oraz wskazać zmodyfikowany plik z obiektami.

Po tym należy kliknąć Zaimportuj i efekty widać niżej.

Tutaj też.

Mamy obiekty w bazie, ale trzeba jeszcze je dopisać do listy dzierżaw w DHCP. To się robi z poziomu SSH. Takie SSH należy sobie wcześniej włączyć w zakładce Konfiguracja, Ustawienia systemowe > Konfiguracja urzadzenia, w zakładce Dostęp administracyjny, w sekcji Ustawienia dostępu SSH. Po prostu trzeba zaznaczyć oba checkboxy.

Następnie należy się podpiąć poprzez dowolnego klienta SSH i po zalogowaniu wykonać polecenie:

joe ConfigFiles/dhcp

To otworzy edytora tekstu. Następnie musimy odnaleźć sekcję [Hosts] i pod nią dopisać nazwy obiektów, które stworzyliśmy, w moim przypadku były to mojkomp, mojkomp-1, mojkomp-2 itd. Najlepiej nie zostawiać przerw pomiędzy nowymi liniami, ponadto jedna nazwa obiektu = jedna linia. Na zakończenie listy powinna być jedna pusta linia odstępu od kolejnej sekcji.

Mając to gotowe należy zapisać wykonując na klawiaturze skrót Ctrl+K+X. Po tym należy wykonać polecenie endhcp, by zrestartować usługę serwera DHCP. Jeśli nie ma żadnych błędów o niepoprawności obiektów – to oznacza, że wszystko jest w porządku. Efekt wygląda tak: