Sieci VPN. Zdalna praca i bezpieczeñstwo danych



Podobne dokumenty
# katalog, w który zapisywane są certyfikaty crl_dir=$dir/crl

UWAGA! PRZECZYTAJ NAJPIERW:

Zdalne odnawianie certyfikatów do SWI

Microsoft Management Console

Konstrukcja urzędów certyfikacji standardu OpenSSL, zarządzanie certyfikatami

Instrukcja pod czenia komputera z systemem Microsoft Windows XP do sieci PWSZ-FREE-WIFI

Opis instalacji systemu Intranet Komunikator

System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy

SpedCust 5 instrukcja instalacji

OpenSSL - CA. Kamil Bartocha November 28, Tworzenie CA przy użyciu OpenSSL

Poniżej instrukcja użytkowania platformy

Instrukcja pod czenia komputera z systemem Microsoft Windows Vista/7 do sieci PWSZ-FREE-WIFI

Pracownia internetowa w ka dej szkole (edycja 2004/2005)

Konfiguracja OpenVPN

Instrukcja Obsługi STRONA PODMIOTOWA BIP

Konfiguracja historii plików

Logowanie do mobilnego systemu CUI i autoryzacja kodami SMS

Instrukcja instalacji oraz wykorzystania podpisu cyfrowego

Systemy mikroprocesorowe - projekt

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento (plugin dostępny w wersji ecommerce)

Instrukcja instalacji oprogramowania TSG wer. 5.0 z dost pem do danych poprzez sie Internet.

Instrukcja procesu aktywacji oraz obsługi systemu Banku Internetowego dla BS Mikołajki

Linux LAMP, czyli Apache, Php i MySQL

8. Konfiguracji translacji adresów (NAT)

Oprogramowanie FonTel służy do prezentacji nagranych rozmów oraz zarządzania rejestratorami ( zapoznaj się z rodziną rejestratorów FonTel ).

Microsoft Windows GDI

Opis zmian funkcjonalności platformy E-GIODO wprowadzonych w związku z wprowadzeniem możliwości wysyłania wniosków bez podpisu elektronicznego

INFORMATOR TECHNICZNY WONDERWARE. Konfiguracja komputera klienckiego do łączenia się z serwerem IndustrialSQL

SKRÓCONA INSTRUKCJA OBSŁUGI ELEKTRONICZNEGO BIURA OBSŁUGI UCZESTNIKA BADANIA BIEGŁOŚCI

Instrukcja postępowania w celu podłączenia do PLI CBD z uwzględnieniem modernizacji systemu w ramach projektu PLI CBD2

Sieci komputerowe. Definicja. Elementy

Polityka prywatności strony internetowej wcrims.pl

DOTACJE NA INNOWACJE ZAPYTANIE OFERTOWE

Wymiana du ych plików instrukcja dla klientów Grontmij Polska Sp z o. o.

Konfiguracja programu Outlook 2007 do pracy z nowym serwerem poczty (Exchange)

Wdrożenie modułu płatności eservice dla systemu Virtuemart 2.0.x

Wygeneruj 8192-bitowy klucz RSA SHA-256 dla naszego głównego urzędu certyfikacji: ...++

INSTRUKCJA TESTOWANIA USŁUG NA PLATFORMIE ELA-ENT

zgubił całą naszą korespondencję Można by tak wymieniać bez bezpieczeństwa, gdyby była wykonana dnia poprzedniego rozwiązałaby niejeden problem.

InsERT GT Własne COM 1.0

Instrukcja programu PControl Powiadowmienia.

epuap Ogólna instrukcja organizacyjna kroków dla realizacji integracji

ARIES-IT Profesjonalne Usługi Informatyczne dla Firm i Instytucji, Outsourcing IT

PERSON Kraków

Opis obsługi systemu Ognivo2 w aplikacji Komornik SQL-VAT

Archiwum Prac Dyplomowych

Spis treści. Rozdział 1 ewyniki. mmedica - INSTR UKC JA UŻYTKO W NIKA

elektroniczna Platforma Usług Administracji Publicznej

MUltimedia internet Instrukcja Instalacji

Stan prac w zakresie wdrożenia systemów operacyjnych: NCTS2, AIS/INTRASTAT, AES, AIS/ICS i AIS/IMPORT. Departament Ceł, Ministerstwo Finansów

emszmal 3: Automatyczne księgowanie przelewów w menedżerze sprzedaży BaseLinker (plugin dostępny w wersji ecommerce)

Obowiązuje od 30 marca 2015 roku

REGULAMIN PRZESYŁANIA I UDOSTĘPNIANIA FAKTUR W FORMIE ELEKTRONICZNEJ E-FAKTURA ROZDZIAŁ 1. I. Postanowienia ogólne

Regulamin Usługi Certyfikat SSL. 1 Postanowienia ogólne

INSTRUKCJA WebPTB 1.0

Instalacja. Zawartość. Wyszukiwarka. Instalacja Konfiguracja Uruchomienie i praca z raportem Metody wyszukiwania...

Ostatnia cena sprzeda y klienta 1.0 dodatek do Symfonia Faktura dla 1 firmy

Instrukcja logowania do aplikacji ING Agent

Instrukcja dotycząca generowania klucza dostępowego do Sidoma v8

POLITYKA PRYWATNOŚCI SKLEPU INTERNETOWEGO

Program Google AdSense w Smaker.pl

Zasady dostępu i korzystania z usług sieciowych Web API oraz SFTP w ramach systemu RRM TGE / RRM TGE OTC

