informatyka sieci vpn zdalna praca i bezpieczenstwo danych wydanie ii rozszerzone marek serafin ebook

background image

Sieci VPN. Zdalna praca
i bezpieczeñstwo danych.
Wydanie II rozszerzone

Autor:

Marek Serafin

ISBN: 978-83-246-2474-4
Format: 158×235, stron: 248

Poznaj dzia³anie i wykorzystaj w praktyce metody tworzenia tuneli VPN

• Na czym oparty jest standard SSL
• Jak dzia³a protokó³ IPSec
• Jak skonfigurowaæ tunele VPN w systemach Linux, Windows i routerach Cisco?
• Jak w bezpieczny sposób po³¹czyæ oddzia³y firmy?

Rozwój sieci pozwoli³ wielu firmom i organizacjom na sprawn¹ i szybk¹ komunikacjê
i tym samym otworzy³ nowe 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. Jeœli chcesz stworzyæ w³aœnie tak¹
mo¿liwoœæ bezpiecznej choæ zdalnej pracy w Twojej firmie, z tego podrêcznika dowiesz
siê jak to zrobiæ!

Ksi¹¿ka „Sieci VPN. Zdalna praca i bezpieczeñstwo danych. Wydanie II” to drugie,
poszerzone wydanie praktycznego przewodnika dla administratorów sieci firmowych,
którzy zajmuj¹ siê wdra¿aniem rozwi¹zañ umo¿liwiaj¹cych pracê na odleg³oœæ. Ten
bestsellerowy podrêcznik opisuje wszystkie aspekty konfigurowania tuneli VPN
z wykorzystaniem protoko³ów IPSec oraz SSL w systemach Linux, Windows oraz
routerach Cisco. Czytaj¹c j¹ poznasz standard SSL, zasady generowania certyfikatów,
a tak¿e zrozumiesz zasadê dzia³ania protoko³u IPSec. 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
• Generowanie kluczy i certyfikatów
• Zapewnianie pracownikom zdalnego dostêpu do zasobów firmy
• Instalacja i konfiguracja programu OpenVPN
• Tunele VPN w urz¹dzeniach mobilnych
• Implementacja IPSEC/L2TP w systemie Linux
• Konfiguracja IPSec w routerach i Cisco
• Konfiguracja VPN w systemach Windows Server
• Metody ³¹czenia oddzia³ów firmy w systemach Linux, Cisco, Windows

Otwórz bezpieczny, zdalny dostêp do sieci!

background image

Spis tre

Ĉci

Przedmowa ..................................................................................................9

Rozdzia

ä 1. Wstöp ........................................................................................................11

Rozdzia

ä 2. SäaboĈè protokoäów sieciowych i zwiñzane z tym problemy .......................13

Rozdzia

ä 3. SSL jako standard bezpiecznego przesyäania danych .................................15

3.1. Historia i znaczenie protoko

áu SSL ......................................................................... 15

3.1.1. Przebieg nawi

ązania poáączenia SSL ............................................................ 16

3.1.2. Znaczenie zaufanego certyfikatu ................................................................... 17

3.2. Generowanie certyfikatów przy u

Īyciu programu OpenSSL .................................. 17

3.2.1. Tworzenie w

áasnego CA ............................................................................... 18

3.2.2. Tworzenie klucza prywatnego dla serwera .................................................... 20
3.2.3. Generowanie wniosku o wystawienie certyfikatu ......................................... 20
3.2.4. Wystawianie certyfikatu dla serwera ............................................................. 21
3.2.5.

ĝciąganie hasáa z klucza prywatnego serwera ............................................... 22

3.2.6. Uniewa

Īnianie certyfikatów .......................................................................... 22

3.2.7. Generowanie listy CRL (uniewa

Īnionych certyfikatów) .............................. 22

3.2.8. Sprawdzenie wa

ĪnoĞci certyfikatu ................................................................ 23

3.2.9. Ró

Īne formaty certyfikatów .......................................................................... 23

3.3. Kompilacja biblioteki OpenSSL ze

Ĩródeá .............................................................. 24

3.4. Graficzne nak

áadki do programu OpenSSL ............................................................. 25

3.5. Generowanie certyfikatów w

Ğrodowisku Windows Server 2003 .............................. 27

Rozdzia

ä 4. Tunelowanie portów ...................................................................................33

4.1. Program Stunnel ...................................................................................................... 34

4.1.1. stunnel.conf ................................................................................................... 37
4.1.2. Przyk

áad 1 ..................................................................................................... 39

4.1.3. Przyk

áad 2 ..................................................................................................... 41

4.2. Tunele SSH ............................................................................................................. 43

4.2.1. Przyk

áad 1 ..................................................................................................... 43

4.2.2. Przyk

áad 2 — SSH jako Socks Proxy ............................................................ 44

4.2.3. Przyk

áad 3 — tunele z przekazywaniem zdalnym ......................................... 45

4.2.4. Przyk

áad 4 — tunel UDP po SSH .................................................................. 48

Rozdzia

ä 5. OpenVPN — praktyczna implementacja tuneli VPN ...................................51

5.1. Instalacja ................................................................................................................. 51

5.1.1. Instalacja w systemie Linux Debian .............................................................. 52
5.1.2. Instalacja przez kompilacj

Ċ Ĩródeá programu (Linux) ................................... 52

5.1.3. Instalacja pod systemami MS Windows ........................................................ 56

background image

6

Spis tre

Ĉci

5.2. Konfiguracja OpenVPN .......................................................................................... 58
5.3. Praktyczny przyk

áad — zdalny dostĊp do zasobów firmy dla pracowników .......... 59

5.3.1. Generowanie certyfikatów SSL ..................................................................... 60
5.3.2. Konfiguracja po stronie serwera .................................................................... 61
5.3.3. Uruchomienie us

áugi serwera OpenVPN ....................................................... 63

5.3.4. Konfiguracja klienta ...................................................................................... 64

5.4. Bardziej z

áoĪona konfiguracja z wieloma uĪytkownikami ...................................... 67

5.4.1. Przypisywanie sta

áych adresów IP uĪytkownikom ........................................ 68

5.4.2. Pliki ustawie

Ĕ uĪytkowników w katalogu ccd ............................................... 68

5.4.3. Tworzenie pliku dostep.txt ............................................................................ 69
5.4.4. Testowanie .................................................................................................... 70
5.4.5. Logowanie zdarze

Ĕ do pliku ......................................................................... 71

5.5. Uniewa

Īnianie certyfikatów .................................................................................... 72

5.6.

àączenie oddziaáów firmy ....................................................................................... 74
5.6.1. Przyk

áad rozwiązania z routerem .................................................................. 75

5.6.2. Tunel VPN z mostkowaniem ........................................................................ 79
5.6.3. Tunel VPN z mostkowaniem w Windows XP .............................................. 84

5.7. OpenVPN w Windows Server z uwierzytelnianiem przez Active Directory .......... 87

5.7.1. Konfiguracja serwera .................................................................................... 87
5.7.2. Konfiguracja klienta ...................................................................................... 89

5.8. OpenVPN w systemach Windows Mobile (PDA) ................................................... 91

5.8.1. Instalacja ....................................................................................................... 91

Rozdzia

ä 6. IPSec .........................................................................................................95

6.1. IPSec a translacja adresów (maskarada) .................................................................. 98

Rozdzia

ä 7. IPSec w systemie Linux .......................................................................... 101

7.1. IPSec — przygotowanie

Ğrodowiska w systemie Linux ........................................ 101

7.2. Instalacja programu OpenSWAN .......................................................................... 102
7.3. Praktyczny przyk

áad — brama IPSec/VPN dla uĪytkowników mobilnych ........... 104

7.3.1. Konfiguracja bramy IPSec (Linux) ............................................................. 105
7.3.2. Uruchomienie tunelu ................................................................................... 109

7.4. Konfiguracja klienta Windows .............................................................................. 110
7.5. Debugowanie po

áączenia ...................................................................................... 113

7.6. Konfiguracja z uwierzytelnieniem przez certyfikaty ............................................. 114

7.6.1. Konfiguracja OpenSWAN z wykorzystaniem certyfikatów ........................ 115

7.7. Import certyfikatów w systemie Windows ............................................................ 116

7.7.1. Konfiguracja po

áączenia .............................................................................. 121

7.8. Dost

Ċp z urządzeĔ PDA — Windows Mobile 2003, 2005, 2006 ............................. 124

7.9.

àączenie oddziaáów firmy tunelem IPSec ............................................................. 125

Rozdzia

ä 8. Cisco — äñczenie oddziaäów firmy. Site-to-Site IPSec Tunnel .................. 131

8.1. Access-listy w routerach Cisco ............................................................................. 133
8.2.

àączenie oddziaáów firmy — praktyczny przykáad ............................................... 135

8.3. Debugowanie po

áączenia ...................................................................................... 138

8.4.

àączenie oddziaáów firmy z tunelowaniem GRE .................................................. 141

8.5. IPSec z GRE — konfiguracja z trzema routerami ................................................. 145
8.6.

àączenie oddziaáów firmy z mostkowaniem ......................................................... 152

8.7.

àączenie oddziaáów firmy Cisco-Linux ................................................................ 154

Rozdzia

ä 9. Cisco — zdalny dostöp VPN dla pracowników ........................................ 159

9.1. Zdalny dost

Ċp pracowników — konta przechowywane lokalnie na routerze ........ 159

9.2. Konfiguracja klienta VPN ..................................................................................... 163
9.3. Zdalny dost

Ċp pracowników — uwierzytelnianie przez RADIUS ........................ 164

9.3.1. Instalacja MS IAS ....................................................................................... 164
9.3.2. Konfiguracja routera ................................................................................... 169

background image

Spis tre

Ĉci

7

9.4. Uprawnienia do zasobów w sieci wewn

Ċtrznej ..................................................... 170

9.4.1. Ruch przechodz

ący przez tunel VPN (split tunneling) ................................ 171

9.4.2. Filtracja ruchu w tunelu VPN ...................................................................... 172

Rozdzia

ä 10. Cisco ASA .............................................................................................. 175

10.1. ASA jako brama VPN dla pracowników ............................................................ 176
10.2. ASA jako brama SSL-VPN (WEB-VPN) ........................................................... 181

10.2.1. Konfiguracja SSL-VPN w ASA przez SDM .......................................... 181
10.2.2. Po

áączenie testowe .................................................................................. 185

Rozdzia

ä 11. Windows Server jako brama VPN ............................................................ 189

11.1. Konfiguracja us

áugi Routing i dostĊp zdalny ...................................................... 191

