SlideShare a Scribd company logo
1 of 14
Download to read offline
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
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. 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).
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).
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.
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,
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
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
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
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.
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
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.
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.

More Related Content

What's hot

Vademecum hakera. Zabezpieczenia w Windows
Vademecum hakera. Zabezpieczenia w WindowsVademecum hakera. Zabezpieczenia w Windows
Vademecum hakera. Zabezpieczenia w WindowsWydawnictwo Helion
 
Po prostu własny serwer internetowy
Po prostu własny serwer internetowyPo prostu własny serwer internetowy
Po prostu własny serwer internetowyWydawnictwo Helion
 
FreeBSD. Podstawy administracji systemem
FreeBSD. Podstawy administracji systememFreeBSD. Podstawy administracji systemem
FreeBSD. Podstawy administracji systememWydawnictwo Helion
 
Serwery internetowe Red Hat Linux
Serwery internetowe Red Hat LinuxSerwery internetowe Red Hat Linux
Serwery internetowe Red Hat LinuxWydawnictwo Helion
 
OpenBSD. Podstawy administracji systemem
OpenBSD. Podstawy administracji systememOpenBSD. Podstawy administracji systemem
OpenBSD. Podstawy administracji systememWydawnictwo Helion
 
Bezpieczeństwo w Windows Server 2003. Kompendium
Bezpieczeństwo w Windows Server 2003. KompendiumBezpieczeństwo w Windows Server 2003. Kompendium
Bezpieczeństwo w Windows Server 2003. KompendiumWydawnictwo Helion
 
Krytyczne błędy konfiguracji
Krytyczne błędy konfiguracjiKrytyczne błędy konfiguracji
Krytyczne błędy konfiguracjiLogicaltrust pl
 
OpenBSD. Tworzenie firewalli za pomocą PF
OpenBSD. Tworzenie firewalli za pomocą PFOpenBSD. Tworzenie firewalli za pomocą PF
OpenBSD. Tworzenie firewalli za pomocą PFWydawnictwo Helion
 
100 sposobów na serwery Windows
100 sposobów na serwery Windows100 sposobów na serwery Windows
100 sposobów na serwery WindowsWydawnictwo Helion
 
Red Hat Enterprise Linux i Fedora Core 2. Wprowadzenie
Red Hat Enterprise Linux i Fedora Core 2. WprowadzenieRed Hat Enterprise Linux i Fedora Core 2. Wprowadzenie
Red Hat Enterprise Linux i Fedora Core 2. WprowadzenieWydawnictwo Helion
 
Linux. Rozwiązywanie problemów. Biblia
Linux. Rozwiązywanie problemów. BibliaLinux. Rozwiązywanie problemów. Biblia
Linux. Rozwiązywanie problemów. BibliaWydawnictwo Helion
 

What's hot (20)

ABC Neostrada
ABC NeostradaABC Neostrada
ABC Neostrada
 
Vademecum hakera. Zabezpieczenia w Windows
Vademecum hakera. Zabezpieczenia w WindowsVademecum hakera. Zabezpieczenia w Windows
Vademecum hakera. Zabezpieczenia w Windows
 
Po prostu własny serwer internetowy
Po prostu własny serwer internetowyPo prostu własny serwer internetowy
Po prostu własny serwer internetowy
 
Po prostu sieci komputerowe
Po prostu sieci komputerowePo prostu sieci komputerowe
Po prostu sieci komputerowe
 
FreeBSD. Podstawy administracji systemem
FreeBSD. Podstawy administracji systememFreeBSD. Podstawy administracji systemem
FreeBSD. Podstawy administracji systemem
 
100 sposobów na BSD
100 sposobów na BSD100 sposobów na BSD
100 sposobów na BSD
 
Mandrake Linux
Mandrake LinuxMandrake Linux
Mandrake Linux
 
Wielka księga firewalli
Wielka księga firewalliWielka księga firewalli
Wielka księga firewalli
 