POLITYKA BEZPIECZEŃSTWA OCHRONY DANYCH OSOBOWYCH W PRAKTYCE LEKARSKIEJ/DENTYSTYCZNEJ.... (nazwa praktyki) wydana w dniu... przez...

Adapter USB do CB32. MDH-SYSTEM ul. Bajkowa 5, Lublin tel./fax lub kom e mail: info@mdh-system.pl

PS IMAGO 3.0 /// instrukcja instalacji

Rozliczenia z NFZ. Ogólne założenia. Spis treści

Regulamin przesy ania faktur VAT w formie elektronicznej w Spó dzielni Mieszkaniowej PROJEKTANT. 1 Postanowienia ogólne

ARKUSZ EGZAMINACYJNY ETAP PRAKTYCZNY EGZAMINU POTWIERDZAJ CEGO KWALIFIKACJE ZAWODOWE CZERWIEC 2012

Regulamin organizacji przetwarzania i ochrony danych osobowych w Powiatowym Centrum Kształcenia Zawodowego im. Komisji Edukacji Narodowej w Jaworze

I. INSTALACJA BAZY DANYCH ORACLE10g EXPRESS EDITION

Protokół DHCP. Patryk Czarnik. Bezpieczeństwo sieci komputerowych MSUI 2009/10. Wydział Matematyki, Informatyki i Mechaniki Uniwersytet Warszawski

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

Instalacja i konfiguracja automatu synchronizacji CDN OFFLINE

REGULAMIN PROMOCJI 2 x WIĘCEJ ZA SCHNEIDER ELECTRIC

Sieci komputerowe cel

Warszawa, r.

Chmura obliczeniowa. do przechowywania plików online. Anna Walkowiak CEN Koszalin

Sieć komputerowa grupa komputerów lub innych urządzeo połączonych ze sobą w celu wymiany danych lub współdzielenia różnych zasobów, na przykład:

API transakcyjne BitMarket.pl

Automatyczne generowanie transakcji do WB 1.0 dodatek do Finanse i Ksi gowo ERP dla 1 firmy

Instrukcja zarządzania systemem informatycznym służącym do przetwarzania danych osobowych

Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych ul. Koszykowa 75, Warszawa

Regulamin serwisu internetowego ramowka.fm

raceboard-s Szybki start

Spring MVC Andrzej Klusiewicz 1/18

Szablon importu z Subiekt 1.0 dodatek do Symfonia Ma a Ksi gowo dla 1 firmy

Symfonia Produkcja Instrukcja instalacji. Wersja 2013

PROGRAMU PARTNERSKIEGO BERG SYSTEM

REGULAMIN INTERNETOWEJ OBSŁUGI KLIENTA

Elementy i funkcjonalno

ARKUSZ EGZAMINACYJNY ETAP PRAKTYCZNY EGZAMINU POTWIERDZAJ CEGO KWALIFIKACJE ZAWODOWE CZERWIEC 2012

Logowanie do systemu Faktura elektroniczna

1. PODMIOTEM ŚWIADCZĄCYM USŁUGI DROGĄ ELEKTRONICZNĄ JEST 1) SALESBEE TECHNOLOGIES SP. Z O.O. Z SIEDZIBĄ W KRAKOWIE, UL.

DE-WZP JJ.3 Warszawa,

Seria P-662HW-Dx. Bezprzewodowy modem ADSL2+ z routerem. Skrócona instrukcja obsługi

System do kontroli i analizy wydawanych posiłków

INSTRUKCJA RUCHU I EKSPLOATACJI SIECI DYSTRYBUCYJNEJ

VSFTPd Użycie certyfikatów niekwalifikowanych w oprogramowaniuvsftpd. wersja 1.3 UNIZETO TECHNOLOGIES SA

newss.pl Ultraszybki internet nowej generacji - UPC Fiber Power

Transkrypt:

Sieci VPN. Zdalna praca i bezpieczeñstwo danych Autor: Marek Serafin ISBN: 978-83-246-1521-6 Format: B5, stron: 160 Wydawnictwo Helion ul. Koœciuszki 1c 44-100 Gliwice tel. 032 230 98 63 e-mail: helion@helion.pl Poznaj i wykorzystaj w praktyce metody korzystania z sieci VPN Na czym opiera siê standard SSL? Jak zestawiaæ tunele VPN w systemach Windows i Linux? Jak po³¹czyæ oddzia³y firm za pomoc¹ tunelu IPSec? Serwery plików i baz danych spotykamy niemal w ka dej firmie. Architektura klient-serwer umo liwia dostêp do aplikacji nie tylko wewn¹trz firmy, ale tak e z dowolnego innego miejsca. Rozwój sieci pozwoli³ wielu organizacjom na sprawn¹ komunikacjê i otworzy³ perspektywy dla tych pracowników, którzy z ró nych wzglêdów wykonuj¹ swoje obowi¹zki poza biurem. Niestety zdalny dostêp do firmowej infrastruktury IT niesie ze sob¹ tak e zagro enia zwi¹zane z mo liwoœci¹ utraty, uszkodzenia lub wydostania siê na zewn¹trz cennych danych. Rozwi¹zaniem tego problemu s¹ ³¹cza szyfrowane, nazywane VPN. Ksi¹ ka Sieci VPN. Zdalna praca i bezpieczeñstwo danych to praktyczny przewodnik dla administratorów sieci firmowych, którzy zajmuj¹ siê wdra aniem rozwi¹zañ umo liwiaj¹cych pracê na odleg³oœæ. Opisuje wszystkie aspekty konfigurowania tuneli VPN z wykorzystaniem protoko³ów SSL (OpenVPN) i IPSec (OpenSWAN) w systemach Linux i Windows. Czytaj¹c j¹, poznasz standard SSL, zasady generowania certyfikatów oraz metody implementacji sieci VPN. Analizuj¹c zawarte w ksi¹ ce przyk³ady, nauczysz siê otwieraæ zdalny dostêp do sieci korporacyjnej, ³¹czyæ oddzia³y firmy za pomoc¹ IPSec i uruchamiaæ tunele VPN w urz¹dzeniach mobilnych. Zagro enia wynikaj¹ce z konstrukcji protoko³u TCP/IP Przesy³anie danych z wykorzystaniem SSL Zapewnianie pracownikom zdalnego dostêpu do zasobów firmy Generowanie kluczy Tworzenie tuneli SSH Instalacja i konfiguracja programu OpenVPN Tunele VPN w urz¹dzeniach mobilnych Implementacja IPSEC/L2TP w systemie Linux Konfiguracja VPN w systemie Windows Zabezpiecz dostêp do swojej sieci. Skorzystaj z wiedzy doœwiadczonego administratora

