21T40 Unieważnianie Certyfikatów OpenVPN [Konfiguracja]

CRL Cert

Więcej miejsc do posłuchania:

Spotify

Link do artykułu.

Transkrypcja:

0:00 Wprowadzenie

0:14 Scenariusz

0:42 Odwołanie Certyfikatu

1:50 Generowanie Listy CRL

3:16 NAP Open VPN

6:25 Podsumowanie

Cześć! Chciałbyś się dowiedzieć, jak odwołać już przyznany dostęp w VPN-ie w oparciu o OpenVPN? Jeżeli tak, to w tym odcinku pokażę, jak to zrobić.

Jednak najpierw omówmy, jaki mamy scenariusz. Czyli mamy pracownika, w tym przypadku mamy Johna, który ma wystawiony właściwy certyfikat i łączy się prawidłowo z naszym VPN-em. Czyli jeżeli wykona połączenie w oparciu o uwierzytelnienie certyfikatem, to takie połączenie zostanie wykonane. Sprawdźmy, czy ma w ramach tego VPN-u dostęp do naszych zasobów wewnętrznych. Widzimy, że prawidłowo wszystko działa. Teraz chcielibyśmy odwołać ten certyfikat, ponieważ już nie współpracujemy z Johnem albo urządzenie, na którym John używał tego certyfikatu, zostało skradzione lub zgubione. Żeby to zrobić, trzeba się zalogować na serwer certyfikacji. W ramach OpenVPN mamy taką instytucję jak centrum certyfikacji-CA, logujemy się z uprawnieniami root.

Tu nam Radek przygotował elegancką instrukcję, jak to zrobić. Przechodzimy
do katalogu naszego CA-w moim przypadku to jest nap-ca. Teraz wywołujemy skrypt easyrsa z parametrem revoke dla użytkownika John. Okej, potwierdzamy. Widzimy, że tu commonName dla tego certyfikatu
jest john@contoso.com. Potwierdzamy. Wpisujemy prywatny klucz naszego urzędu, potwierdzając, że mamy odpowiednią wiedzę do użycia tej funkcjonalności. Widzimy, że został tutaj wygenerowany taki wniosek odwołania. Teraz musimy wygenerować listę CRL, czyli listę, która będzie zawierała certyfikaty, których numery seryjne zostały odwołane.

Przejdźmy do realizacji: easyrsa gen-crl, czyli wygenerowaliśmy tutaj w tym przypadku sobie listę już zaktualizowaną odwołanych certyfikatów. Ona się mieści w pliku crl.pem, mamy tutaj gotową listę w odpowiednim formacie.
To, co teraz potrzebujemy zrobić, Zawartość tego pliku kopiujemy i przenosimy na serwer OpenVPN. Serwer OpenVPN jest serwerem, na którym terminujemy VPN-y i standardowo podział pomiędzy tym urzędem certyfikacji CA a NAP-OpenVPN jest po to, żeby podwyższyć poziom bezpieczeństwa. Czyli jeżeli chodzi o urząd CA, to używamy go tylko w momencie, kiedy generujemy certyfikaty, odwołujemy te certyfikaty. W pozostałym czasie ten serwer OpenVPN CA może być spokojnie wyłączony. Dzięki temu mamy wyższy poziom zabezpieczenia, bo oczywiście sercem naszego systemu jest ważność i wiarygodność naszego urzędu certyfikacji.

Przechodzimy do NAP-OpenVPN naszego serwera, gdzie terminujemy VPN-y, logujemy się z uprawnieniami roota. Przechodzimy do konfiguracji serwera OpenVPN. Katalog etc/openvpn-i w tym katalogu, najpierw skopiujmy sobie
istniejący plik CRL jako backup, a następnie zmodyfikujmy nasz plik CRL i wklejmy tutaj nową wartość, którą wygenerowaliśmy w urzędzie certyfikacji.
Czyli przechodzimy, kopiujemy zawartość całego pliku, a następnie wklejamy tutaj w NAP-OpenVPN. Mamy już tutaj zaktualizowaną zawartość tego pliku. To, co jeszcze potrzebujemy zrobić, to w konfiguracji serwera OpenVPN należałoby sprawdzić, czy serwer sprawdza ten plik CRL, więc przechodzimy do linii, która nam określa konfigurację weryfikacji listy CRL. Jeżeli masz zakomentowaną tutaj tę linię, to znaczy, że trzeba ją odkomentować, żeby serwer sprawdzał plik odwołań certyfikatów. Okej, to mamy zrealizowane.
Sprawdźmy, jak tam nasz John. I tu okazuje się, że mimo że wprowadziliśmy pewne zmiany na naszym serwerze, ten John jest cały czas VPN-em podłączony do naszej sieci. To z tego powodu, że to, że my wygenerowaliśmy nowy plik
CRL i zmieniliśmy potencjalnie konfigurację sprawdzania tej listy, to nie wpływa na już podłączonych użytkowników. Czyli jeżeli chcemy tego Johna rozłączyć, możemy np. zrobić taką operację, jak restart serwisu, oczywiście rozłączymy w tym momencie wszystkich użytkowników, trzeba mieć to na uwadze. Restartujemy serwis, on załaduje od nowa ten cały serwer razem z plikiem konfiguracyjnym i listą CRL, którą weryfikuje. I teraz, jeżeli sprawdzisz
możliwość podłączenia się Johna, to widać, że VPN się nie spina.

Możemy jeszcze zobaczyć, jak wygląda log po stronie serwera w tym przypadku. Sprawdźmy sobie logowanie i ograniczmy ten log do naszego Johna. Okej. I co tu mamy: po pierwsze, widać, że było tutaj połączenie o 14:54, z jakiego adresu` i tutaj było połączenie prawidłowe. Dostał wewnętrzny adres IP 10.27.27.26, zgodnie z konfiguracją. A następnie było wysłane sent control, czyli informacja restart sesji. To było związane z restartem naszego serwisu. Ponownie John
próbował się podłączyć, już w tym momencie nasz serwer sprawdzał listę odwołań zaktualizowaną i możemy zobaczyć, że weryfikacja Johna była nieprawidłowa, a powodem błędu był powód odwołania certyfikatu.

Jak widzisz, w tych kilku prostych krokach można odwoływać dostęp VPN
w oparciu o OpenVPN dla wszystkich urządzeń, których nie chcemy w naszej sieci, np. w przypadku zgubienia lub zakończenia współpracy z danym współpracownikiem. Jeżeli masz pytania jakieś do konfiguracji tego typu funkcjonalności, to oczywiście zachęcam do pisania w komentarzu.

Na dzisiaj dziękuję Ci za uwagę i słyszymy się już za tydzień.


Autor: Darek Koralewski

Od początku swojej kariery, czyli od 2004 roku, zajmuję się sieciami komputerowymi ze szczególnym uwzględnieniem ich bezpieczeństwa oraz sieciami programowalnymi. Mam na swoim koncie całą listę certyfikatów różnych producentów, dwa najważniejsze to te poświadczające najwyższy poziom wiedzy eksperckiej z zakresu rozwiązań Aruba ClearPass ACCX#901 oraz z projektowania sieci opartych o rozwiązania Aruba ACDX#1255. Więcej informacji możesz znaleźć na moich portalach społecznościowych.