MySQL. Szybki start
MySQL. Szybki startMySQL. Szybki start
MySQL. Szybki start
 
Serwery internetowe Red Hat Linux
Serwery internetowe Red Hat LinuxSerwery internetowe Red Hat Linux
Serwery internetowe Red Hat Linux
 
OpenBSD. Podstawy administracji systemem
OpenBSD. Podstawy administracji systememOpenBSD. Podstawy administracji systemem
OpenBSD. Podstawy administracji systemem
 
Bezpieczeństwo w Windows Server 2003. Kompendium
Bezpieczeństwo w Windows Server 2003. KompendiumBezpieczeństwo w Windows Server 2003. Kompendium
Bezpieczeństwo w Windows Server 2003. Kompendium
 
Krytyczne błędy konfiguracji
Krytyczne błędy konfiguracjiKrytyczne błędy konfiguracji
Krytyczne błędy konfiguracji
 
OpenBSD. Tworzenie firewalli za pomocą PF
OpenBSD. Tworzenie firewalli za pomocą PFOpenBSD. Tworzenie firewalli za pomocą PF
OpenBSD. Tworzenie firewalli za pomocą PF
 
100 sposobów na serwery Windows
100 sposobów na serwery Windows100 sposobów na serwery Windows
100 sposobów na serwery Windows
 
Red Hat Enterprise Linux i Fedora Core 2. Wprowadzenie
Red Hat Enterprise Linux i Fedora Core 2. WprowadzenieRed Hat Enterprise Linux i Fedora Core 2. Wprowadzenie
Red Hat Enterprise Linux i Fedora Core 2. Wprowadzenie
 
Linux w sieci
Linux w sieciLinux w sieci
Linux w sieci
 
Windows Vista PL. Bez kantów
Windows Vista PL. Bez kantówWindows Vista PL. Bez kantów
Windows Vista PL. Bez kantów
 
Linux. Rozwiązywanie problemów. Biblia
Linux. Rozwiązywanie problemów. BibliaLinux. Rozwiązywanie problemów. Biblia
Linux. Rozwiązywanie problemów. Biblia
 
sendmail. Receptury
sendmail. Recepturysendmail. Receptury
sendmail. Receptury
 

Similar to Sieci VPN. Zdalna praca i bezpieczeństwo danych

Core Java Servlets i JavaServer Pages. Tom II. Wydanie II
Core Java Servlets i JavaServer Pages. Tom II. Wydanie IICore Java Servlets i JavaServer Pages. Tom II. Wydanie II
Core Java Servlets i JavaServer Pages. Tom II. Wydanie IIWydawnictwo Helion
 
Windows Server 2003. Bezpieczeństwo sieci
Windows Server 2003. Bezpieczeństwo sieciWindows Server 2003. Bezpieczeństwo sieci
Windows Server 2003. Bezpieczeństwo sieciWydawnictwo Helion
 
Windows Server 2003. Podręcznik administratora
Windows Server 2003. Podręcznik administratoraWindows Server 2003. Podręcznik administratora
Windows Server 2003. Podręcznik administratoraWydawnictwo Helion
 
.NET Framework 2.0. Zaawansowane programowanie
.NET Framework 2.0. Zaawansowane programowanie.NET Framework 2.0. Zaawansowane programowanie
.NET Framework 2.0. Zaawansowane programowanieWydawnictwo Helion
 
Java. Techniki zaawansowane. Wydanie VIII
Java. Techniki zaawansowane. Wydanie VIIIJava. Techniki zaawansowane. Wydanie VIII
Java. Techniki zaawansowane. Wydanie VIIIWydawnictwo Helion
 
Damn Small Linux. Uniwersalny, szybki i bezpieczny system operacyjny
Damn Small Linux. Uniwersalny, szybki i bezpieczny system operacyjnyDamn Small Linux. Uniwersalny, szybki i bezpieczny system operacyjny
Damn Small Linux. Uniwersalny, szybki i bezpieczny system operacyjnyWydawnictwo Helion
 