Spis tre ci Przedmowa... 7 Rozdzia 1. Wst p... 9 Rozdzia 2. S abo protoko ów sieciowych i zwi zane z tym problemy... 11 Rozdzia 3. SSL jako standard bezpiecznego przesy ania danych... 13 3.1. Historia i znaczenie protoko u SSL... 13 3.1.1. Przebieg nawi zania po czenia SSL... 14 3.1.2. Znaczenie zaufanego certyfikatu... 15 3.2. Generowanie certyfikatów przy u yciu programu OpenSSL... 16 3.2.1. Tworzenie w asnego CA... 16 3.2.2. Tworzenie klucza prywatnego dla serwera... 18 3.2.3. Generowanie wniosku o wystawienie certyfikatu... 18 3.2.4. Wystawianie certyfikatu dla serwera... 19 3.2.5. ci ganie has a z klucza prywatnego serwera... 20 3.2.6. Uniewa nianie certyfikatów... 20 3.2.7. Generowanie listy CRL (uniewa nionych certyfikatów)... 21 3.2.8. Ró ne formaty certyfikatów... 21 3.3. Kompilacja biblioteki openssl ze róde... 22 Rozdzia 4. Tunelowanie portów... 25 4.1. Program Stunnel... 26 4.1.1. stunnel.conf... 29 4.1.2. Przyk ad 1... 31 4.1.3. Przyk ad 2... 33 4.2. Tunele SSH... 35 4.2.1. Przyk ad 1... 35 4.2.2. Przyk ad 2 SSH jako Socks Proxy... 37 4.2.3. Przyk ad 3 tunele z przekazywaniem zdalnym... 37 4.2.4. Przyk ad 4 tunel UDP po SSH... 41 Rozdzia 5. OpenVPN praktyczna implementacja tuneli VPN... 45 5.1. Instalacja... 45 5.1.1. Instalacja w systemie Linux Debian... 46 5.1.2. Instalacja przez kompilacj róde programu (Linux)... 46 5.1.3. Instalacja pod systemami MS Windows... 50 5.2. Konfiguracja OpenVPN... 52

4 Sieci VPN. Zdalna praca i bezpiecze stwo danych 5.3. Praktyczny przyk ad zdalny dost p do zasobów firmy dla pracowników... 53 5.3.1. Generowanie certyfikatów SSL... 54 5.3.2. Konfiguracja po stronie serwera... 55 5.3.3. Uruchomienie us ugi serwera OpenVPN... 57 5.3.4. Konfiguracja klienta... 58 5.4. Bardziej z o ona konfiguracja z wieloma u ytkownikami... 59 5.4.1. Przypisywanie sta ych adresów IP u ytkownikom... 62 5.4.2. Pliki ustawie u ytkowników w katalogu ccd... 62 5.4.3. Tworzenie pliku dostep.txt... 63 5.4.4. Testowanie... 64 5.4.5. Logowanie zdarze do pliku... 65 5.5. Uniewa nianie certyfikatów... 67 5.6. czenie oddzia ów firmy... 68 5.6.1. Przyk ad rozwi zania z routerem... 69 5.6.2. Tunel VPN z mostkowaniem... 73 5.6.3. Tunel VPN z mostkowaniem w Windows XP... 78 5.7. OpenVPN w Windows Server z uwierzytelnianiem przez Active Directory... 80 5.7.1. Konfiguracja serwera... 81 5.7.2. Konfiguracja klienta... 83 5.8. OpenVPN w systemach Windows Mobile (PDA)... 84 5.8.1. Instalacja... 85 Rozdzia 6. IPSec... 89 6.1. IPSec a translacja adresów (maskarada)... 92 6.2. IPSec przygotowanie rodowiska w systemie Linux... 93 6.2.1. Instalacja programu OpenSWAN... 94 6.3. Praktyczny przyk ad brama IPSec/VPN dla u ytkowników mobilnych... 95 6.3.1. Konfiguracja bramy IPSec (Linux)... 96 6.4. Konfiguracja klienta Windows... 101 6.5. Debugowanie po czenia... 104 6.6. Konfiguracja z uwierzytelnieniem przez certyfikaty... 106 6.6.1. Konfiguracja OpenSWAN z wykorzystaniem certyfikatów... 106 6.7. Import certyfikatów w systemie Windows... 108 6.7.1. Konfiguracja po czenia... 112 6.8. Dost p z urz dze PDA Windows Mobile 2003, 2005, 2006... 116 6.8.1. Konfiguracja Windows Mobile z kluczem wspó dzielonym (PSK)... 116 6.8.2. Konfiguracja Windows Mobile z certyfikatami... 117 6.9. czenie oddzia ów firmy tunelem IPSec... 119 Rozdzia 7. Windows Server 2003 jako brama VPN/IPSec... 125 7.1. Konfiguracja us ugi Routing i dost p zdalny... 126 7.2. Konfiguracja klienta... 132 7.3. Dost p do VPN na podstawie cz onkostwa w grupie... 133 Rozdzia 8. czenie oddzia ów firmy z wykorzystaniem systemów Windows Server 2003... 139 8.1. Konfiguracja lokalizacji 1 Gliwice... 140 8.2. Konfiguracja lokalizacji 2 Bytom... 145 8.3. Konfiguracja zabezpiecze IPSec... 145 8.4. Debugowanie po czenia... 147 Rozdzia 9. Podsumowanie... 149 Skorowidz... 153