11.2. Konfiguracja klienta ........................................................................................... 197
11.3. Dost

Ċp do VPN na podstawie czáonkostwa w grupie w Windows 2003 ............. 200

11.4. Dost

Ċp do VPN na podstawie czáonkostwa w grupie w Windows 2008 ............. 205

11.5. Tablica routingu po stronie klienta ..................................................................... 208
11.6. Firewall — filtrowanie ruchu wewn

ątrz tunelu VPN ......................................... 211

11.6.1. Post

Ċpowanie w systemie Windows 2003 .............................................. 211

11.6.2. Post

Ċpowanie w systemie Windows 2008 .............................................. 212

11.6.3. Dodawanie nowej regu

áy filtru ............................................................... 213

11.7. SSTP — nowy protokó

á dostĊpu VPN ................................................................ 214

Rozdzia

ä 12. ãñczenie oddziaäów firmy

z wykorzystaniem systemów Windows Server 2003 ............................... 215

12.1. Konfiguracja lokalizacji 1 — Gliwice ................................................................ 216
12.2. Konfiguracja lokalizacji 2 — Bytom .................................................................. 220
12.3. Konfiguracja zabezpiecze

Ĕ IPSec ....................................................................... 221

12.4. Debugowanie po

áączenia .................................................................................... 222

Rozdzia

ä 13. Poäñczenia VPN w systemach Windows Mobile ...................................... 223

13.1. Konfiguracja Windows Mobile z uwierzytelnianiem

przez klucz wspó

ádzielony (PSK) ....................................................................... 223

13.2. Konfiguracja Windows Mobile z certyfikatami .................................................. 224

Rozdzia

ä 14. Konfiguracja poäñczenia IPSec w routerach Linksys................................ 227

14.1. Po

áączenie typu Site-to-Site.................................................................................. 228

14.1.1. Wspó

ápraca z innymi urządzeniami .......................................................... 229

14.2. Zdalny dost

Ċp dla pracowników ........................................................................... 230

Rozdzia

ä 15. Podsumowanie ........................................................................................ 233

15.1. Przydatne linki...................................................................................................... 234

Skorowidz ............................................................................................... 237

background image

Rozdzia

ä 7.

IPSec w systemie Linux

7.1. IPSec — przygotowanie

Ĉrodowiska w systemie Linux

W niniejszym punkcie omówi

Ċ przygotowanie systemu do dziaáania z protokoáem IPSec.

Najprawdopodobniej nie obejdzie si

Ċ bez rĊcznej kompilacji niektórych skáadników, dlatego

te

Ī zakáadam, Īe uĪywasz jakiejĞ aktualnej wersji Linuksa oraz masz zainstalowane

narz

Ċdzia do kompilacji programów (

gcc

,

make

itd.).

Z punktu widzenia systemu operacyjnego po

áączenie IPSec moĪna podzieliü na dwie czĊĞci:

1.

Cz

ĊĞü odpowiedzialną za zarządzanie pakietami (protokóá AH/ESP)

— tj. enkapsulacj

Ċ pakietów IP w pakiety IPSec, zabezpieczanie sum kontrolnych

itd. Z racji tego,

Īe operacje te muszą byü bardzo wydajne, ich obsáugą zajmuje

si

Ċ jądro systemu.

2.

Cz

ĊĞü odpowiedzialną za zestawienie poáączenia i póĨniejszą wymianĊ kluczy

(protokó

á IKE). Obsáugą tych funkcji zajmuje siĊ program (demon) dziaáający

w warstwie u

Īytkownika — w systemie Linux to demon Pluto (wchodzący

w sk

áad OpenSWAN).

W zwi

ązku z powyĪszym jądro systemu musi obsáugiwaü protokóá IPSec. Dla systemu

Linux powsta

áy dwa niezaleĪne stosy obsáugi IPSec — starszy KLIPS oraz nowszy

NETKEY. Stos KLIPS, rozwijany od prawie dziesi

Ċciu lat, dobrze sprawdzony, dziaáa

z j

ądrami serii 2.2, 2.4, 2.6. Niestety, kod stosu KLIPS nie wchodzi w skáad Ĩródeá jądra

Linuksa, dlatego konieczne jest na

áoĪenie áatek na Ĩródáa i przekompilowanie jądra. Ze

stosem KLIPS jest tak

Īe problem w przypadku poáączeĔ zza NAT-a — aby udaáo siĊ

zestawi

ü takie poáączenie IPSec, potrzebna jest jeszcze jedna áatka — NAT-Traversal.

Wspomnianych wad nie posiada stos NETKEY, dost

Ċpny początkowo tylko dla jąder

2.6, a obecnie tak

Īe dla 2.4. W przykáadach uĪywaü bĊdziemy stosu NETKEY.

background image

102

Sieci VPN. Zdalna praca i bezpiecze

þstwo danych

W popularnych dystrybucjach systemu Linux domy

Ğlnie dostarczane są wszystkie po-

trzebne modu

áy. SprawdĨ poleceniem

find

, czy rzeczywi

Ğcie masz w systemie odpo-

wiednie pliki. Wpisz polecenie:

root@server:~# find /lib/modules/`uname -r` -name 'esp4*'

Program find powinien odnale

Ĩü plik moduáu jądra o nazwie

esp4.ko

lub

esp4.o

. Je

Ğli

plik istnieje, oznacza to,

Īe twórcy dystrybucji dodali moduáy IPSec. JeĞli kompilowaáeĞ

kernela z w

áasnymi opcjami i nie masz moduáów IPSec, bĊdziesz musiaá przekompilowaü

j

ądro od nowa. PoniĪej podajĊ listĊ opcji, które musisz dodaü jako moduáy. Nazwy w na-

wiasach kwadratowych to dok

áadne nazwy z pliku konfiguracyjnego jądra

.config

.

Uruchom program

make menuconfig

i wybierz poni

Īsze opcje konfiguracyjne:

W ga

áĊzi Networking --> Networking options ---> wybierz

IPsec user configuration interface (NEW) [CONFIG_XFRM_USER]
PF_KEY sockets [CONFIG_NET_KEY]
IP: AH transformation [CONFIG_INET_AH]
IP: ESP transformation [CONFIG_INET_ESP]
IP: IPComp transformation [CONFIG_INET_IPCOMP]
IP: IPsec transport mode [CONFIG_INET_XFRM_MODE_TRANSPORT]
IP: IPsec tunnel mode [CONFIG_INET_XFRM_MODE_TUNNEL]
IP: advanced router [CONFIG_IP_ADVANCED_ROUTER]
Packet socjet [CONFIG_PACKETT]

W ga

áĊzi Device Drivers ---> Character devices ---> wybierz:

Legacy (BSD) PTY support [CONFIG_LEGACY_PTYS]

W ga

áĊzi Device Drivers ---> Network device support ---> wybierz:

PPP (point-to-point protocol) support [CONFIG_PPP]
PPP support for sync tty ports [CONFIG_PPP_SYNC_TTY]
PPP Deflate compression [CONFIG_PPP_DEFLATE]
PPP BSD-Compress compression [CONFIG_PPP_BSDCOMP]

Zapisz zmiany w pliku konfiguracyjnym j

ądra, a nastĊpnie przekompiluj jądro.

7.2. Instalacja programu OpenSWAN

OpenSWAN to implementacja protoko

áu IPSec w systemie Linux rozwijana przez grupĊ

deweloperów, którzy wcze

Ğniej pracowali nad projektem FreeSwan. W trakcie prac nad

projektem FreeSwan dosz

áo do konfliktu i czĊĞü deweloperów rozpoczĊáa pracĊ nad

OpenSWAN. FreeSwan nie jest ju

Ī zresztą rozwijany i nie zalecam uĪywania go (swego

czasu by

á bardzo niestabilny, czego osobiĞcie doĞwiadczyáem).

Je

Īeli Twoja dystrybucja wspiera automatyczną instalacjĊ pakietów, moĪesz zainstalowaü

program OpenSWAN z gotowych paczek. W przypadku Debiana mo

Īesz zainstalowaü

pakiet, u

Īywając programu

apt

.

background image

Rozdzia

ä 7.

i IPSec w systemie Linux

103

Instalacja programu ze

Ĩródeá przebiega nastĊpująco:

1.

ĝciągnij Ĩródáa programu OpenSWAN ze strony projektu: http://www.openswan.org/.

2.

Sprawd

Ĩ podpis cyfrowy pakietu.

3.

Rozpakuj archiwum i wpisz polecenie

make programs install

Je

Īeli podczas kompilacji programu zostanie zgáoszony báąd, upewnij siĊ, czy masz

zainstalowany pakiet z nag

áówkami biblioteki arytmetycznej GMP (GNU Multiple

Precision Arithmetic Library). W przypadku dystrybucji Debian odpowiedni pakiet na-
zywa si

Ċ

libgmp3-dev

. Dla innych dystrybucji paczka powinna nazywa

ü siĊ podobnie

— wa

Īne, aby byá to pakiet „deweloperski”, tzn. zawieraá pliki nagáówkowe.

Je

Ğli kompilacja przebiegnie prawidáowo, w systemie zostanie zainstalowany program za-

rz

ądzający poáączeniami IPSec (/usr/local/sbin/ipsec) oraz demon protokoáu IKE — Pluto.

Ostatnim (opcjonalnym) sk

áadnikiem, który musisz zainstalowaü, jest serwer L2TP

— najlepiej xl2tpd. Napisa

áem: opcjonalnym, gdyĪ nie wszystkie rozwiązania IPSec

u

Īywają tunelowania L2TP. Niemniej implementacja IPSec firmy Microsoft wbudo-

wana w ka

Īdy z systemów Windows wymaga do dziaáania wáaĞnie protokoáu L2TP.

Je

Īeli zamierzasz áączyü siĊ z bramą VPN, uĪywając wbudowanych w Windows mecha-

nizmów IPSec, musisz zainstalowa

ü i skonfigurowaü demon L2TP.

Protokó

á L2TP umoĪliwia przesyáanie ramek poáączenia PPP poprzez protokóá IP

(internet), które to po

áączenie normalnie realizowane jest tylko w bezpoĞrednim poáą-

czeniu punkt-punkt (modemy, linie szeregowe itd.). Samo po

áączenie PPP operuje w war-

stwie drugiego modelu OSI i s

áuĪy do enkapsulacji protokoáów warstwy wyĪszej (IP,

IPX itd.), zapewniaj

ąc jednoczeĞnie uwierzytelnianie oraz kompresjĊ. Poáączenie proto-

ko