.Net. Najpilniej strzeżone tajemnice
.Net. Najpilniej strzeżone tajemnice.Net. Najpilniej strzeżone tajemnice
.Net. Najpilniej strzeżone tajemniceWydawnictwo Helion
 
Windows Server 2003. Wysoko wydajne rozwiązania
Windows Server 2003. Wysoko wydajne rozwiązaniaWindows Server 2003. Wysoko wydajne rozwiązania
Windows Server 2003. Wysoko wydajne rozwiązaniaWydawnictwo Helion
 
Windows Server 2008 PL. Księga eksperta
Windows Server 2008 PL. Księga ekspertaWindows Server 2008 PL. Księga eksperta
Windows Server 2008 PL. Księga ekspertaWydawnictwo Helion
 
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsMicrosoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsWydawnictwo Helion
 
Linux dla programistów i użytkowników
Linux dla programistów i użytkownikówLinux dla programistów i użytkowników
Linux dla programistów i użytkownikówWydawnictwo Helion
 
MySQL. Budowanie interfejsów użytkownika. Vademecum profesjonalisty
MySQL. Budowanie interfejsów użytkownika. Vademecum profesjonalistyMySQL. Budowanie interfejsów użytkownika. Vademecum profesjonalisty
MySQL. Budowanie interfejsów użytkownika. Vademecum profesjonalistyWydawnictwo Helion
 

Similar to Sieci VPN. Zdalna praca i bezpieczeństwo danych (20)

Debian Linux. Ćwiczenia
Debian Linux. ĆwiczeniaDebian Linux. Ćwiczenia
Debian Linux. Ćwiczenia
 
Core Java Servlets i JavaServer Pages. Tom II. Wydanie II
Core Java Servlets i JavaServer Pages. Tom II. Wydanie IICore Java Servlets i JavaServer Pages. Tom II. Wydanie II
Core Java Servlets i JavaServer Pages. Tom II. Wydanie II
 
Windows Server 2003. Bezpieczeństwo sieci
Windows Server 2003. Bezpieczeństwo sieciWindows Server 2003. Bezpieczeństwo sieci
Windows Server 2003. Bezpieczeństwo sieci
 
Windows Server 2003. Podręcznik administratora
Windows Server 2003. Podręcznik administratoraWindows Server 2003. Podręcznik administratora
Windows Server 2003. Podręcznik administratora
 
Aurox. Ćwiczenia
Aurox. ĆwiczeniaAurox. Ćwiczenia
Aurox. Ćwiczenia
 
.NET Framework 2.0. Zaawansowane programowanie
.NET Framework 2.0. Zaawansowane programowanie.NET Framework 2.0. Zaawansowane programowanie
.NET Framework 2.0. Zaawansowane programowanie
 
Java. Techniki zaawansowane. Wydanie VIII
Java. Techniki zaawansowane. Wydanie VIIIJava. Techniki zaawansowane. Wydanie VIII
Java. Techniki zaawansowane. Wydanie VIII
 
Damn Small Linux. Uniwersalny, szybki i bezpieczny system operacyjny
Damn Small Linux. Uniwersalny, szybki i bezpieczny system operacyjnyDamn Small Linux. Uniwersalny, szybki i bezpieczny system operacyjny
Damn Small Linux. Uniwersalny, szybki i bezpieczny system operacyjny
 
Po prostu Red Hat Linux 8
Po prostu Red Hat Linux 8Po prostu Red Hat Linux 8
Po prostu Red Hat Linux 8
 
Fedora Core. Ćwiczenia
Fedora Core. ĆwiczeniaFedora Core. Ćwiczenia
Fedora Core. Ćwiczenia
 
.Net. Najpilniej strzeżone tajemnice
.Net. Najpilniej strzeżone tajemnice.Net. Najpilniej strzeżone tajemnice
.Net. Najpilniej strzeżone tajemnice
 
