Sieci VPN. Zdalna praca
                           i bezpieczeñstwo danych
                           Autor: Marek Serafin...
Spis tre ci
                Przedmowa .......................................................................................
4                                                               Sieci VPN. Zdalna praca i bezpiecze stwo danych


        ...
Rozdzia 3.
SSL jako standard
bezpiecznego
przesy ania danych

3.1. Historia i znaczenie protoko u SSL
   W odpowiedzi na p...
14                                       Sieci VPN. Zdalna praca i bezpiecze stwo danych


     Po pozytywnym uwierzytelni...
Rozdzia 3.       SSL jako standard bezpiecznego przesy ania danych                                    15


             8....
16                                      Sieci VPN. Zdalna praca i bezpiecze stwo danych



3.2. Generowanie certyfikatów
 ...
Rozdzia 3.     SSL jako standard bezpiecznego przesy ania danych                                        17


             ...
18                                       Sieci VPN. Zdalna praca i bezpiecze stwo danych


       Locality Name (eg, city)...
Rozdzia 3.     SSL jako standard bezpiecznego przesy ania danych                          19


        (tzw. FQDN). Jest t...
20                                      Sieci VPN. Zdalna praca i bezpiecze stwo danych


     Mo esz teraz podejrze zawar...
Rozdzia 3.     SSL jako standard bezpiecznego przesy ania danych                             21


3.2.7. Generowanie listy...
22                                       Sieci VPN. Zdalna praca i bezpiecze stwo danych


     Je li dodasz parametr -iss...
Rozdzia 3.   SSL jako standard bezpiecznego przesy ania danych                            23


         7. Proces kompilac...
Upcoming SlideShare
Loading in …5
×

Sieci VPN. Zdalna praca i bezpieczeństwo danych

1,736 views

Published on

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.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,736
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Sieci VPN. Zdalna praca i bezpieczeństwo danych

  1. 1. Sieci VPN. Zdalna praca i bezpieczeñstwo danych Autor: Marek Serafin ISBN: 978-83-246-1521-6 Format: B5, stron: 160 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 Wydawnictwo Helion • Tworzenie tuneli SSH ul. Koœciuszki 1c • Instalacja i konfiguracja programu OpenVPN 44-100 Gliwice • Tunele VPN w urz¹dzeniach mobilnych tel. 032 230 98 63 • Implementacja IPSEC/L2TP w systemie Linux e-mail: helion@helion.pl • Konfiguracja VPN w systemie Windows Zabezpiecz dostêp do swojej sieci. Skorzystaj z wiedzy doœwiadczonego administratora
  2. 2. 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
  3. 3. 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
  4. 4. 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. ubie- g 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 pu- blikowa 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 zabezpie- czenia wi kszo ci us ug TCP, a nawet do tworzenia sieci VPN, co zostanie przedsta- wione 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 kryp- tograficznych. W zwi zku z powy szym ka da ze stron musi posiada swój w asny klucz prywatny (tajny) oraz klucz publiczny (certyfikat).
  5. 5. 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 komunika- cji, 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 obo- wi 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).
  6. 6. 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 danych1. 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 inter- netowy). 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 certyfika- tom, które sam wygenerowa e , i instalowa je na laptopach pracowników. W przeciwie stwie do serwera WWW i przegl darek internetowych w zastosowa- niach 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 certy- fikaty. 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.
  7. 7. 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 ge- nerowania 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 algo- rytmy 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 za- ch ty programu: OpenSSL>. W przeciwnym razie musisz j zainstalowa w sposób ty- powy 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 stwo- rzy 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 „wi- doczny” 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 zainsta- lowa , 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,
  8. 8. Rozdzia 3. SSL jako standard bezpiecznego przesy ania danych 17 C:OpenSSLbin — dla systemów Win32. W pliku tym odnajdujemy sekcj [ CA_default ]. Zmie wpisy u siebie tak, aby wy- gl 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 upraw- nienia 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 certy- fikató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 na- st 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
  9. 9. 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 jed- nostki. 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, zgod- nie 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
  10. 10. 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 podpi- sanie 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
  11. 11. 20 Sieci VPN. Zdalna praca i bezpiecze stwo danych Mo esz teraz podejrze zawarto plików index.txt oraz serial, które zosta y zaktuali- zowane po podpisaniu wniosku. Uwa aj na plik index.txt, jest on potrzebny przy od- wo 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 korpora- cyjny. Niektóre programy po Common Name identyfikuj u ytkowników. Jeszcze jeden szczegó dotycz cy has a zabezpieczaj cego klucz prywatny. W mo- mencie uruchamiania aplikacji korzystaj cej z tego klucza b dziemy zmuszeni wpi- sywa 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 niezado- walaj cym rozwi zaniem. W takich sytuacjach mo emy ci gn has o z klucza pry- watnego. 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 certyfi- katu s u y parametr revoke programu OpenSSL. Przyk adowo aby przyst pi do unie- wa 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 certyfi- katy. Robimy to zgodnie z punktem 3.2.7.
  12. 12. 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 korzy- staj 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 prefe- ruj 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; jakkol- wiek firma Microsoft u ywa rozszerze plików PFX dla formatu PKCS12. Aby przekonwertowa certyfikat z jednej postaci na drug , musisz przekaza progra- mowi OpenSSL odpowiednie parametry. W tabeli 3.2.8.1 przedstawiono sk adni pro- gramu 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
  13. 13. 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 pa- rametr -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 sa- modzielnie kompilowa program OpenSSL, mo e by kilka. Najbardziej prawdopo- dobny 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.
  14. 14. 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.

×