áu L2TP z PPP umoĪliwia tunelowanie protokoáu IP w ramach innego poáączenia

IP, dlatego cz

Ċsto wykorzystywane jest w sieciach VPN. Wykorzystanie protokoáu PPP

daje tak

Īe dodatkowe moĪliwoĞci, jak np. przydzielanie adresów IP tunelowi, przeka-

zywanie parametrów sieciowych, takich jak DNS, WINS itp.

Aby zainstalowa

ü demon L2TP, wykonaj nastĊpujące czynnoĞci:

1.

Pobierz

Ĩródáa pakietu ze strony http://www.xelerance.com/software/xl2tpd/.

2.

Sprawd

Ĩ podpis pakietu.

3.

Rozpakuj archiwum i wpisz komend

Ċ

make

Z kompilacj

ą tego programu nie powinno byü problemów.

4.

Wpisz polecenie

make install

, aby zainstalowa

ü skompilowany program

we w

áaĞciwych katalogach (/usr/sbin/xl2tpd).

Naturalnie aby tunelowanie po

áączenia PPP przez protokóá L2TP mogáo dziaáaü, po-

trzebny jest tak

Īe demon PPP (sprawdĨ obecnoĞü polecenia

pppd

). Jednak

Īe pakiet ten

instalowany jest chyba we wszystkich dystrybucjach Linuksa.

background image

104

Sieci VPN. Zdalna praca i bezpiecze

þstwo danych

7.3. Praktyczny przyk

äad

— brama IPSec/VPN
dla u

Ĕytkowników mobilnych

W niniejszym punkcie stworzymy bram

Ċ VPN dla uĪytkowników mobilnych áączących siĊ

zdalnie z siedzib

ą firmy. UĪytkownicy uĪywają na laptopach systemu Microsoft Windows

XP i wbudowanego we

Ĕ „klienta” IPSec. Analogicznie jak w przykáadzie z rozdziaáu 5.

(brama OpenVPN), u

Īytkownicy powinni mieü dostĊp do kilku serwerów w sieci LAN.

Adresy IP u

Īytkowników mobilnych nie są znane, mogą oni áączyü siĊ z róĪnych miejsc,

tak

Īe zza maskarady (poáączenia GPRS, hotspot itd.). Po stronie bramy VPN wykorzystamy

system Linux (j

ądro 2.6 ze stosem IPSec NETKEY) oraz oprogramowanie OpenSWAN.

Konfiguracj

Ċ przedstawia rysunek 7.3.1.

Rysunek 7.3.1.
Brama IPSec
dla u

Īytkowników

mobilnych

W tym przypadku do uwierzytelniania u

Ĕytkowników powinniĈmy uĔyè certyfikatów,

jednak

Ĕe w pierwszej kolejnoĈci wykorzystamy klucz wspóädzielony, a nastöpnie roz-

budujemy konfiguracj

ö o certyfikaty. Zalecam stosowanie takiej kolejnoĈci, gdyĔ

konfiguracja oparta na kluczu wspó

ädzielonym jest prostsza, a ponadto warto

przetestowa

è poäñczenie IPSec, eliminujñc wszelkie moĔliwe komplikacje. Jest to

szczególnie wa

Ĕne z tego powodu, Ĕe instalacja certyfikatów po stronie systemów

Windows jest troch

ö skomplikowana (szczegóäy w nastöpnych punkach rozdziaäu).

background image

Rozdzia

ä 7.

i IPSec w systemie Linux

105

7.3.1. Konfiguracja bramy IPSec (Linux)

Zainstaluj oprogramowanie OpenSWAN oraz demona xl2tpd zgodnie z opisem za-
wartym w poprzednim punkcie.

Konfiguracj

Ċ zaczniemy od przygotowania demona L2TP. Utwórz plik konfiguracyjny

/etc/l2tp/l2tpd.conf.

Zawarto

Ğü pliku konfiguracyjnego l2tpd.conf powinna wyglądaü nastĊpująco (patrz listing

7.3.1.1):

Listing 7.3.1.1. Plik konfiguracyjny demona L2TP

[global]
listen-addr = 85.98.29.251 ;adres internetowy bramy
port = 1701 ;port — zostaw domy

Ğlny

[lns default]
ip range = 192.168.10.198-192.168.10.250 ;pula IP dla klientów
local ip = 85.98.29.251 ;IP lokalny po

áączenia PPP

require chap = yes ;wymagamy uwierzytelniania CHAP
;refuse pap = yes
require authentication = yes
name = ipsec
ppp debug = yes
pppoptfile = /etc/ppp/options.l2tpd ;pozosta

áy

length bit = yes

Zauwa

Ī, Īe wymóg uwierzytelniania dotyczy tutaj poáączenia PPP, a nie L2TP. De-

mon L2TP ma mo

ĪliwoĞü przeprowadzania swojego uwierzytelniania, ale nie jest to

w tym przypadku potrzebne.

Teraz utwórzmy plik z opcjami programu

pppd

/etc/ppp/options.l2tpd. Przyk

áadową

konfiguracj

Ċ przedstawiono na listingu 7.3.1.2.

Listing 7.3.1.2. Konfiguracja po

áączenia PPP

ipcp-accept-local ; pppd zaakceptuje lokalny adres po

áączenia

ipcp-accept-remote ; jw. dla adresu drugiej strony
require-mschap-v2 ; wymagamy uwierzytelniania MSCHAP wersji drugiej
auth
proxyarp
idle 1800
mtu 500
mru 500
# eof

Nast

Ċpnie konfigurujemy plik z danymi uwierzytelniającymi dla PPP — /etc/ppp/

chap-secrets

# Secrets for authentication using CHAP
# client server secret IP addresses
marek * "test" *

gdzie

marek

to nazwa u

Īytkownika, a

"test"

— has

áo.

background image

106

Sieci VPN. Zdalna praca i bezpiecze

þstwo danych

W sytuacji gdyby PPP by

áo jedynym uwierzytelnianiem, mógábyĞ wpisaü w pliku

chap-secrets

wszystkich u

Īytkowników. Nie ma to jednak sensu, gdyĪ podstawowym

uwierzytelnianiem b

Ċdą certyfikaty X.509. Niemniej konfiguracjĊ PPP moĪna wykorzystaü

do przypisywania sta

áych adresów IP dla poszczególnych klientów, np.:

jacek * "test12" 192.168.10.220
michal * "test12" 192.168.10.221

Ostatni element przygotowania bramy IPSec to w

áaĞciwa konfiguracja programu

OpenSWAN, która sprowadza si

Ċ w najprostszym przypadku do edycji dwóch plików

ipsec.conf oraz ipsec.secrets.

Na listingu 7.3.1.3 przedstawiony zosta

á plik ipsec.conf. W tym przypadku metodą

uwierzytelniania jest klucz wspó

ádzielony, a klientami mogą byü uĪytkownicy Windowsa

(XP, Vista) znajduj

ący siĊ za NAT-em.

Listing 7.3.1.3. Konfiguracja programu OpenSWAN z u

Īyciem PSK

version 2.0
config setup
interfaces=%defaultroute
plutodebug=none
forwardcontrol=yes
nat_traversal=yes

virtual_private=%v4:10.0.0.0/8,%v4:172.16.0.0/12,%v4:192.168.0.0/16,%v4:!192.168.10.0/24

conn roadwarrior-l2tp
leftprotoport=17/1701
rightprotoport=17/1701
also=roadwarrior

conn roadwarrior
auth=esp
authby=secret
compress=yes
keyexchange=ike
keyingtries=3
pfs=no
rekey=yes
left=%defaultroute
right=%any
rightsubnet=vhost:%no,%priv
auto=add

#Disable Opportunistic Encryption
include /etc/ipsec.d/examples/no_oe.conf

Twórcy programu OpenSWAN przyj

Ċli konwencjĊ, aby stron poáączenia nie nazywaü

w klasyczny sposób: „serwer” i „klient” (lub te

Ī „Ĩródáo” i „cel”), tylko „strona lewa”

(ang. left) i „strona prawa” (ang. right). Ma to swoje uzasadnienie, poniewa

Ī tak na-

prawd

Ċ i tak zestawiane są dwa niezaleĪne skojarzenia SA — dla kaĪdego z kierunków

transmisji. Poza tym nie zawsze jest jasne, która strona jest bardziej serwerem, a która
klientem (przyk

áad áączenia oddziaáów firm). Przez „left” rozumie siĊ lokalną konfiguracjĊ,

background image

Rozdzia

ä 7.

i IPSec w systemie Linux

107

a przez „right” odleg

áą stronĊ. ZauwaĪ, Īe w przypadku poáączeĔ typu uĪytkownik

mobilny-brama IPSec, patrz

ąc od strony bramy IPSec, strona „right” najczĊĞciej nie jest

znana (nie znamy adresu IP, z którego b

Ċdzie siĊ áączyü uĪytkownik). W przypadku

áączenia dwóch bram IPSec (áączenie oddziaáów firmy) strony „left” i „right” są na ogóá

ĞciĞle okreĞlone. W anglojĊzycznej terminologii pracowników mobilnych, którzy áączą siĊ
z ró

Īnych miejsc kraju i Ğwiata, przyjĊáo siĊ nazywaü roadwarrior (polskim odpo-

wiednikiem b

Ċdą „jeĪdĪący handlowcy w autach z kratką” :-)). Wspominam o terminie

roadwarrior, poniewa

Ī bardzo czĊsto wystĊpuje on w dokumentacji technicznej róĪnych

implementacji VPN.

Przeanalizujmy najwa

Īniejsze wpisy pliku konfiguracyjnego z listingu 7.3.1.3.

version 2.0

— informuje program OpenSWAN,

Īe skáadnia pliku bĊdzie zgodna

z OpenSWAN, a nie z przestarza

áym programem FreeSwan (poprzednik OpenSWAN).

Plik podzielony jest na kilka sekcji. Podstawowe opcje — tzw. globalne — zawarte s

ą

w sekcji

config setup

.

interfaces=%defaultroute

— oznacza interfejs, na którym ma dzia

áaü IPSec. WartoĞü

domy

Ğlna to

%defaultroute

, co oznacza,

Īe uĪyty zostanie „wyjĞciowy” adres IP komputera

(z którego komputer „wychodzi na

Ğwiat”).

Na ogó

á

%defaultroute

jest poprawn

ą wartoĞcią.

plutodebug=none

— definiuje poziom szczegó

áowoĞci (ang. verbose level) demona

pluto

. Opcja przydaje si

Ċ podczas debugowania, gdy nie dziaáa poáączenie. W przypadku