Rozdzia 3. SSL jako standard bezpiecznego przesy ania danych 3.1. Historia i znaczenie protoko u SSL W odpowiedzi na problemy zwi zane z brakiem zabezpiecze w popularnych protoko- ach internetowych firma Netscape Communications Corporation w latach 90. ubieg ego wieku opracowa a protokó SSL. Obecnie najpopularniejsza jest wersja trzecia protoko u SSL 3, poniewa wcze niejsze implementacje zawiera y kilka b dów. W 1996 roku za spraw IETF (ang. Internet Engineering Task Force) powsta a grupa robocza TLS (ang. Transport Layer Security), która ma za zadanie rozwija oraz publikowa standard SSL. W za o eniach SSL powsta jako zabezpieczenie do protoko u http dla potrzeb us ug e-commerce. Jednak dzi ki jego uniwersalno ci mo na wykorzysta go do zabezpieczenia wi kszo ci us ug TCP, a nawet do tworzenia sieci VPN, co zostanie przedstawione w niniejszej ksi ce. Protokó SSL zapewnia nast puj ce podstawowe funkcje bezpiecze stwa: uwierzytelnianie stron czyli potwierdzenie ich autentyczno ci na podstawie certyfikatów, poufno i integralno przesy u tzn. ochron przed pods uchaniem i modyfikacj. Proces uwierzytelniania przebiega przy u yciu asymetrycznych algorytmów kryptograficznych. W zwi zku z powy szym ka da ze stron musi posiada swój w asny klucz prywatny (tajny) oraz klucz publiczny (certyfikat).

14 Sieci VPN. Zdalna praca i bezpiecze stwo danych Po pozytywnym uwierzytelnieniu stron nast puje wymiana danych przy u yciu którego z ustalonych, symetrycznych algorytmów kryptograficznych (s znacznie szybsze). Aby mo liwe by o potwierdzenie autentyczno ci strony bior cej udzia w komunikacji, np. serwera, musi ona wylegitymowa si certyfikatem podpisanym przez zaufane centrum certyfikacji (ang. CA Certificate Authority). CA to zaufana instytucja, która zajmuje si wystawianiem certyfikatów. Do jej obowi zków nale y sprawdzenie prawnych podstaw wnioskowania podmiotu o certyfikat. Chodzi tu g ównie o prawo do nazwy firmy, nazwy domeny itd. Na certyfikat sk adaj si pola zawieraj ce nazw w a ciciela, nazw podmiotu, okres wa no ci, a tak e certyfikat g ównego i ewentualnie po rednich centrów certyfikacji ca o stanowi tzw. cie k certyfikacji. 3.1.1. Przebieg nawi zania po czenia SSL Zanim protoko y warstwy aplikacji b d mog y wymienia dane w bezpieczny sposób, musi nast pi nawi zanie sesji SSL (ang. SSL handshake). Na SSL handshake sk ada si kilka faz negocjacji, które przedstawiono kolejno w punktach. 1. Klient czy si z serwerem i wysy a pakiet pocz tkowy Hello, a wraz z nim numer obs ugiwanej wersji SSL, obs ugiwane algorytmy szyfruj ce, algorytmy kompresji oraz losowy numer zwi zany z rozpocz t sesj (ID). 2. Serwer w odpowiedzi wysy a klientowi numer obs ugiwanej wersji SSL, obs ugiwane algorytmy szyfruj ce, a tak e swój certyfikat (klucz publiczny). 3. Na tym etapie klient sprawdza certyfikat serwera czy jest wa ny oraz czy wystawi go zaufany urz d (CA). Protokó SSL przewiduje tak e mo liwo wys ania przez serwer dania o uwierzytelnienie klienta. Uwierzytelnianie to jest opcjonalne i stosuje si je w okre lonych warunkach. 4. W przypadku pozytywnego uwierzytelnienia serwera klient generuje 48-bajtow liczb zwan pre-master secret i szyfruje j, u ywaj c przy tym klucza publicznego serwera (zawartego w certyfikacie serwera). Liczba pre-master sk ada si z 2 bajtów identyfikuj cych klienta oraz 46 bajtów losowych. 5. Serwer po otrzymaniu liczby pre-master odszyfrowuje j, u ywaj c do tego swojego klucza prywatnego, i porównuje pierwsze 2 bajty identyfikuj ce klienta z danymi, które otrzyma w inicjacyjnym pakiecie Hello. 6. Je li jest wymagane uwierzytelnienie klienta, jest to robione w tej chwili. Wówczas klient musi przes a swój certyfikat. 7. Na podstawie ju wymienionych danych (m.in. pre-master key, losowe dane wygenerowane w punkcie 1.) serwer i klient generuj tzw. master key (znany tylko im).

