VPN w Linux i Windows.PDF

(353 KB) Pobierz
Microsoft Word - vpn_v0.4.doc
Tworzenie sieci VPN w Ļrodowisku
Linux i Windows
1 Wprowadzenie
W wielu sytuacjach w których mamy do czynienia z rozbudowanĢ architekturĢ sieciowĢ
zaleŇy nam aby całe Ļrodowisko rozproszone(np. oddziały firmy w róŇnych lokalizacjach) było
jak najbardziej spójne. Dotyczy to równieŇ adresacji IP. Technologia wirtualnych sieci
prywatnych( ang. Virtual Private Network ) pozwala na rozwiĢzanie takich problemów. Dziħki
utworzeniu sieci VPN moŇna zbudowaę logicznĢ sieę komputerowĢ, która bħdzie łĢczyę całe
rozproszone Ļrodowisko ukrywajĢc sieci łĢczĢce odległe od siebie lokalizacje i tym samym
uproĻci wymianħ danych miħdzy nimi.
BudujĢc sieę VPN tworzymy logiczne tunele miħdzy wyznaczonymi lokalizacjami. W ten sposób
technologia VPN tworzy iluzjħ w której odległe od siebie lokalizacje sĢ fizycznie bezpoĻrednio
połĢczone. Ta cecha sieci VPN wpływa na uproszenie sposobu wymiany ruchu miħdzy tymi
lokalizacjami.
W obecnej chwili myĻlĢc o technologii VPN oraz jej moŇliwoĻciach oprócz wyŇej
wymienionej cechy bierzemy pod uwagħ stopieı bezpieczeıstwa jaki zapewnia nam połĢczenie
VPN. Tworzenie sieci VPN bez wsparcia dla bezpieczeıstwa przysyłanych informacji w obecnej
chwili jest rzadko stosowane z uwagi na wzrost poziomu poufnoĻci przesyłanych danych. Wielu
producentów sprzħtu sieciowego w swojej ofercie handlowej oferuje róŇnego typu rozwiĢzania
do kompleksowej budowy sieci VPN. RozwiĢzania te cechujĢ siħ róŇnym stopniem
bezpieczeıstwa, skalowalnoĻci oraz łatwoĻci wdroŇenia. PrzewaŇajĢca czħĻę tych rozwiĢzaı
VPN posiada wsparcie dla kryptograficznych mechanizmów ochrony poufnoĻci i/lub
integralnoĻci przesyłanych danych.
Najprostsze rozwiĢzania mogĢ w ogóle nie wspieraę ochrony poufnoĻci przesyłanych danych,
bardziej zaawansowane mogĢ korzystaę z mechanizmu współdzielonego klucza i algorytmów
kryptografii symetrycznej do ochrony poufnoĻci, najbardziej zaawansowane rozwiĢzania
korzystajĢ z mechanizmów kryptografii klucza publicznego, certyfikatów cyfrowych.
Słowa kluczowe: ssl, vpn, ipsec, certyfikat cyfrowy, openvpn, openswan, tun/tap
2 Zastosowania technologii VPN
Głównym zastosowaniem technologii VPN jest tworzenie logicznych kanałów miħdzy
zdalnymi lokalizacjami. Wiele duŇych firm telekomunikacyjnych oferuje swoim klientom
moŇliwoĻę zestawiania połĢczeı VPN miħdzy zdalnymi lokalizacjami zamiast dzierŇawy
fizycznych łĢcz z uwagi na oszczħdnoĻci dla klienta oraz wiħkszĢ elastycznoĻci w zarzĢdzaniu
takimi połĢczeniami dla operatora telekomunikacyjnego. W rozwiĢzaniach typu SOHO( ang.
Small Office Home Office ) bardziej rozbudowane rozwiĢzania równieŇ wspierajĢ tworzenie sieci
VPN. Przydaje siħ to w sytuacjach, gdy pracownik pracuje w domu i potrzebuje połĢczenia do
sieci firmowej. Inna moŇliwoĻę to uŇycie odpowiedniego oprogramowania klienckiego na
komputerze pracownika pracujĢcego poza siedzibĢ firmy. Takie oprogramowanie zestawia
połĢczenie VPN miħdzy komputerem pracownika a urzĢdzeniem dostħpowym w siedzibie firmy.
Oprócz tradycyjnych rozwiĢzaı VPN wspierajĢcych protokół IPsec istnieje druga,
równieŇ popularna grupa rozwiĢzaı opartych o wykorzystanie protokołu SSL jako mechanizmu
do budowy bezpiecznych kanałów wymiany danych. Sieci tworzone z uŇyciem mechanizmu
SSL VPN okreĻlane sĢ równieŇ jako „sieci bez klienta”( ang. clientless ) z uwagi, Ňe inaczej niŇ
1
ma to miejsce w klasycznych sieciach VPN opartych o IPsec, nie jest potrzebne dedykowane
oprogramowanie klienckie dla klienta takiej sieci, wystarczy przeglĢdarka stron www
wspierajĢca protokół SSL. Klient posiadajĢcy przeglĢdarkħ wspierajĢcĢ protokół SSL łĢczy siħ z
serwerem dostħpowym i po ustanowieniu połĢczenia SSL, po przez przeglĢdarkħ uzyskuje
dostħp do wewnħtrznych zasobów sieci VPN. IstniejĢ równieŇ inne rozwiĢzania SSL, które
posiadajĢ dedykowane oprogramowanie do zestawiania połĢczeı SSL VPN. Dziħki takiemu
podejĻciu moŇliwoĻci połĢczeı SSL VPN zbliŇajĢ siħ do klasycznych sieci VPN opartych o
protokół IPsec i pozwalajĢ przesyłaę ruch sieciowy dowolnej aplikacji opakowujĢc go
protokołem SSL. Takim rozwiĢzaniem jest program OpenVPN.
3 Oprogramowanie OpenVPN
Program OpenVPN jest narzħdziem słuŇĢcym do tworzenia szyfrowanego połĢczenia VPN
w sieci TCP/IP. Instalacja tego programu nie wymaga ingerencji w jĢdro systemu operacyjnego
Linux przez co rozwiĢzanie to jest proste i łatwe w uruchomieniu. Tunel jest tworzony z
wykorzystaniem wirtualnych interfejsów sieciowych TUN/TAP. Utworzenie tunelu sprowadza siħ
do utworzenia pliku konfiguracyjnego opisujĢcego parametry połĢczenia i uruchomienie
programu openvpn z tym plikiem jako parametrem. Z drugiej strony tunelu równieŇ
wykorzystujemy ten sam program ale w roli klienta i przyłĢczamy siħ do poprzednio
uruchomionego serwera. Bardzo duŇĢ zaletĢ programu OpenVPN jest moŇliwoĻę tworzenia
szyfrowanych tuneli z hostami korzystajĢcymi z systemu Windows ,co w niektórych sytuacjach
moŇe okazaę siħ kluczowe przy wyborze darmowego oprogramowania do tworzenia sieci VPN.
OpenVPN pozwala tworzyę szyfrowane połĢczenia w oparciu o dwie metody:
„Pre-shared key” mechanizm w którym strony połĢczenia współdzielĢ miħdzy sobĢ tajny
klucz słuŇĢcy do uwierzytelniania stron i szyfrowania komunikacji. OpenVPN wykorzystuje
kryptograficzny algorytm blowfish z 128 bitowym kluczem w trybie CBC( ang. Cipher Block
Chaining )
Certyfikaty cyfrowe SSL, OpenVPN wykorzystuje bibliotekħ OpenSSL do tworzenia
certyfikatów cyfrowych SSL(tryb SSL/TLS)
3.1 Podstawy
Wygenerowanie współdzielonego klucza i zapisanie go do pliku nastħpuje po wykonaniu
komendy:
openvpn –genkey –secret shared.key
W pliku shared.key w bieŇĢcym katalogu zostanie zapisany klucz, który posłuŇy do utworzenia
bezpiecznego połĢczenia VPN.
Program OpenVPN nie posiada wyróŇnionej czħĻci klienta i serwera. Dla obu stron połĢczenia
wykorzystywany jest ten sam program zapisany w wykonywalnym pliku o nazwie openvpn .
Odpowiednia opcja w pliku konfiguracyjnym wymusza działanie w trybie klienta lub serwera.
PoniŇej zaprezentowano komendħ uruchamiajĢcĢ program OpenVPN:
openvpn –config /etc/openvpn/static.conf
2
186863555.001.png
Program OpenVPN pozwala aby opcje konfiguracyjne zostały podane jako parametry podczas
wywołania pliku wykonywanego openvpn jednak zapisanie opcji w pliku wydaje siħ bardziej
wygodne.
PoniŇej zaprezentowano przykładowĢ architekturħ połĢczenia VPN:
Rysunek 1 OpenVPN. Przykładowa architektura połĢczenia VPN.
NawiĢzane połĢczenie VPN miħdzy komputerem przenoĻnym o serwerem powinno utworzyę
podsieę 10.8.0.0/24 i po przez to połĢczenie komputer przenoĻny powinien uzyskaę dostħp do
dwóch podsieci po stronie serwera tj. 192.168.11.0/24 i 192.168.10.0/24.
3.2 Poł Ģ czenie VPN Linux-Linux z wykorzystaniem
mechanizmu współdzielonego klucza
Uwierzytelniania i szyfrowanie nastħpuje z wykorzystaniem mechanizmu
współdzielonego klucza. Serwer na którym jest uruchomiony program OpenVPN jest dostħpny
pod adresem ip 150.254.30.19 i nasłuchuje na porcie tcp 1194. Koniec połĢczenia VPN do
strony serwera ma adres ip 10.8.0.1 a od strony klienta: 10.8.0.2.
3
186863555.002.png
3.2.1 Plik konfiguracyjny dla strony serwera
dev tun
ifconfig 10.8.0.1 10.8.0.2
secret /etc/openvpn/static.key
proto tcp-serwer
daemon
verb 4
log-append /var/log/openvpn.og
keepalive 10 900
inactive 3600
comp-lzo
Opcja tcp-server wymusza uŇycie protokołu TCP warstwy czwartej do utworzenia
logicznego kanału danych oraz okreĻla bieŇĢcĢ stronħ połĢczenia jako serwerowĢ czyli
oczekujĢcĢ na połĢczenia. OpenVPN pozwala równieŇ na utworzenie połĢczenia VPN z
uŇyciem protokołu UDP.
Opcja ifconfig definiuje oba koıce połĢczenia VPN.
Opcja secret wskazuje na plik z współdzielonym kluczem.
Opis wszystkich parametrów programu OpenVPN znajduje siħ na stronie domowej projektu
OpenVPN oraz w podrħczniku systemowym do programu openvpn( man openvpn ).
3.2.2 Plik konfiguracyjny dla strony klienta
dev tun
remote 150.254.30.19 1194
proto tcp-client
ifconfig 10.8.0.2 10.8.0.1
secret /home/piotr/openvpn.conf
keepalive 10 60
route 192.168.10.0 255.255.255.0
route 192.168.11.0 255.255.255.0
comp-lzo
4
186863555.003.png
Opcja remote okreĻla adres i numer portu pod jakim serwer OpenVPN jest dostħpny.
Opcja ifconfig definiuje oba koıce połĢczenia VPN. NaleŇy zwrócię uwagħ na kolejnoĻę
parametrów polecenie ifconfig .
Opis wszystkich parametrów programu OpenVPN znajduje siħ na stronie domowej projektu
OpenVPN oraz w podrħczniku systemowym do programu openvpn( man openvpn ).
3.3 Poł Ģ czenie VPN Linux-Linux z wykorzystaniem
mechanizmu certyfikatów cyfrowych
Program OpenVPN pozwala wykorzystaę infrastrukturħ klucza publicznego do tworzenia
bezpiecznych kanałów wymiany danych. Certyfikaty SSL pozwalajĢ wynegocjowaę parametry
połĢczenia VPN oraz uzgodnię jednorazowy klucz sesyjny słuŇĢcy do szyfrowania komunikacji
miħdzy stronami połĢczenia. UŇycie certyfikatów SSL to najbardziej zaawansowana i
najbezpieczniejsza konfiguracja programu OpenVPN.
3.3.1 Plik konfiguracyjny dla strony serwera
dev tun
proto tcp-server
ifconfig 10.8.0.1 10.8.0.2
keepalive 10 60
verb 4
deamon
comp-lzo
log-append /var/log/openvpn.log
persist-tun
persist-local-ip
persist-remote-ip
persist-key
#############SSL#####
tls-server
tls-remote nazwa_strony_klienta
ca cacert.pem
dh dh1024.pem
cert newcert.pem
key newreq.pem
cipher aes-256-cbc
#############SSL#####
5
186863555.004.png
Zgłoś jeśli naruszono regulamin