braku jawnie podanej opcji domy

Ğlnie przyjmowana jest wartoĞü

none

. Inne mo

Īliwe

warto

Ğci to:

all

,

raw

,

krypt

,

parsing

,

emitting

,

control

.

all

— bardzo szczegó

áowe debugowanie. Opcja przydatna dla guru IPSec. Zwykli Ğmier-

telnicy mog

ą mieü problemy ze zrozumieniem pojawiających siĊ komunikatów (jak-

kolwiek czasem mo

Īe siĊ przydaü).

Podczas debugowania polecam opcj

Ċ

control

, a gdy wszystko zacznie dzia

áaü —

none

.

forwardcontrol=yes|no

— sprawdza, czy za

áączone jest przekazywanie pakietów IP

(ang. IP forwarding). Je

Īeli nie, to je zaáącza. Po zakoĔczeniu dziaáania tunelu przy-

wraca poprzedni

ą wartoĞü.

nat_traversal=yes|no

— domy

Ğlnie:

no

. Wa

Īna opcja, jeĪeli spodziewasz siĊ poáączeĔ

zza NAT-a (maskarady). Za

áączenie jej sprawi, Īe OpenSWAN bĊdzie oczekiwaá

tak

Īe poáączeĔ na porcie UDP 4500, po którym przenoszone są pakiety IPSec.

virtual_private=

— okre

Ğla podsieci (z zakresu „prywatnych” klas IP), z których

mog

ą áączyü siĊ klienci. Na ogóá podaje siĊ tutaj wszystkie pule IP zdefiniowane do

u

Īytku prywatnego, z wyjątkiem puli uĪywanej w sieci firmowej, do której uĪytkownicy

chc

ą mieü dostĊp poprzez VPN. Innymi sáowy — OpenSWAN potrzebuje znaü adres

IP klienta. Jako

Īe uĪytkownicy mogą áączyü siĊ zewsząd, a my nie znamy prywatnych

klas adresowych u

Īywanych w hotelach, hotspotach itd., podajemy wszystkie „prywatne”

pule adresowe. Z oczywistych wzgl

Ċdów (problem z routingiem) musimy wykluczyü

background image

108

Sieci VPN. Zdalna praca i bezpiecze

þstwo danych

pul

Ċ uĪywaną u nas w firmie. JeĪeli mielibyĞmy pewnoĞü, Īe wszyscy uĪytkownicy

b

Ċdą áączyü siĊ zza NAT-u, z puli adresowej

192.168.1.0/24

— to wystarczy

áoby po-

da

ü tylko tĊ pulĊ. Zwróü teĪ uwagĊ na parametr

rightsubnet

opisany w dalszej cz

ĊĞci.

Sekcja

conn roadwarrior-l2tp

odpowiedzialna jest za po

áączenia L2TP (port UDP 1701).

Jest ona potrzebna, je

Ğli oczekujesz poáączeĔ od klientów wbudowanych w systemy

Windows (u

Īywają L2TP). WaĪne jest, aby sekcja L2TP umieszczona byáa w pliku przed

w

áaĞciwą sekcją odpowiedzialną za poáączenia klientów (u nas:

conn roadwarrior

).

conn roadwarrior

— w

áaĞciwa sekcja poáączeĔ dla pracowników mobilnych.

auth=esp

— okre

Ğla protokóá IPSec. MoĪliwe opcje to

ah

lub

esp

. Zalecan

ą metodą jest

ESP, poniewa

Ī obsáuguje uwierzytelnianie i szyfrowanie.

authby=secret

— okre

Ğla sposób uwierzytelniania stron. WartoĞü

secret

oznacza wspó

á-

dzielony klucz (PSK). W przypadku uwierzytelniania z wykorzystaniem certyfikatów
opcja powinna mie

ü wartoĞü

rsasig

.

compress=yes

— mo

Īliwa kompresja danych.

keyexchange=ike

— warto

Ğü

ike

oznacza,

Īe do uzgodnienia kluczy zostanie uĪyty proto-

á IKE (Internet Key Exchange). UĪycie IKE jest zdecydowanie polecane (takĪe przez

twórców OpenSWAN). R

Ċczne zarządzanie tunelami jest skomplikowane i niepraktyczne.

keyingtries=3

— okre

Ğla, ile prób negocjacji SA moĪe nastąpiü (maksymalnie).

pfs=yes|no

— w

áącza (

yes

) lub wy

áącza (

no

) PFS.

rekey=yes

— okre

Ğla, czy poáączenie po wygaĞniĊciu powinno byü renegocjowane.

Mo

Īliwe wartoĞci to

yes

lub

no

. Domy

Ğlnie:

yes

.

right=%any

— okre

Ğla adres drugiej strony. Sáowo kluczowe

%any

oznacza,

Īe adres

IP nie jest znany (przypadek mobilnych pracowników).

rightsubnet=vhost:%no,%priv

— opcja

rightsubnet

okre

Ğla podsieü drugiej strony.

W przypadku po

áączeĔ typu

Roadwarriors

z mo

Īliwym NAT-em oraz „nie NAT-em”

powinna mie

ü wartoĞü

vhost:%no,%priv

. Przez NAT oraz „nie NAT” rozumiem,

Īe

u

Īytkownicy mogą áączyü siĊ zza NAT-u lub teĪ mieü „zewnĊtrzny” adres IP i obie

konfiguracje b

Ċdą dziaáaü jednoczeĞnie.

Wi

Ċcej szczegóáów dotyczących tego zagadnienia znajdziesz na stronie http://www.

openswan.org/docs/local/README.NAT-Traversal.

auto=add

— opcja przyjmuje warto

Ğci:

start

,

add

,

ignore

(domy

Ğlna!) oraz

manual

.

Znaczenie poszczególnych warto

Ğci jest nastĊpujące:

 start

— za

áaduj konfiguracjĊ i inicjuj poáączenie z drugą stroną. WartoĞü

najcz

ĊĞciej uĪywana w przypadku poáączeĔ dwóch routerów lub jeĞli strona

jest klientem (ma inicjowa

ü poáączenie z drugą stroną).

background image

Rozdzia

ä 7.

i IPSec w systemie Linux

109

 add

— za

áaduj konfiguracjĊ i odpowiadaj na przychodzące poáączenia (czekaj

na po

áączenie od drugiej strony). WartoĞü uĪywana dla konfiguracji typu

roadwarriors — nie znamy ani czasu, ani adresu IP, z jakiego po

áączy siĊ

mobilny pracownik. Jedyne, co mo

Īemy zrobiü, to odpowiedzieü na jego poáączenia.

 ignore

— ignoruje sekcj

Ċ tego poáączenia. Uwaga: jest to wartoĞü domyĞlna,

dlatego musisz przypisa

ü jakąĞ wartoĞü sekcjom, które mają dziaáaü.

 manual

— opcja u

Īywana przy rĊcznej konfiguracji wymiany kluczy (zamiast

u

Īycia IKE). Opcja niepolecana. Nie bĊdziemy rozpatrywali tego przypadku.

Zainteresowanych odsy

áam do dokumentacji programu OpenSWAN.

W ostatniej linijce pliku konfiguracyjnego widzimy do

áączony (ang. include) plik:

#Disable Opportunistic Encryption
include /etc/ipsec.d/examples/no_oe.conf

Do

áączenie powyĪszego pliku wyáącza tzw. szyfrowanie oportunistyczne, które w tym

przypadku nie jest potrzebne (strony uwierzytelniaj

ą siĊ w inny sposób), a pozostawienie

go za

áączonego skutkowaáoby serią komunikatów w logach systemowych, mówiących

o niemo

ĪnoĞci sprawdzenia informacji w DNS-ie. Idea szyfrowania oportunistycznego

polega na mo

ĪliwoĞci uwierzytelnienia dowolnych hostów w internecie bez wczeĞniejszej

wymiany tajnego klucza (lub kluczy publicznych). Uwierzytelnienie hosta odbywa si

Ċ tutaj

na podstawie informacji pobranych z bezpiecznych serwerów DNS (ang. Secure DNS).
Na razie bezpieczne DNS-y nie wyst

Ċpują w powszechnym uĪyciu.

Ogólna uwaga odno

Ĉnie do skäadni pliku ipsec.conf. Pamiötaj, aby pomiödzy sekcjami

po

äñczeþ byäa jedna linijka przerwy. Nazwa sekcji nie powinna zaczynaè siö od spacji

czy tabulacji. Opcje w ramach sekcji mog

ñ zaczynaè siö od tabulacji. WczeĈniejsze

wersje programu by

äy na to doĈè wraĔliwe, a zdiagnozowanie bäödu kosztowaäo mnie

du

Ĕo czasu.

Pozosta

á nam jeszcze do konfiguracji plik /etc/ipsec.secrets. W przypadku wspóádzielonego

klucza oraz po

áączeĔ z nieznanych adresów IP skáadnia pliku jest nastĊpująca:

85.98.29.251 %any: PSK "tajnehaslo"

gdzie

85.98.29.251

to „zewn

Ċtrzny” adres IP lokalnej strony (odpowiednik

%defaultroute

),

a

%any

— adres drugiej strony. Zadbaj o to, aby mo

ĪliwoĞü odczytu pliku miaá tylko

u

Īytkownik root (

chmod 600

).

7.3.2. Uruchomienie tunelu

Aby uruchomi

ü tunel (proces nasáuchiwania), wpisz polecenie:

ipsec setup start

lub u

Īyj skryptu startowego z dystrybucji:

/etc/init.d/ipsec start

background image

110

Sieci VPN. Zdalna praca i bezpiecze

þstwo danych

7.4. Konfiguracja klienta Windows

W tym punkcie zajmiemy si

Ċ konfiguracją poáączenia IPSec w systemach Windows,

tak aby ich u

Īytkownicy mogli áączyü siĊ z naszą bramą linuksową skonfigurowaną

w punkcie 7.3.1. Metod

ą uwierzytelniania bĊdzie klucz wspóádzielony oraz dodatkowe

uwierzytelnianie w po

áączeniu PPP (MS-CHAP v2). UĪyjemy wbudowanego w Windowsa

klienta IPSec (2000, XP, 2003, Vista).

Po

äñczenia z uĔyciem wspóädzielonego klucza (PSK) przetestowaäem, uĔywajñc Win-

dowsa XP (SP2). Przegl

ñdajñc archiwum list dyskusyjnych, wyczytaäem, iĔ konfigu-

racja w systemach Windows 2000 nie dzia

äa prawidäowo z kluczem wspóädzielonym.