Rozdzia 3. SSL jako standard bezpiecznego przesy ania danych 15 8. Zarówno klient, jak i serwer na podstawie master-key generuj symetryczne klucze sesyjne, które umo liwiaj im szyfrowanie i sprawdzanie integralno ci przesy anych danych 1. 9. Ko cz c handshake, klient przesy a do serwera wiadomo zaszyfrowan ustalonym kluczem sesyjnym. Wiadomo ta, nazywana ko cowym uzgodnieniem (ang. finished handshake), jest jako pierwsza szyfrowana tajnym kluczem. 10. Serwer odpowiada tak e wiadomo ci zaszyfrowan za pomoc wspólnego klucza. Od tej pory sesja SSL jest nawi zana. 3.1.2. Znaczenie zaufanego certyfikatu Co w praktyce oznacza, e dany certyfikat jest zaufany? Oznacza to tylko (a ) tyle, e zosta wystawiony przez wiarygodne (zaufane) Centrum Certyfikacji CA. Wszystkie popularne przegl darki internetowe, programy pocztowe i inne aplikacje korzystaj ce z protoko u SSL maj zaszyt w sobie na sta e list zaufanych wystawców CA (ich certyfikaty). Dzi ki temu podczas nawi zywania po czenia SSL aplikacja nie zg asza b du, rozpoznaj c, e certyfikat zosta wystawiony przez który z zaufanych CA. Certyfikaty wystawione przez zaufane CA maj znaczenie g ównie dla publicznych serwerów WWW, gdzie rozproszeni po ca ym wiecie klienci musz mie pewno, e serwer, z którym si cz, jest na pewno tym, za jaki si podaje (np. sklep internetowy). W przypadku tworzenia po cze VPN nic nie stoi na przeszkodzie, aby stworzy swoje CA i sam wystawia certyfikaty na w asne potrzeby. Mo esz przecie ufa certyfikatom, które sam wygenerowa e, i instalowa je na laptopach pracowników. W przeciwie stwie do serwera WWW i przegl darek internetowych w zastosowaniach VPN-owych cz sto wa ne jest uwierzytelnienie klienta przez serwer (bram VPN). Nie chcemy przecie, aby do sieci korporacyjnej móg pod czy si ktokolwiek na wiecie posiadaj cy klienta VPN, a jedynie osoby posiadaj ce odpowiednie certyfikaty. Kolejny punkt tego rozdzia u zawiera opis programu OpenSSL wraz z przyk adami tworzenia kluczy, wniosków i certyfikatów. 1 Na podstawie master-key generowanych jest sze kluczy trzy w kierunku serwer-klient i trzy w drug stron. Klucze te s u do szyfrowania i sprawdzania integralno ci danych. Zainteresowanych Czytelników odsy am do dokumentacji dost pnej na stronie korporacji Netscape: http://wp.netscape.com/ eng/ssl3/draft302.txt.

16 Sieci VPN. Zdalna praca i bezpiecze stwo danych 3.2. Generowanie certyfikatów przy u yciu programu OpenSSL Wi kszo programów opisanych w tej ksi ce do uwierzytelniania stron wykorzystuje protokó SSL. Informacje zawarte w tym rozdziale, a w szczególno ci przyk ady generowania kluczy i certyfikatów X.509, wykorzystywane b d cz sto w dalszej cz ci ksi ki. Aby unikn wielokrotnego opisywania tych samych czynno ci w nast pnych rozdzia ach, b d odsy a Czytelnika do instrukcji zawartych w niniejszym punkcie. Do stworzenia w asnego CA, generowania kluczy, wniosków i certyfikatów b dziemy u ywali najpopularniejszej w wiecie open source biblioteki openssl. Biblioteka ta zawiera implementacj protoko ów SSL i TLS oraz wi kszo u ywanych algorytmów kryptograficznych. Korzysta z niej szereg znanych aplikacji wykorzystuj cych algorytmy szyfruj ce, jak np. OpenSSH, OpenVPN, ApacheSSL itp. Biblioteka openssl dostarczana jest standardowo wraz z popularnymi dystrybucjami Linuksa. Najprawdopodobniej bibliotek t masz zainstalowan w systemie. Aby si o tym przekona, wpisz po prostu polecenie openssl. Powinien zg osi si znak zach ty programu: OpenSSL>. W przeciwnym razie musisz j zainstalowa w sposób typowy dla swojej dystrybucji. Ostatecznie mo esz pobra ród a najnowszej wersji ze strony http://openssl.org i w asnor cznie skompilowa program. Wersja instalacyjna pod systemy Windows dost pna jest na stronie http://www.slproweb. com/products.html. Zanim przejdziemy do generowania certyfikatów dla serwerów i klientów, musimy stworzy w asny Urz d Certyfikacji (CA). Na pocz tku dwie uwagi ogólne. Wa ne jest, aby swoje CA utworzy na jakim bezpiecznym komputerze od czonym od internetu albo przynajmniej za firewallem, tak aby nie by on bezpo rednio widoczny w internecie. Wa ne jest tak e regularne robienie kopii bezpiecze stwa wystawionych certyfikatów oraz ca ego katalogu ssl, tak aby w razie potrzeby mo na by o uniewa ni który z certyfikatów. Zak adam, e masz zainstalowany pakiet OpenSSL. Je eli nie, to musisz go zainstalowa, u ywaj c mened era pakietów swojej dystrybucji, lub skompilowa program samodzielnie. 3.2.1. Tworzenie w asnego CA W pierwszej kolejno ci odnajdujemy plik openssl.cnf. Prawdopodobne lokalizacje tego pliku to: /etc/ssl/openssl.cnf dla programu instalowanego z paczek (np. Debian), /usr/local/etc/openssl.cnf w przypadku wersji kompilowanej r cznie,