Windows Server 2003. Wysoko wydajne rozwiązania
Windows Server 2003. Wysoko wydajne rozwiązaniaWindows Server 2003. Wysoko wydajne rozwiązania
Windows Server 2003. Wysoko wydajne rozwiązania
 
Windows Server 2008 PL. Księga eksperta
Windows Server 2008 PL. Księga ekspertaWindows Server 2008 PL. Księga eksperta
Windows Server 2008 PL. Księga eksperta
 
Mandrake Linux. Ćwiczenia
Mandrake Linux. ĆwiczeniaMandrake Linux. Ćwiczenia
Mandrake Linux. Ćwiczenia
 
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsMicrosoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
 
Linux dla programistów i użytkowników
Linux dla programistów i użytkownikówLinux dla programistów i użytkowników
Linux dla programistów i użytkowników
 
ABC systemu Windows Vista PL
ABC systemu Windows Vista PLABC systemu Windows Vista PL
ABC systemu Windows Vista PL
 
Jak to się robi w Linuksie
Jak to się robi w LinuksieJak to się robi w Linuksie
Jak to się robi w Linuksie
 
MySQL. Budowanie interfejsów użytkownika. Vademecum profesjonalisty
MySQL. Budowanie interfejsów użytkownika. Vademecum profesjonalistyMySQL. Budowanie interfejsów użytkownika. Vademecum profesjonalisty
MySQL. Budowanie interfejsów użytkownika. Vademecum profesjonalisty
 
Po prostu Red Hat Linux 9
Po prostu Red Hat Linux 9Po prostu Red Hat Linux 9
Po prostu Red Hat Linux 9
 

More from Wydawnictwo Helion

Tworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyTworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyWydawnictwo Helion
 
Blog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikBlog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikWydawnictwo Helion
 
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktycznePozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczneWydawnictwo Helion
 
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesieE-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesieWydawnictwo Helion
 
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IICo potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IIWydawnictwo Helion
 
Makrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuMakrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuWydawnictwo Helion
 
Java. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIJava. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIWydawnictwo Helion
 
Ajax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningAjax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningWydawnictwo Helion
 
PowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykPowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykWydawnictwo Helion
 
Serwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaSerwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaWydawnictwo Helion
 
Serwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanieSerwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanieWydawnictwo Helion
 

More from Wydawnictwo Helion (20)

Tworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyTworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. Projekty
 
Blog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikBlog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnik
 
Access w biurze i nie tylko
Access w biurze i nie tylkoAccess w biurze i nie tylko
Access w biurze i nie tylko
 
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktycznePozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
 
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesieE-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
 
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IICo potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
 
Makrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuMakrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółu
 
Windows PowerShell. Podstawy
Windows PowerShell. PodstawyWindows PowerShell. Podstawy
Windows PowerShell. Podstawy
 
Java. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIJava. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie II
 
JavaScript. Pierwsze starcie
JavaScript. Pierwsze starcieJavaScript. Pierwsze starcie
JavaScript. Pierwsze starcie
 
Ajax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningAjax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny trening
 
PowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykPowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktyk
 
Excel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktykExcel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktyk
 
Access 2007 PL. Seria praktyk
Access 2007 PL. Seria praktykAccess 2007 PL. Seria praktyk
Access 2007 PL. Seria praktyk
 
Word 2007 PL. Seria praktyk
Word 2007 PL. Seria praktykWord 2007 PL. Seria praktyk
Word 2007 PL. Seria praktyk
 
Serwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaSerwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacja
 
AutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PLAutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PL
 
Bazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcieBazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcie
 
Inventor. Pierwsze kroki
Inventor. Pierwsze krokiInventor. Pierwsze kroki
Inventor. Pierwsze kroki
 
Serwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanieSerwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanie
 

Sieci VPN. Zdalna praca i bezpieczeństwo danych

  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.