Niestety, jako

Ĕe nie mam juĔ nigdzie „w uĔyciu” systemu Windows 2000, nie by-

äem w stanie tego sprawdziè. Konfiguracja z wykorzystaniem certyfikatów dziaäa na-
tomiast prawid

äowo. W zwiñzku z powyĔszym jeĈli zamierzasz siö äñczyè, uĔywajñc

systemu Windows 2000, przejd

Ē, proszö, do nastöpnego punktu rozdziaäu opisu-

j

ñcego konfiguracjö opartñ na certyfikatach.

W przypadku Windowsa XP i nowszych sprawa sprowadza si

Ċ do dodania nowego poáą-

czenia przy u

Īyciu kreatora. Aby dodaü nowe poáączenie, wykonaj poniĪsze czynnoĞci:

1.

Wejd

Ĩ do Panelu sterowania i wybierz Poáączenia sieciowe.

2.

Uruchom Kreatora nowego po

áączenia. Kreator zapyta o rodzaj poáączenia

— wybierz opcj

Ċ Poáącz z siecią w miejscu pracy — tak jak pokazano

na rysunku 7.4.1. Nast

Ċpnie kliknij przycisk Dalej.

Rysunek 7.4.1.
Kreator nowego
po

áączenia w systemie

Windows XP

3.

W nast

Ċpnym kroku wybierz opcjĊ Poáączenie wirtualnej sieci prywatnej,

nast

Ċpnie kliknij przycisk Dalej.

4.

Wybierz nazw

Ċ dla poáączenia, np.

ipsec1

.

5.

Podaj adres IP lub nazw

Ċ DNS bramy VPN (patrz rysunek 7.4.2).

background image

Rozdzia

ä 7.

i IPSec w systemie Linux

111

Rysunek 7.4.2.
Kreator po

áączenia VPN

— podaj adres IP
bramy IPSec

6.

Zako

Ĕcz pracĊ kreatora, klikając przycisk ZakoĔcz. Nowe poáączenie powinno

widnie

ü na liĞcie poáączeĔ sieciowych — w grupie Wirtualna sieü prywatna.

Przed uruchomieniem naszego po

áączenia trzeba zmodyfikowaü jeszcze dwie

opcje. Wejd

Ĩ we wáaĞciwoĞci nowego poáączenia — kliknij prawym przyciskiem

myszy ikon

Ċ nowego poáączenia i wybierz z menu opcjĊ WáaĞciwoĞci. PostĊpuj

wed

áug poniĪszych punktów.

7.

Przejd

Ĩ do zakáadki Zabezpieczenia i wybierz opcjĊ Ustawienia protokoáu

IPSec (patrz rysunek 7.4.3).

Rysunek 7.4.3.
W

áaĞciwoĞci

po

áączenia IPSec

— wpisz has

áo (PSK)

background image

112

Sieci VPN. Zdalna praca i bezpiecze

þstwo danych

8.

Zaznacz opcj

Ċ UĪyj klucza wstĊpnego do uwierzytelnienia oraz wpisz w polu

Klucz has

áo podane w pliku /etc/ipsec.secrets na Linuksie — w naszym

przypadku b

Ċdzie to:

tajnehaslo

. Zatwierd

Ĩ przyciskiem OK.

9.

Nast

Ċpnie przejdĨ do zakáadki Sieü i zmieĔ wartoĞü pola Typ wirtualnej sieci

prywatnej (VPN) z Automatyczny na Sie

ü VPN z protokoáem L2TP IPSec

— patrz rysunek 7.4.4.

Rysunek 7.4.4.
W

áaĞciwoĞci

po

áączenia IPSec

— wybierz protokó

á

L2TP

10.

Zapisz zmiany.

W tej chwili mo

Īesz poáączyü siĊ z bramą IPSec. Kliknij dwukrotnie myszką ikonĊ

po

áączenia VPN (patrz rysunek 7.4.5). W oknie dialogowym podaj nazwĊ uĪytkownika

i has

áo, a nastĊpnie kliknij przycisk Poáącz.

Rysunek 7.4.5.
Pierwsze
po

áączenie IPSec

background image

Rozdzia

ä 7.

i IPSec w systemie Linux

113

Nazwa u

Īytkownika i hasáo to oczywiĞcie dane uwierzytelniające poáączenie PPP

(patrz plik /etc/ppp/chap-secrets na Linuksie).

7.5. Debugowanie po

äñczenia

Je

Īeli wykonaáeĞ wszystkie kroki z poprzednich punktów, poáączenie powinno zadziaáaü

od razu. W praktyce pewnie pojawi

ą siĊ jakieĞ komplikacje. W tym punkcie podam parĊ

porad dotycz

ących tego, jak odnaleĨü báąd.

W przypadku po

áączeĔ Windows-Linux (OpenSWAN) opartych na PSK báąd wystąpi

prawdopodobnie gdzie

Ğ po stronie Linuksa. Konfiguracja Windowsa jest bowiem tak

prosta,

Īe trudno byáoby w niej coĞ Ĩle zrobiü.

Zacznij od przekierowania wszystkich logów systemowych do jednego pliku, aby

áatwiej

by

áo podglądaü na bieĪąco, co siĊ dzieje. W pisz do pliku /etc/syslog.conf poniĪszą linijkĊ:

*.* /var/log/all

Nast

Ċpnie przeáaduj konfiguracjĊ demona Syslog. Wpisz komendĊ

killall -HUP syslogd

.

W produkcyjnym serwerze plik mo

Īe szybko przyrastaü. PamiĊtaj, aby po zakoĔczonych

testach usun

ąü wpis z konfiguracji Sysloga.

Po

áącz siĊ z serwerem na innej konsoli (jeĞli pracujesz lokalnie, przeáącz siĊ na drugą

konsol

Ċ). Wpisz polecenie:

tail -f /var/log/all

Na tej konsoli b

Ċdziesz miaá staáy podgląd logów systemowych. JeĪeli na serwerze

dzia

áają inne usáugi, które moĪesz wyáączyü (np. poczta, dhcp itd.), zrób to — im mniej

logów, tym

áatwiej je przeglądaü.

Prze

áącz siĊ na pierwszą konsolĊ i sprawdĨ nastĊpujące rzeczy:

1.

Czy dzia

áa demon L2TP — wpisz:

ipsecgw:~# ps aux|grep l2tp
root 16659 0.0 0.0 1656 560 ? Ss Oct31 0:00 xl2tpd

Powiniene

Ğ zobaczyü proces. JeĪeli nie dziaáa — uruchom go, wpisując

xl2tpd

.

Sprawd

Ĩ ponownie, czy widnieje na liĞcie procesów. JeĪeli nie — zobacz,

co mówi

ą logi na drugiej konsoli.

2.

Sprawd

Ĩ poleceniem

netstat

, czy serwer nas

áuchuje na portach 4500 (NAT

Traversal), 500 (Pluto — IKE) oraz 1701 (L2TP). W tym celu wpisz polecenie:

ipsecgw:~# netstat -anp|grep udp
udp 0 0 127.0.0.1:4500 0.0.0.0:* 26771/pluto
udp 0 0 85.98.29.251:4500 0.0.0.0:* 26771/pluto
udp 0 0 192.168.10.98:4500 0.0.0.0:* 26771/pluto

background image

114

Sieci VPN. Zdalna praca i bezpiecze

þstwo danych

udp 0 0 85.98.29.251:1701 0.0.0.0:* 16659/xl2tpd
udp 0 0 127.0.0.1:500 0.0.0.0:* 26771/pluto
udp 0 0 85.98.29.251:500 0.0.0.0:* 26771/pluto
udp 0 0 192.168.10.98:500 0.0.0.0:* 26771/pluto

Powiniene

Ğ zobaczyü wynik podobny do powyĪszego. W ostatniej kolumnie

mo

Īesz zobaczyü nazwĊ procesu powiązanego z danym portem.

3.

Upewnij si

Ċ, czy firewall nie blokuje potrzebnych portów UDP oraz protokoáu

ESP. Najlepiej, je

Ğli na czas testów w ogóle wyáączysz firewalla, tzn. ustawisz

domy

Ğlną politykĊ zapory na

ACCEPT

.

4.

Sprawd

Ĩ, czy w systemie na pewno zainstalowany jest program

pppd

— wpisz polecenie:

which pppd

.

5.

Upewnij si

Ċ, Īe w pliku ipsec.conf widnieje wpis

pfs=no

, który oznacza,

Īe PFS

nie jest konieczne (mo

Īliwe, gdy druga strona obsáuguje). Implementacja

Microsoftu nie obs

áuguje PFS, dlatego nie moĪemy go wymuszaü.

Po stronie Windowsa debugowanie jest utrudnione z racji braku „sysloga”. Mo

Īesz

zainstalowa

ü program Wireshark (nastĊpca Ethereala) — bardzo dobry sniffer sieciowy

— i analizowa

ü nim fazy poáączenia.

Je

Īeli mimo sprawdzenia powyĪszych punktów dalej nie udaje siĊ zestawiü poáączenia,

spróbuj po

áączyü siĊ, uĪywając innego komputera klienckiego (innego Windowsa).

Upewnij si

Ċ, Īe Īaden program typu firewall (zwáaszcza „kombajny” typu Norton Inter-

net Security) nie blokuje po

áączenia.

7.6. Konfiguracja z uwierzytelnieniem

przez certyfikaty

W niniejszym punkcie opisz

Ċ konfiguracjĊ podobną do poprzedniej, tzn. utworzymy

bram

Ċ IPSec dla mobilnych uĪytkowników, z tą tylko róĪnicą, Īe do uwierzytelniania

u

Īyjemy certyfikatów X.509, a nie klucza wspóádzielonego. Konfiguracja taka jest zdecy-

dowanie zalecana przy zdalnym dost

Ċpie pracowników, gdyĪ umoĪliwia w razie potrzeby

uniewa

Īnienie certyfikatu uĪytkownikowi.

Przed przej

Ğciem do konfiguracji bramy IPSec oraz komputerów klienckich musimy

przygotowa

ü klucze i certyfikaty dla serwera (bramy IPSec) oraz uĪytkowników. Szcze-

áowy opis generowania certyfikatów zostaá omówiony w rozdziaáach 3. (SSL) oraz 5.

(OpenVPN). Aby nie powiela

ü tych samych informacji, proszĊ CiĊ o zajrzenie do instrukcji

zawartej w poprzednich rozdzia

áach.

Zak

áadam tutaj, Īe masz juĪ wygenerowane klucze i certyfikaty dla serwera i uĪytkownika

