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

Więcej miejsc do posłuchania:

Spotify

WERSJA TEKSTOWA:

Cześć, witam Cię w dzisiejszym odcinku mojego podcastu – temat – odwołanie certyfikatów dla połączeń VPN. Zacznijmy od tego, dlaczego lepiej stosować certyfikaty w dostępie VPN-owym a nie inne metody typu użytkownik i hasło. Najważniejszą zaletą wykorzystywania certyfikatów jest to, że możemy tych certyfikatów zrobić tyle, ile potrzebujemy dla każdego urządzenia, które ma być podłączone do naszej sieci. Często jest tak, że chcemy w tym dostępie VPN-owym dać dostęp zarówno dla telefonu jak i dla laptopa i być może jakiegoś jeszcze innego urządzenia.

Jeżeli wystawiamy certyfikaty, to mamy możliwość bardziej elastycznej polityki dla różnego typu urządzeń. Co więcej możemy identyfikować jednoznacznie każde z tych urządzeń, czyli możemy powiedzieć, że to jest laptop użytkownika Kowalski, że to jest telefon użytkownika Kowalski lub inny i dzięki temu mamy dużo większą granularność kontroli nad tym co ma do nas dostęp. Kolejny bardzo istotny element jest taki, że jeżeli zautomatyzujemy proces wysyłania tych certyfikatów i usuniemy użytkownika końcowego jako element taki, który jest potrzebny do konfiguracji tego dostępu VPN-owego to jest dla nas łatwiej. Administracyjnie mamy mniej problemów, bo najczęściej kłopotem jest właśnie użytkownik końcowy, który ma różną wiedzę, różne umiejętności, a jeżeli to jest często jeszcze struktura rozproszona po całej Polsce, po całej Europie czy po całym świecie, to problem się potęguje. W związku z tym certyfikaty wydają się najlepszym sposobem dostępu VPN-owego, ale jednocześnie wymagają trochę więcej infrastruktury i trochę więcej wiedzy jak ta infrastruktura ma działać.

Więc jeżeli chodzi o koncepcję, do której Cię zachęcam, czyli koncepcję robienia dostępu VPN-owego w oparciu o certyfikaty, to trzeba mieć własny urząd CA. W ramach tego urzędu, odwoływanie, o którym będziemy dziś mówić, można konfigurować generując listy CRL. Ja pokazuję w poniedziałkowym odcinku jak robię to w oparciu o Open VPN i jego urząd certyfikacji. Jeżeli natomiast używasz innego firmowego urzędu certyfikacji, to oczywiście nie ma przeszkód, żeby dowolne certyfikaty, wygenerowane przez dowolny urząd używać w takim dostępie. Jedyne co jest później potrzebne, to urząd pośredni, dla takiego np OpenVPN-a, lub dla terminatora tych VPN-ów odpowiedni certyfikat, który jest w łańcuchu zaufanych urzędów certyfikacji. Tak czy inaczej potrzebujesz CA lub dodatkowo pośredniego CA.

Jeżeli masz gotowy proces do wygenerowania w procesie np tzw. onboardingu, tj. pracownik przynosi nowe urządzenie, załóżmy, że jest ono firmowe. Pierwszy raz wyciąga je z pudełka, np nowy telefon. W jaki sposób powinien być on zaopatrzony w certyfikat? Jeżeli używasz jakiegoś narzędzia do zarządzania, a zapewne w takim przypadku będziesz używał – do zarządzania tymi Endpointami , czyli tymi telefonami, np Microsoft Intune, to takie narzędzie potrafi, zarządzając urządzeniami końcowymi wygenerować certyfikat, wysłać i zainstalować go na telefonie.