Rozdzia 3. SSL jako standard bezpiecznego przesy ania danych 17 C:\OpenSSL\bin dla systemów Win32. W pliku tym odnajdujemy sekcj [ CA_default ]. Zmie wpisy u siebie tak, aby wygl da y jak te z listingu 3.2.1.1. Listing 3.2.1.1. Wycinek pliku openssl.cnf [ CA_default ] dir = /etc/ssl # g ówny katalog, w którym zapisywane s pliki certs = /etc/ssl/certs # katalog, w którym zapisywane s certyfikaty crl_dir = $dir/crl # katalog z list certyfikatów uniewa nionych (CRL) private_key = $dir/private/cakey.pem # klucz prywatny CA database = $dir/index.txt # baza, w której przechowywane s informacje o wystawionych certyfikatach wraz ze statusem certificate = $dir/cacert.pem # Certyfikat CA do podpisu wniosków serial = $dir/serial # plik pomocniczy z bie cym numerem inkrementowany # po ka dym wystawieniu certyfikatu crl = $dir/crl.pem # bie ca lista certyfikatów uniewa nionych Upewniamy si, czy istnieje katalog podany w zmiennej dir, czyli /etc/ssl, oraz wszystkie jego podkatalogi. Je eli nie, musimy je za o y. Dla katalogu ssl/private ustaw uprawnienia tak, aby tylko u ytkownik root móg do niego wej. Stwórz pliki /etc/ssl/index.txt oraz /etc/ssl/serial, u ywaj c komend podanych poni ej. root@ca:~# touch /etc/ssl/index.txt #(ma by pusty) root@ca:~# echo 00 > /etc/ssl/serial #(ma zawiera wpis 00) Przyst pujemy do generowania klucza prywatnego centrum certyfikacji CA. Jest to czynno jednorazowa, tzn. po wygenerowaniu klucza prywatnego CA, a nast pnie odpowiadaj cego mu certyfikatu b dziesz u ywa ich do podpisywania innych certyfikatów. Pami taj, aby zarchiwizowa pliki z katalogu /etc/ssl w bezpiecznym miejscu. B d c w katalogu /etc/ssl, wydajemy nast puj ce polecenie: root@ca:/etc/ssl# openssl genrsa -des3 -out private/cakey.pem 1024 Generating RSA private key, 1024 bit long modulus...++++++...++++++ e is 65537 (0x10001) Enter pass phrase for private/cakey.pem: <podaj has o klucza prywatnego CA> Po potwierdzeniu has a do klucza prywatnego CA klucz zostanie zapisany w pliku private/cakey.pem. Nie zapomnij has a do tego klucza, b dzie Ci nieraz potrzebne. Kolejn czynno ci jest wygenerowanie certyfikatu CA. W tym celu wpisujemy nast puj ce polecenie: root@ca:/etc/ssl# openssl req -new -x509 -days 365 -key private/cakey.pem -out cacert.pem Zostaniemy poproszeni o podanie kilku pól zawartych w certyfikacie. Country Name (2 letter code) [AU]:PL State or Province Name (full name) [Some-State]:Slask

18 Sieci VPN. Zdalna praca i bezpiecze stwo danych Locality Name (eg, city) []:Gliwice Organization Name (eg, company) [Internet Widgits Pty Ltd]:Moja Firma Sp. z o.o. Organizational Unit Name (eg, section) []: Common Name (eg, YOUR name) []: ca.firma.pl Email Address []: Znaczenie powy szych pól jest raczej jasne, zwracam jedynie uwag na pole Common Name, które powinno zawiera nazw podmiotu np. nazw u ytkownika lub jednostki. W tym przypadku, gdy generujesz certyfikat dla CA, wpisz tutaj nazw swojej organizacji s ownie (np. Firma SA) albo podaj np. nazw domeny. Po podaniu has a do klucza prywatnego certyfikat zostanie zapisany w pliku cacert.pem. W powy szym przyk adzie czas wa no ci certyfikatu wynosi b dzie 1 rok. Mo na go oczywi cie wyd u y. Na tym zako czyli my tworzenie w asnego urz du CA. Maj c pliki cakey.pem i cacert. pem, czyli klucz prywatny i publiczny CA, mo emy ju wystawia certyfikaty innym podmiotom. 3.2.2. Tworzenie klucza prywatnego dla serwera Celem stworzenia klucza prywatnego dla serwera wpisujemy nast puj ce polecenie: root@ca:/etc/ssl# openssl genrsa -des3 -out private/serverkey.pem 1024 Program OpenSSL zapyta o has o b dzie to has o klucza prywatnego serwera. Klucz prywatny zapisany zostanie w pliku private/serverkey.pem. Nast pn czynno ci jest wygenerowanie wniosku o wystawienie certyfikatu. 3.2.3. Generowanie wniosku o wystawienie certyfikatu root@ca:/etc/ssl# openssl req -new -key private/serverkey.pem -out serverreq.pem B dziesz musia poda has o klucza prywatnego serwera (to, które podawa e przed chwil ). Je eli has o b dzie poprawne, zostaniesz zapytany o dane do wniosku, zgodnie z listingiem poni ej. Country Name (2 letter code) [AU]:PL State or Province Name (full name) [Some-State]:Slask Locality Name (eg, city) []:Gliwice Organization Name (eg, company) [Internet Widgits Pty Ltd]:Moja Firma Sp. z o.o. Organizational Unit Name (eg, section) []: Common Name (eg, YOUR name) []: server.firma.pl Email Address []: Zwracam tutaj uwag na pole Common Name. W przypadku certyfikatów dla serwerów pole to powinno zawiera pe n nazw domenow, pod jak serwer dzia a w internecie