(na razie jeden u

Īytkownik wystarczy).

Konfiguracja po stronie Linuksa (bramy VPN) znacz

ąco siĊ nie róĪni — wiĊcej pracy

b

Ċdzie w systemie Windows.

background image

Rozdzia

ä 7.

i IPSec w systemie Linux

115

7.6.1. Konfiguracja OpenSWAN

z wykorzystaniem certyfikatów

Po stronie Linuksa — w stosunku do konfiguracji z u

Īyciem PSK — zmianie ulegają

tylko pliki ipsec.conf oraz ipsec.secrets, pozosta

áe konfiguracje są identyczne (demon

L2TP, konfiguracja

pppd

).

Konfiguracj

Ċ wykonamy wedáug nastĊpujących punktów:

1.

Zapisz klucz prywatny serwera jako /etc/ipsec.d/private/serverkey.pem.

2.

Zapisz certyfikat serwera jako /etc/ipsec.d/certs/servercrt.pem.

3.

Zapisz certyfikat CA jako /etc/ipsec.d/cacerts/cacert.pem.

4.

Plik z list

ą uniewaĪnionych certyfikatów (póĨniejszy etap) powinien

znajdowa

ü siĊ w katalogu /etc/ipsec.d/crls/.

5.

Dokonaj zmian w pliku /etc/ipsec.secrets, tak aby mia

á nastĊpującą skáadniĊ:

: RSA serverkey.pem "supertajnehaslo"

gdzie:

serverkey.pem

to nazwa pliku z kluczem prywatnym, którego program

OpenSWAN oczekuje w katalogu /etc/ipsec.d/private/,

supertajnehaslo

to has

áo do klucza prywatnego serwera. W przypadku

gdy klucz prywatny nie jest zabezpieczony has

áem, moĪna je pominąü.

Wstawienie warto

Ğci

%prompt

spowoduje,

Īe program OpenSWAN przy

starcie b

Ċdzie pytaá o hasáo do klucza.

6.

Utwórz plik konfiguracyjny /etc/ipsec.conf zgodny z listingiem 7.6.1.1.

Listing 7.6.1.1. Konfiguracja programu OpenSWAN z wykorzystaniem certyfikatów

version 2.0
config setup
interfaces=%defaultroute
plutodebug=none
forwardcontrol=yes
nat_traversal=yes
virtual_private=%v4:10.0.0.0/8,%v4:172.16.0.0/12,

´

%v4:192.168.0.0/16,%v4:!192.168.10.0/24

conn roadwarrior-l2tp
leftprotoport=17/1701
rightprotoport=17/1701
also=roadwarrior

conn roadwarrior
auth=esp
authby=rsasig
compress=yes
keyexchange=ike
keyingtries=3

background image

116

Sieci VPN. Zdalna praca i bezpiecze

þstwo danych

pfs=no
left=%defaultroute
leftcert=/etc/ipsec.d/certs/servercrt.pem
right=%any
rightrsasigkey=%cert
rightsubnet=vhost:%no,%priv
rightca=%same
auto=add

#Disable Opportunistic Encryption
include /etc/ipsec.d/examples/no_oe.conf

Opcja

rightrsasigkey=%cert

oznacza,

Īe druga strona uwierzytelni siĊ,

przedstawiaj

ąc swój certyfikat.

Opcja

rightca=%same

oznacza,

Īe certyfikat drugiej strony (klienta) musi byü

wystawiony przez to samo CA co certyfikat serwera, czyli przez CA, którego
certyfikat znajduje si

Ċ na serwerze w pliku /etc/ipsec.d/cacerts/cacert.pem.

7.

Uruchom us

áugĊ IPSec. Wpisz polecenie:

ipsec setup start

.

W tym momencie brama jest ju

Ī gotowa do dziaáania. W nastĊpnym punkcie skonfi-

gurujemy po

áączenie w systemie Windows.

7.7. Import certyfikatów

w systemie Windows

Zak

áadam, Īe wygenerowaáeĞ juĪ uĪytkownikowi klucz prywatny i wystawiáeĞ mu cer-

tyfikat podpisany przez swoje CA. Powiniene

Ğ mieü juĪ pliki user.key i user.crt. BĊdziesz

musia

á przekonwertowaü klucz i certyfikat do formatu P12 uĪywanego w systemach

Windows. W tym celu na komputerze CA wpisz polecenie:

ca:/etc/ssl# openssl pkcs12 -export -out user.p12 -inkey private/user.key -in user.crt

Program OpenSSL zapyta o has

áo do klucza prywatnego, a nastĊpnie utworzy plik

w formacie P12. Tak utworzony plik przegraj za pomoc

ą bezpiecznego medium (SCP,

pendrive) na komputer kliencki z systemem Windows. Przegraj te

Ī certyfikat CA — plik

CA.crt (lub cacert.pem — w zale

ĪnoĞci od przyjĊtej konwencji).

Nie instaluj i nie importuj certyfikatów w systemie Windows poprzez klikni

öcie pliku.

Ta metoda nie dzia

äa prawidäowo. Zamiast tego zawsze uĔywaj przystawki MMC do

importu kluczy i certyfikatów!

Procedur

Ċ importu certyfikatów przeprowadĨ wedáug zamieszczonej instrukcji.

Utworzymy teraz przystawk

Ċ MMC, dziĊki której bĊdziesz mógá importowaü klucze

i certyfikaty. Wpisz w pasku Uruchom menu Start polecenie

mmc

— uruchomi si

Ċ kon-

sola MMC.

background image

Rozdzia

ä 7.

i IPSec w systemie Linux

117

Z menu Plik konsoli MMC wybierz opcj

Ċ Dodaj/UsuĔ przystawkĊ… (patrz rysunek 7.7.1).

Rysunek 7.7.1. Konsola MMC — wybierz opcj

Ċ Dodaj przystawkĊ

Pojawi si

Ċ nowe okno Dodaj/UsuĔ przystawkĊ — kliknij przycisk Dodaj (patrz rysu-

nek 7.7.2).

Rysunek 7.7.2. Konsola MMC — dodawanie przystawki

background image

118

Sieci VPN. Zdalna praca i bezpiecze

þstwo danych

Na li

Ğcie dostĊpnych przystawek zaznacz Certyfikaty, a nastĊpnie kliknij Dodaj — uru-

chomi si

Ċ kreator konfiguracji przystawki. Wybierz opcjĊ Konto komputera, nastĊpnie

kliknij Dalej (patrz rysunek 7.7.3).

Rysunek 7.7.3.
Dodawanie
przystawki Certyfikaty

W nast

Ċpnym kroku wybierz opcjĊ Komputer lokalny oraz kliknij przycisk ZakoĔcz.

Z menu Plik wybierz opcj

Ċ Zapisz, aby zapisaü gotową przystawkĊ na dysku. Nazwij ją

sobie, jak chcesz — np.

ipsec.mmc

.

Maj

ąc gotową przystawkĊ, moĪesz zaimportowaü certyfikat. W tym celu rozwiĔ przy-

stawk

Ċ Certyfikaty, a nastĊpnie kliknij prawym przyciskiem myszy folder Osobisty.

Z menu wybierz Wszystkie zadania, a nast

Ċpnie opcjĊ Importuj… — uruchomi siĊ

kreator importu certyfikatów (patrz rysunek 7.7.4).

Rysunek 7.7.4.
Z menu Wszystkie
zadania wybierz
opcj

Ċ Importuj

background image

Rozdzia

ä 7.

i IPSec w systemie Linux

119

W kreatorze dodawania certyfikatów wska

Ī przygotowany wczeĞniej plik user.p12.

Kreator zapyta o has

áo do klucza prywatnego — podaj je (patrz rysunek 7.7.5).

Rysunek 7.7.5.
Import certyfikatu
u

Īytkownika — krok 1

Kliknij przycisk Dalej, nast

Ċpnie wybierz opcjĊ Automatycznie wybierz magazyn certy-

fikatów na podstawie typu certyfikatu (WA

ĩNE!) oraz ponownie kliknij przycisk Dalej

(patrz rysunek 7.7.6).

Rysunek 7.7.6.
Import certyfikatu
u

Īytkownika — krok 2

W kolejnym oknie kliknij przycisk Zako

Ĕcz. Kreator powinien potwierdziü pomyĞlnoĞü

importu certyfikatu (patrz rysunek 7.7.7).

Musisz jeszcze zainstalowa

ü certyfikat swojego CA w katalogu zaufanych urzĊdów certyfi-

kacji. W tym celu kliknij prawym przyciskiem myszy katalog Zaufane g

áówne urzĊdy certy-

fikacji, a nast

Ċpnie z menu wybierz opcjĊ Wszystkie zadania/Importuj (patrz rysunek 7.7.8).

background image

120

Sieci VPN. Zdalna praca i bezpiecze

þstwo danych

Rysunek 7.7.7.
Kreator powinien
potwierdzi

ü import

Rysunek 7.7.8.
Wybierz opcj

Ċ

Importuj z menu

Po wybraniu opcji Importuj uruchomi si

Ċ kolejny kreator importu certyfikatów. Musisz

wskaza

ü plik z certyfikatem CA (ca.crt). Kreator importu certyfikatów oczekuje pliku

z rozszerzeniem *.crt, a nie *.pem, dlatego przed importem musisz si

Ċ upewniü, czy

plik ma takie rozszerzenie (patrz rysunek 7.7.9).

Rysunek 7.7.9.
Import certyfikatu CA
— krok 1

Kliknij przycisk Dalej, a nast

Ċpnie wybierz opcjĊ UmieĞü wszystkie certyfikaty w na-

st

Ċpującym magazynieZaufane gáówne urzĊdy certyfikacji (patrz rysunek 7.7.10).

Wyjd

Ĩ z konsoli, zapisując zmiany.

background image

Rozdzia

ä 7.

i IPSec w systemie Linux

121

Rysunek 7.7.10.
Import certyfikatu CA
— krok 2

Jak widzisz, procedura importu jest troch

Ċ skomplikowana. Tak naprawdĊ záoĪona jest tylko

za pierwszym razem. Maj

ąc przygotowaną przystawkĊ mmc (

ipsec.mmc

), mo

Īesz uĪyü jej

na innych komputerach.

7.7.1. Konfiguracja po

äñczenia

Konfiguracj

Ċ poáączenia przeprowadĨ dokáadnie w taki sam sposób, jak w przykáadzie

z kluczem wspó

ádzielonym. Jedyna róĪnica polega na tym, aby w zakáadce Zabezpie-

czenia nie zaznacza