Jeżeli natomiast zarządzasz komputerami w domenie, to z GPO jesteś w stanie wygenerować taki certyfikat i wysłać go na stację końcową w ramach polityki grupowej. To z kolei oznacza, że możesz się tym i certyfikatami posługiwać. Jeżeli chciałbyś zrobić dostęp VPN-owy – abstrahując od tego, jakiego narzędzia użyjesz – ja akurat pokazywałem w moim przykładzie OpenVPN-a, jako darmowe narzędzie, ale każde nowoczesne narzędzie, które udostępnia VPN-a, powinno mieć możliwość realizacji VPN-a w oparciu o certyfikaty. Więc niezależnie od tego, jakiego narzędzia użyjesz, możesz i powinieneś użyć list odwołań dla tych certyfikatów. Jak się to robi w konkretnym narzędziu, to zależy oczywiście od narzędzia. Ja, w przypadku OpenVPN-a pokazuję, jak wygenerować taki CRL. Jest to tak samo proste jak generowanie certyfikatu, czyli po prostu z parametrem odwołania generuje się dany skrypt i w efekcie otrzymujemy dodanie do listy certyfikatów odwołanych nr seryjny danego certyfikatu.

Jeśli teraz skonfigurujemy nasz serwer VPN-owy tak, aby sprawdzał tą listę odwołań – to dla każdego połączenia, które będzie realizowane, będzie sprawdzane, czy nr seryjny tego certyfikatu jest na liście odwołań, jeżeli będzie, to oczywiście połączenie zostanie odrzucone, o to dokładnie nam chodzi. Podsumowując, użytkownik końcowy, nie ma wpływu na naszą listę odwołań, nie ma do niej dostępu i możliwości jakiejkolwiek modyfikacji, natomiast my, jak najbardziej mamy taką możliwość.

Jeszcze jedna ważna rzecz, jeśli chodzi o certyfikaty, to, że one też mają z założenia jakąś swoją datę i to też, jest bardzo ważne, bo podwyższa poziom bezpieczeństwa, dlatego, że każdy certyfikat powinien kiedyś sam z siebie wygasnąć. Oznacza to, że nawet jeżeli zapomnimy i jakiś nasz proces, nie uwzględnia odwołań tych certyfikatów, czy w jakiś sposób ich usuwania, to zawsze ten czas upływu ważności tych certyfikatów jest istotny. Tak samo jest istotny czas ważności urzędu pośredniego lub głównego, który wystawia dany certyfikat. Jeżeli dowolna z tych dat ulegnie przedawnieniu, to w tym momencie dany certyfikat, jest nieważny. Oczywiście najczęściej posługujemy się, tym najkrótszym okresem, czyli datą ważności certyfikatu końcowego, ale tutaj też trzeba pamiętać o tym, że jeżeli wygaśnie Ci urząd pośredni lub główny. Oczywiście im ważniejszy ten urząd, tym ma on dłuższy okres ważności tego certyfikatu. Powinien on wygenerować nowy certyfikat i wtedy wszystkie kolejne certyfikaty, powinny być regenerowane.

Jak widzisz, trzeba pamiętać o kilku rzeczach, używając tego schematu certyfikatów, ale jest to bez wątpienia dużo wyższy poziom bezpieczeństwa. Możesz tych samych certyfikatów używać w dostępie VPN-owym, w dostępie 802.1x do sieci bezprzewodowej czy przewodowej – jak sobie to zaplanujesz. Ważne, że jak już masz ten certyfikat na urządzeniu końcowym, to możesz się nim łatwo posługiwać. Firmy, w których ja pracowałem i działało to dobrze, zawsze ten proces generowania, wysyłania regeneracji certyfikatów był automatyczny. To bardzo istotny czynnik, by z sukcesem wdrożyć sobie taki proces związany z certyfikatami, żeby to wszystko działo się automatycznie. Jeśli teraz korzystasz klasycznie, np dostęp VPN-owy w oparciu o użytkownika i hasło, to oczekujesz, że użytkownik będzie wpisywał login i hasło – przynajmniej raz do zapamiętania w tej aplikacji. Jest to element, który przy dużej skali, jakiś niewielki procent użytkowników stanowi kłopot, dzwonią oni wtedy na infolinię, trzeba im pomagać i rozwiązywać w jakiś sposób te problemy. Więc jest to też element, który pomaga – używając certyfikatów – ominąć typowe problemy, związane z końcowym użytkownikiem.

Jeżeli masz ochotę zobaczyć, jak się to konfiguruje, to zapraszam Cię w poniedziałek. Jeśli masz jakieś pytania to pisz w komentarzu, jeśli nie to tyle na dziś. Do usłyszenia 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.