Rozdzia 3. SSL jako standard bezpiecznego przesy ania danych 19 (tzw. FQDN). Jest to wa ne, poniewa je li pole Common Name nie pokrywa si z naw domenow, niektóre programy zg aszaj niezgodno certyfikatu z adresem serwera (zw aszcza przegl darki i klienty poczty). Wniosek zostanie zapisany w pliku serverreq.pem. Kolejnym krokiem b dzie podpisanie go przez nasze CA, czyli wystawienie mu certyfikatu. 3.2.4. Wystawianie certyfikatu dla serwera Celem wystawienia certyfikatu dla podmiotu (serwera) musisz podpisa jego wniosek. Aby to uczyni, wpisz poni sze polecenie. root@ca:/etc/ssl# openssl ca -notext -in serverreq.pem -out servercert.pem Zostaniesz zapytany o has o do klucza prywatnego CA cakey.pem (nie myl z has em do klucza prywatnego serwera!). Nast pnie OpenSSL poka e szczegó y certyfikatu i zapyta, czy chcesz go podpisa. Operacja podpisu wygl da tak, jak pokazano na listingu 3.2.4.1. Listing 3.2.4.1. Komunikaty pojawiaj ce si podczas wystawiania certyfikatu Signature ok Certificate Details: Serial Number: 5 (0x5) Validity Not Before: Sep 17 12:59:06 2007 GMT Not After : Sep 16 12:59:06 2008 GMT Subject: countryname = PL stateorprovincename = Slask organizationname = Moja Firma Sp. z o.o. organizationalunitname = commonname = server.firma.pl X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: OpenSSL Generated Certificate X509v3 Subject Key Identifier: 0E:CE:3E:06:C4:46:53:78:B0:05:AB:18:9B:BA:90:79:9B:A1:A5:C8 X509v3 Authority Key Identifier: keyid:fc:b8:73:29:c6:e4:50:b2:3e:ce:0a:78:8c:62:90:a5:62:3c:87:1b DirName:/C=PL/ST=Slask/L=Gliwice/O=Moja Firma Sp. z o.o./ CN=ca.firma.pl/emailAddress=admin@firma.pl serial:97:1b:4e:ce:0b:5f:ce:e2 Certificate is to be certified until Sep 16 12:59:06 2008 GMT (365 days) Sign the certificate? [y/n]: y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated

20 Sieci VPN. Zdalna praca i bezpiecze stwo danych Mo esz teraz podejrze zawarto plików index.txt oraz serial, które zosta y zaktualizowane po podpisaniu wniosku. Uwa aj na plik index.txt, jest on potrzebny przy odwo ywaniu certyfikatu (generowaniu CRL). Mamy ju par kluczy dla serwera. Przy zestawianiu sieci VPN b d potrzebne te klucze i certyfikaty dla u ytkowników. Generujemy je w sposób analogiczny jak dla serwera, zgodnie z punktami 3.2.2 3.2.4. Zwró uwag, aby w polu Common Name podawa dane jednoznacznie identyfikuj ce u ytkownika np. jego login korporacyjny. Niektóre programy po Common Name identyfikuj u ytkowników. Jeszcze jeden szczegó dotycz cy has a zabezpieczaj cego klucz prywatny. W momencie uruchamiania aplikacji korzystaj cej z tego klucza b dziemy zmuszeni wpisywa has o z klawiatury. W praktyce na serwerach aplikacja cz sto dzia a jako us uga uruchamiana w trakcie startu systemu i oczekiwanie na wpisanie has a jest niezadowalaj cym rozwi zaniem. W takich sytuacjach mo emy ci gn has o z klucza prywatnego. Nale y jednak pami ta, aby dost p do klucza mia jedynie administrator serwera (root). Komenda przedstawiona w punkcie 3.2.5 umo liwia ci gni cie has a z klucza prywatnego. 3.2.5. ci ganie has a z klucza prywatnego serwera # openssl rsa -in private/serverkey.pem -out private/serverkey.pem_bezhasla Nie zalecam natomiast ci gania hase z kluczy prywatnych u ytkowników zdalnych. Jest to dodatkowe zabezpieczenie. W razie kradzie y laptopa dost p do VPN nie b dzie mo liwy bez znajomo ci has a. 3.2.6. Uniewa nianie certyfikatów Pr dzej czy pó niej zajdzie potrzeba uniewa nienia którego z certyfikatów. Klasycznym przyk adem jest odej cie pracownika lub kradzie laptopa. Do uniewa nienia certyfikatu s u y parametr revoke programu OpenSSL. Przyk adowo aby przyst pi do uniewa nienia certyfikatu osobie Jan Kowalski (jkowalskicert.pem), wpisz polecenie: root@srv:/etc/ssl# openssl ca -revoke jkowalskicert.pem OpenSSL zapyta o has o klucza CA i po podaniu prawid owego uniewa ni certyfikat: Using configuration from /usr/lib/ssl/openssl.cnf Enter pass phrase for /etc/ssl/private/cakey.pem: DEBUG[load_index]: unique_subject = "yes" Revoking Certificate 04. Data Base Updated Musimy jeszcze wygenerowa list CRL, w której zapisane s uniewa nione certyfikaty. Robimy to zgodnie z punktem 3.2.7.