ü opcji Ustawienia protokoáu IPSec/UĪyj klucza wstĊpnego do uwie-

rzytelnienia (patrz rysunek 7.7.1.1).

Rysunek 7.7.1.1.
W

áaĞciwoĞci poáączenia,

zak

áadka Zabezpieczenia

background image

122

Sieci VPN. Zdalna praca i bezpiecze

þstwo danych

Upewnij si

Ċ, Īe w zakáadce Sieü typ wirtualnej sieci prywatnej ustawiony jest na Sieü VPN

z protoko

áem L2TP IPSec.

Zapisz zmiany i spróbuj si

Ċ poáączyü. W polu Nazwa uĪytkownika i Hasáo podaj dane

uwierzytelniaj

ące do poáączenia PPP (plik /etc/ppp/chap-secrets na serwerze) — patrz ry-

sunek 7.7.1.2.

Rysunek 7.7.1.2.
Po

áączenie

z bram

ą IPSec

Je

Īeli nie wystąpią nieprzewidziane problemy, po chwili poáączenie powinno zostaü

nawi

ązane.

W przypadku pojawienia si

Ċ komunikatu o báĊdzie, mówiącego o braku certyfikatu

wymaganego do uwierzytelnienia zabezpiecze

Ĕ (patrz rysunek 7.7.1.3) upewnij siĊ, czy

zaimportowa

áeĞ poprawnie certyfikat CA w magazynie Zaufane gáówne urzĊdy certyfikacji.

Najlepiej powtórz t

Ċ czynnoĞü jeszcze raz.

Rysunek 7.7.1.3.
B

áąd poáączenia IPSec

— brak certyfikatu

W razie dalszych problemów z zestawieniem po

áączenia wykonaj kroki podane w punk-

cie 7.5.

Je

Īeli poáączenie zestawiáo siĊ, sprawdĨ po stronie systemu Windows, jaki adres IP

otrzyma

á interfejs poáączenia PPP/IPSec, oraz spróbuj „pingnąü” drugą stronĊ.

Na listingu 7.7.1.1 przedstawiono wycinek logów systemowych Linuksa. Zwró

ü uwagĊ

na poszczególne fazy po

áączenia (wymiana kluczy przez IKE, nawiązanie SA, enkap-

sulacja PPP w L2TP). W logach widzimy te

Ī, Īe poáączenie nadeszáo z nieznanego

adresu IP oraz

Īe klient jest za NAT-em.

background image

Rozdzia

ä 7.

i IPSec w systemie Linux

123

Listing 7.7.1.1. Wycinek logów systemowych po stronie Linuksa

Nov 2 01:10:35 ipsecgw pluto[29172]: "roadwarrior-l2tp"[1] 91.192.0.177 #8:
´

responding to Main Mode from unknown peer 91.192.0.177

Nov 2 01:10:35 ipsecgw pluto[29172]: "roadwarrior-l2tp"[1] 91.192.0.177 #8:
´

transition from state STATE_MAIN_R0 to state STATE_MAIN_R1

Nov 2 01:10:35 ipsecgw pluto[29172]: "roadwarrior-l2tp"[1] 91.192.0.177 #8:
´

STATE_MAIN_R1: sent MR1, expecting MI2

Nov 2 01:10:35 ipsecgw pluto[29172]: "roadwarrior-l2tp"[1] 91.192.0.177 #8:
´

NAT-Traversal: Result using draft-ietf-ipsec-nat-t-ike-02/03: peer is NATed

Nov 2 01:10:35 ipsecgw pluto[29172]: "roadwarrior-l2tp"[1] 91.192.0.177 #8:
´

transition from state STATE_MAIN_R1 to state STATE_MAIN_R2

Nov 2 01:10:35 ipsecgw pluto[29172]: "roadwarrior-l2tp"[1] 91.192.0.177 #8:
´

STATE_MAIN_R2: sent MR2, expecting MI3

Nov 2 01:10:35 ipsecgw pluto[29172]: "roadwarrior-l2tp"[1] 91.192.0.177 #8:
´

Main mode peer ID is ID_DER_ASN1_DN: 'C=PL, ST=Slask, O=Helion, CN=user1'

Nov 2 01:10:35 ipsecgw pluto[29172]: "roadwarrior-l2tp"[1] 91.192.0.177 #8:
´

I am sending my cert

Nov 2 01:10:35 ipsecgw pluto[29172]: "roadwarrior-l2tp"[1] 91.192.0.177 #8:
´

transition from state STATE_MAIN_R2 to state STATE_MAIN_R3

Nov 2 01:10:35 ipsecgw pluto[29172]: "roadwarrior-l2tp"[1] 91.192.0.177 #8:
´

STATE_MAIN_R3: sent MR3, ISAKMP SA established {auth=OAKLEY_RSA_SIG

´

cipher=oakley_3des_cbc_192 prf=oakley_sha group=modp2048}

Nov 2 01:10:35 ipsecgw pluto[29172]: "roadwarrior-l2tp"[1] 91.192.0.177 #9:
´

responding to Quick Mode {msgid:e83ab5d8}

Nov 2 01:10:35 ipsecgw pluto[29172]: "roadwarrior-l2tp"[1] 91.192.0.177 #9:
´

transition from state STATE_QUICK_R0 to state STATE_QUICK_R1

Nov 2 01:10:35 ipsecgw pluto[29172]: "roadwarrior-l2tp"[1] 91.192.0.177 #9:
´

STATE_QUICK_R1: sent QR1, inbound IPsec SA installed, expecting QI2

Nov 2 01:10:35 ipsecgw pluto[29172]: "roadwarrior-l2tp"[1] 91.192.0.177 #9:
´

transition from state STATE_QUICK_R1 to state STATE_QUICK_R2

Nov 2 01:10:35 ipsecgw pluto[29172]: "roadwarrior-l2tp"[1] 91.192.0.177 #9:
´

STATE_QUICK_R2: IPsec SA established {ESP=>0xb66477ee <0xa49dc8ea xfrm=

´

3DES_0-HMAC_MD5 NATD=91.192.0.177:4500 DPD=none}

Nov 2 01:10:37 ipsecgw xl2tpd[29349]: Connection established to 91.192.0.177, 1701.
´

Local: 11685, Remote: 5 (ref=0/0). LNS session is 'default'

Nov 2 01:10:37 ipsecgw xl2tpd[29349]: start_pppd: I'm running:
Nov 2 01:10:37 ipsecgw xl2tpd[29349]: "/usr/sbin/pppd"
Nov 2 01:10:37 ipsecgw xl2tpd[29349]: "passive"
Nov 2 01:10:37 ipsecgw xl2tpd[29349]: "-detach"
Nov 2 01:10:37 ipsecgw xl2tpd[29349]: "85.98.29.251:192.168.10.198"
Nov 2 01:10:37 ipsecgw xl2tpd[29349]: "auth"
Nov 2 01:10:37 ipsecgw xl2tpd[29349]: "require-chap"
Nov 2 01:10:37 ipsecgw xl2tpd[29349]: "name"
Nov 2 01:10:37 ipsecgw xl2tpd[29349]: "ipsec"
Nov 2 01:10:37 ipsecgw xl2tpd[29349]: "file"
Nov 2 01:10:37 ipsecgw xl2tpd[29349]: "/etc/ppp/options.l2tpd"
Nov 2 01:10:37 ipsecgw xl2tpd[29349]: "/dev/pts/1"
Nov 2 01:10:37 ipsecgw xl2tpd[29349]: Call established with 91.192.0.177,
´

Local: 27862, Remote: 1, Serial: 0

Nov 2 01:10:37 ipsecgw pppd[29356]: pppd 2.4.4 started by root, uid 0
Nov 2 01:10:37 ipsecgw pppd[29356]: Using interface ppp0
Nov 2 01:10:37 ipsecgw pppd[29356]: Connect: ppp0 <--> /dev/pts/1
Nov 2 01:10:39 ipsecgw pppd[29356]: found interface eth1 for proxy arp
Nov 2 01:10:39 ipsecgw pppd[29356]: local IP address 85.98.29.251
Nov 2 01:10:39 ipsecgw pppd[29356]: remote IP address 192.168.10.198

background image

124

Sieci VPN. Zdalna praca i bezpiecze

þstwo danych

W Linuksie informacj

Ċ o aktualnym stanie poáączenia IPSec moĪesz uzyskaü, wpisując

polecenie:

ipsecgw:~# ip xfrm state
src 85.98.29.251 dst 91.192.0.177
proto esp spi 0xb66477ee reqid 16413 mode transport
replay-window 32
auth md5 0x4fc684eb720b08a2e0783b9a2dcbf31f
enc des3_ede 0xaee1a11e87622f31c06ddfbbd842a672575bc08bc2e29ca3
encap type espinudp sport 4500 dport 4500 addr 0.0.0.0
src 91.192.0.177 dst 85.98.29.251
proto esp spi 0xa49dc8ea reqid 16413 mode transport
replay-window 32
auth md5 0x92d7ccce0c943d3742d9a3fd0304c656
enc des3_ede 0x9cc2b82f3c216d4947cd435fcec1f17ad3373bab5f381950
encap type espinudp sport 4500 dport 4500 addr 0.0.0.0

Widzimy tutaj informacje o dwóch skojarzeniach SA (kierunek serwer-klient i klient-
serwer). Identyfikatory SPI dla ka

Īdego SA zostaáy podkreĞlone. Widzimy takĪe, Īe

po

áączenie dziaáa w trybie transportowym.

Na listingu 7.7.1.2 dla przyk

áadu przedstawiáem komunikat zarejestrowany przez demon

Syslog w przypadku próby nawi

ązania poáączenia przez uĪytkownika legitymującego

si

Ċ záym certyfikatem (podpisanym przez inne CA — nie nasze).

Listing 7.7.1.2. Komunikat o odrzuconym certyfikacie u

Īytkownika

Nov 2 02:21:44 ipsecgw pluto[29172]: "roadwarrior"[5] 91.192.0.182 #17:
´

issuer cacert not found

Nov 2 02:21:44 ipsecgw pluto[29172]: "roadwarrior"[5] 91.192.0.182 #17:
´

X.509 certificate rejected

Nov 2 02:21:44 ipsecgw pluto[29172]: "roadwarrior"[5] 91.192.0.182 #17:
´

no suitable connection for peer 'C=PL, ST=Rojca, O=rojcanet, OU=rojcanet,

´

CN=rojcanet_user1, E=marek@rojcanet.pl'

7.8. Dost

öp z urzñdzeþ PDA

— Windows Mobile 2003, 2005,
2006