Rozdzia 3. SSL jako standard bezpiecznego przesy ania danych 21 3.2.7. Generowanie listy CRL (uniewa nionych certyfikatów) root@ca:/etc/ssl# openssl ca -gencrl -out crl.pem Plik crl.pem nale y przegra pó niej na w a ciwy serwer i wskaza w aplikacji korzystaj cej z certyfikatów (szczegó y w dalszej cz ci ksi ki). 3.2.8. Ró ne formaty certyfikatów Nale y wspomnie jeszcze o ró nych formatach plików, w których zapisywane s klucze i certyfikaty. Niestety, nie ma tu jednego standardu i ró ni producenci preferuj ró ne formaty. Niemniej za pomoc programu OpenSSL mo esz je konwertowa z jednego formatu na inny. Klucze prywatne najcz ciej zapisywane s w formie PEM lub DER (binarny). Dla certyfikatów u ywane s formaty PEM, DER oraz PKCS12. Aplikacje bazuj ce na bibliotece openssl, czyli wszystkie uniksowe, u ywaj na ogó formatu PEM. Formaty DER i PKCS12 rozpowszechnione s w systemach Microsoftu. Format PKCS12 przechowuje w jednym pliku klucz prywatny zabezpieczony has em i odpowiadaj cy mu certyfikat. Poprzednikiem PKCS12 by przestarza y obecnie format PFX; jakkolwiek firma Microsoft u ywa rozszerze plików PFX dla formatu PKCS12. Aby przekonwertowa certyfikat z jednej postaci na drug, musisz przekaza programowi OpenSSL odpowiednie parametry. W tabeli 3.2.8.1 przedstawiono sk adni programu dla kilku popularnych przekszta ce. Tabela 3.2.8.1. Sk adnia programu OpenSSL potrzebna do konwersji certyfikatów Format wej ciowy Format wyj ciowy Sk adnia OpenSSL PEM DER openssl x509 -in cert.pem -out cert.der -outform DER DER PEM openssl x509 -in cert.der inform DER out cert.pem -outform PEM DER key PEM key openssl rsa in input.key inform DER out output.key outform PEM PEM PKCS#12 openssl pkcs12 -export -out cert.p12 -inkey userkey.pem -in usercert.pem PKCS#12 PEM CERT openssl pkcs12 -clcerts -nokeys in cert.p12 -out usercert.pem PKCS#12 PEM KEY openssl pkcs12 -nocerts -in cert.p12 out userkey.pem Aby wy wietli informacj o certyfikacie, np. informacje podane podczas tworzenia wniosku, nale y uruchomi program OpenSSL z nast puj cymi parametrami: ca:/etc/ssl# openssl x509 -in servercert.pem -subject noout subject= /C=PL/ST=Slask/O=Helion/CN=server1

22 Sieci VPN. Zdalna praca i bezpiecze stwo danych Je li dodasz parametr -issuer, OpenSSL zwróci tak e informacj o wystawcy (CA): ca:/etc/ssl# openssl x509 -in servercert.pem -issuer -subject noout subject= /C=PL/ST=Slask/O=Helion/CN=server1 issuer= /C=PL/ST=Slask/L=Gliwice/O=Helion/CN=CA Je eli certyfikat jest w formie binarnej (DER), do powy szej sk adni nale y doda parametr -inform DER. 3.3. Kompilacja biblioteki openssl ze róde Ko cz c rozdzia dotycz cy biblioteki openssl, zamieszczam instrukcj opisuj c, jak skompilowa i zainstalowa bibliotek r cznie. Powodów, dla których mia by samodzielnie kompilowa program OpenSSL, mo e by kilka. Najbardziej prawdopodobny z nich to ch podania przy kompilacji jakiej opcji, której nie przewidzieli twórcy dystrybucji Twojego systemu. Innym powodem mo e by ch zaktualizowania istniej cej wersji w dystrybucjach, które nie maj dobrze zorganizowanego systemu aktualizacji (np. Slackware ;-)). Je li decydujesz si na w asn kompilacj, musisz sukcesywnie aktualizowa bibliotek w razie pojawienia si wykrytych b dów. W dystrybucji Debian, której u ywam, paczka SSL dostarczana wraz z systemem nie by a skompilowana z obs ug biblioteki zlib, w zwi zku z czym nie mog em u y tego algorytmu kompresji w programie Stunnel. Je li z jakich powodów chcesz skompilowa bibliotek openssl, poni ej w punktach zamieszczam opis, jak to zrobi. 1. Pobierz ze strony http://www.openssl.org/source/ ród a najnowszej wersji pakietu i zapisz w katalogu /usr/src/. 2. Porównaj warto MD5 pliku pobranego z sieci (polecenie md5sum) z warto ci udost pnion na stronie openssl.org. 3. Rozpakuj zawarto archiwum poleceniem tar zxf openssl-<nr_wersji>.tar.gz. 4. Przejd do katalogu openssl-<nr_wersji>. 5. Przed przyst pieniem do kompilacji musisz ustali, w którym katalogu program ma zosta zainstalowany oraz z jakimi dodatkowymi opcjami, podaj c je jako parametry skryptu./config. W poni szym przyk adzie skompilujemy program z obs ug biblioteki zlib, a wynikowy program zostanie zainstalowany w katalogu /usr/local/openssl. Wpisz polecenie: srv:~#./config --prefix=/usr/local zlib 6. Je li skrypt./config nie zg osi b du, mo emy przej do w a ciwej kompilacji programu. W tym celu wpisz polecenie make.

Rozdzia 3. SSL jako standard bezpiecznego przesy ania danych 23 7. Proces kompilacji mo e potrwa kilka minut, po jego zako czeniu mo esz przej do ostatniego kroku instalacji skompilowanych plików we w a ciwych katalogach. 8. Aby zako czy instalacj, wpisz polecenie make install.