Z linuksowym serwerem VPN mo

Īesz siĊ takĪe poáączyü, korzystając z urządzeĔ mobil-

nych typu palmtop. Zajrzyj do rozdzia

áu 13., w którym opisaáem procedurĊ importu certy-

fikatów SSL oraz konfiguracj

Ċ poáączeĔ IPSec w systemach mobilnych.

background image

Rozdzia

ä 7.

i IPSec w systemie Linux

125

7.9.

ãñczenie oddziaäów firmy
tunelem IPSec

W niniejszym punkcie stworzymy tunel

áączący siedzibĊ firmy (Gliwice) z oddziaáem

(Bytom). W obu lokalizacjach routery dzia

áają pod kontrolą Linuksa z zainstalowanym

programem OpenSWAN. Celem tunelu jest zapewnienie bezpiecznej komunikacji TCP/IP
pomi

Ċdzy komputerami w oddziaáach. KonfiguracjĊ przedstawia rysunek 7.9.1.

Rysunek 7.9.1.
Tunel IPSec/L2TP
mi

Ċdzy oddziaáami

firmy

Funkcjonalnie przyk

áad jest podobny do rozwiązania z podrozdziaáu 5.4., róĪni siĊ nato-

miast implementacj

ą VPN. Zamiast dziaáającego w warstwie uĪytkownika programu

OpenVPN zestawimy tunel IPSec.

Do uwierzytelniania stron u

Īyjemy tym razem kluczy RSA (klucz prywatny i publiczny).

Je

Īeli routery mają staáe IP, moĪesz uĪyü nawet klucza wspóádzielonego (hasáo), ale

pami

Ċtaj, aby zablokowaü na firewallu moĪliwoĞü áączenia siĊ protokoáem IPSec ze

wszystkich hostów z wyj

ątkiem adresu IP „drugiej strony” (w przeciwnym razie ktoĞ

b

Ċdzie mógá próbowaü odgadnąü hasáo, np. przez atak typu brute force).

Poniewa

Ī implementacja IPSec w Linuksie nie wymaga uĪycia protokoáu PPP oraz

L2TP, konfiguracja jest tutaj znacznie prostsza ni

Ī w poprzednim rozdziale. W zasadzie

gotowy plik konfiguracyjny znajduje si

Ċ w przykáadach doáączonych razem z pakietem

OpenSWAN (/etc/ipsec.d/examples/linux-linux.conf).

Utwórz plik konfiguracyjny podany w listingu 7.9.1 — b

Ċdzie to plik lokalizacji pierwszej

(Gliwice).

background image

126

Sieci VPN. Zdalna praca i bezpiecze

þstwo danych

Listing 7.9.1. Konfiguracja IPSec Linux-Linux (lokalizacja Gliwice)

version 2.0
config setup
interfaces=%defaultroute
forwardcontrol=yes
rp_filter=0
nat_traversal=no

conn linux-to-linux
auth=esp
authby=rsasig
pfs=yes
left=91.192.0.186
leftsubnet=192.168.20.0/24
leftrsasigkey=0sAQPuvae6KEw/yHijDjqHomCyLo8oO3H8wl3UExuTArCXtzc1DO5X2E8QFI
´u0grLofzIzgoCy8AkoFthFPJIyDF3zKVH9ppMS8XQQL2naWp+YOm2cROstRlAfyvC/jF7GvW
´lRIjxzHzCLCIJXihZmFZGN1ku/DExLx5TjzqG/bXQ9DQ==
right=91.192.0.185
rightsubnet=192.168.30.0/24
rightrsasigkey=0sAQODH/CRwexspJ6mu/bThfQzs84IpaHBYNs5MeDpxbiLdacZjM22PqOvb
´VIqeQlYg4zHMAnB2EyUIgYHskJqyRmtmg6S5ELxnNHqvTE92KI5Bdicn458CowdqR2Jtc4tv
´D7OWHv/RFzmt6W1kIHPiILAOkR2mSvATgI/QhZtNN4oaw==
auto=start

include /etc/ipsec.d/examples/no_oe.conf

Oto znaczenie wa

Īniejszych opcji:

authby=rsasig

— uwierzytelnianie przez klucze RSA,

left=91.192.0.186

— adres IP routera w Gliwicach („lewa strona”

— lokalna dla routera),

leftsubnet=192.168.20.0/24

— sie

ü LAN za routerem w Gliwicach,

leftrsasigkey=0sAQPuvae6KE…

— klucz publiczny „lewej strony”

(routera w Gliwicach),

right=91.192.0.185

— adres IP bramy odleg

áej lokalizacji (Bytom),

rightsubnet=192.168.30.0/24

— sie

ü LAN za routerem w Bytomiu,

rightrsasigkey=0sAQODH/CR…

— klucz publiczny prawej strony.

Zauwa

Ī, Īe jawnie umieĞciáem wpis

pfs=yes

. Nie musia

áem tego robiü, poniewaĪ jest to

opcja domy

Ğlna. Moim zamiarem byáo podkreĞlenie, Īe w przypadku poáączeĔ Linux-Linux

PFS jest obs

áugiwana i nie naleĪy jej wyáączaü.

PFS (ang. Perfect Forward Secrecy) to, jak ju

Ī wiemy, poufnoĞü doskonaáa. Przez pojĊcie

to rozumie si

Ċ sposób wymiany kluczy sesyjnych w trakcie poáączenia IPSec. Zaáączenie

PFS zapewnia,

Īe materiaá klucza gáównego moĪe byü uĪywany do wygenerowania tylko

jednego klucza sesji. Przed utworzeniem nowego klucza sesji jest przeprowadzana wy-
miana kluczy (algorytm Diffiego-Hellmana) w celu wygenerowania nowego materia

áu klu-

cza g

áównego. DziĊki zastosowaniu PFS uzyskanie przez atakującego pojedynczego klucza

pozwala mu na odczytanie tylko wiadomo

Ğci zaszyfrowanych tym kluczem. Niestety, nie

background image

Czytaj dalej...

Rozdzia

ä 7.

i IPSec w systemie Linux

127

wszystkie implementacje obs

áugują tĊ wáaĞciwoĞü, dlatego w przykáadach z uĪyciem

klientów Windows umieszczali

Ğmy

pfs=no

.

Po stronie lokalizacji Bytom plik wygl

ąda analogicznie — patrz listing 7.9.2.

Listing 7.9.2. Konfiguracja IPSec Linux-Linux (lokalizacja Bytom)

version 2.0
config setup
interfaces=%defaultroute
forwardcontrol=yes
rp_filter=0
nat_traversal=no

conn linux-to-linux
auth=esp
authby=rsasig
pfs=yes
left=91.192.0.185
leftsubnet=192.168.30.0/24
leftrsasigkey=0sAQODH/CRwexspJ6mu/bThfQzs84IpaHBYNs5MeDpxbiLdacZjM22PqOvbVI

´

qeQlYg4zHMAnB2EyUIgYHskJqyRmtmg6S5ELxnNHqvTE92KI5Bdicn458CowdqR2Jtc4tvD7OWH

´

v/RFzmt6W1kIHPiILAOkR2mSvATgI/QhZtNN4oaw==

right=91.192.0.186
rightsubnet=192.168.20.0/24
rightrsasigkey=0sAQPuvae6KEw/yHijDjqHomCyLo8oO3H8wl3UExuTArCXtzc1DO5X2E8QFIu0gr

´

LofzIzgoCy8AkoFthFPJIyDF3zKVH9ppMS8XQQL2naWp+YOm2cROstRlAfyvC/jF7GvWlRI

´

jxzHzCLCIJXihZmFZGN1ku/DExLx5TjzqG/bXQ9DQ==

auto=start

include /etc/ipsec.d/examples/no_oe.conf

Oczywi

Ğcie z punktu widzenia routera w Bytomiu strona „lewa” to jego podsieü, a „prawa”

— siedziba firmy w Gliwicach.

Musisz jeszcze wygenerowa

ü swoje klucze RSA i umieĞciü je w konfiguracjach po

obu stronach. Zrób to wed

áug poniĪszych punktów:

1.

Na obu routerach wpisz polecenie:

gliwice:~#ipsec rsasigkey 1024 > /root/key.rsa

Pliki b

Ċdą miaáy postaü podobną do podanej na listingu 7.9.3.

Listing 7.9.3. Klucze RSA — publiczny i prywatny

# RSA 1024 bits hebaz Wed Nov 7 13:40:56 2007
# for signatures only, UNSAFE FOR ENCRYPTION

#pubkey=0sAQPCU0jPYnML3QzQzS8TsiyEJXj9p8uJZH1fgwLAjiahSA5Novx0OjfDKOJNtjOuTpxQ9bqrO
´

mu65FxrnLZAj31etSaaqyKGk3h6KEvIcPkESwuHpGBoxYsiuLJCmKGX5jZYkc3ckjnkqggL6eduC+4/FF

´

Gff5LzvwY5DSJLLGimLw==

Modulus: 0xc25348cf62730bdd0cd0cd2f13b22c842578fda7cb89647d5f8302c08e26a148
´0e4da2fc743a37c328e24db633ae4e9c50f5baab3a6bbae45c6b9cb6408f7d5eb5269aab2
´28693787a284bc870f9044b0b87a46068c58b22b8b24298a197e6365891cddc9239e4aa08
´0be9e76e0bee3f14519f7f92f3bf06390d224b2c68a62f


Wyszukiwarka

Podobne podstrony:
Sieci VPN Zdalna praca i bezpieczenstwo danych Wydanie II rozszerzone
Sieci VPN Zdalna praca i bezpieczenstwo danych Wydanie II rozszerzone
Sieci VPN Zdalna praca i bezpieczenstwo danych
informatyka sekrety skutecznych prezentacji multimedialnych wydanie ii rozszerzone pawel lenar ebook
informatyka ajax i php tworzenie interaktywnych aplikacji internetowych wydanie ii bogdan brinzarea
biznes i ekonomia sztuka perswazji czyli jezyk wplywu i manipulacji wydanie ii rozszerzone andrzej b
biznes i ekonomia inwestycje gieldowe jak grac i wygrywac wydanie ii rozszerzone adam jagielnicki eb
biznes i ekonomia mistrz sprzedazy wydanie ii rozszerzone arkadiusz bednarski ebook
biznes i ekonomia 17 smiertelnych bledow szefa wydanie ii rozszerzone rafal szczepanik ebook
biznes i ekonomia arcymistrz sprzedazy wydanie ii rozszerzone arkadiusz bednarski ebook

więcej podobnych podstron