Parę słów o VPN i OpenVPN - Olek Kwaś · PDF fileParę słów o VPN i OpenVPN...

download Parę słów o VPN i OpenVPN - Olek Kwaś · PDF fileParę słów o VPN i OpenVPN VPN (Virtual Private Network) Wirtualna Sieć Prywatna to tunel łączący komputery lub sieci

If you can't read please download the document

Transcript of Parę słów o VPN i OpenVPN - Olek Kwaś · PDF fileParę słów o VPN i OpenVPN...

  • Konfiguracja OpenVPN 2008-07-28

    Olek Kwaniewski - http://www.olek.waw.pl 1

    Par sw o VPN i OpenVPN VPN (Virtual Private Network) Wirtualna Sie Prywatna to tunel czcy komputery lub sieci komputerowe biegncy przez inn sie najczciej Internet. Tunel jak sama nazwa wskazuje jest wirtualny, tzn fizycznie wykorzystuje inne fizyczne sieci i poczenia sieciowe. Poczenie takie moe by szyfrowane, kompresowane i jest niedostpne dla komputerw lub sieci z poza kocw tego tunelu. Sieci VPN stosuje si dla poprawienia bezpieczestwa, atwego dostpu do sieci firmowych lub pojedynczych komputerw. Najczstszym zastosowaniem jest poczenie komputerw w rnych czciach internetu tak, aby mogy pracowa ze sob jak by byy podczone do jednej sieci LAN. Jednym z rozwiza do tworzenia sieci VPN jest OpenVPN. Oprogramowanie to jest wydawane na licencji GPL, jest darmowe i ma otwarty kod. Do budowania szyfrowanych tuneli w odrnieniu od wielu innych rozwiza nie jest wykorzystywany protok IPSec, ale szyfrowanie oparte na bibliotekach OpenSSL. Wykorzystywany OpenSSL jest rozwijany na bieco co gwarantuje due bezpieczestwo i szybk reakcj na wykryte bdy. Wad pakietu OpenVPN jest nigdzie nieopisany protok komunikacji, ktry mimo wykorzystania OpenSSLa moe by powodem problemw z bezpieczestwem. Niewtpliw zalet programu jest dostpno binarnych pakietw na wiele platform i dla wielu systemw operacyjnych. OpenVPN mona bez problemu uruchomi pod Windowsami, Linuksem czy Makiem. Istniej te pakiety dla pracujcych pod Linuksem routerw np. dla Linksysa. Instalacja

    Rozwizanie oparte na OpenVPN wybraem gwnie, dlatego e do dyspozycji miaem Windows Server 2003 i klientw z Windows XP. Instalacja i konfiguracja nie s specjalnie skomplikowane, a dodatkowo oprogramowanie mona zainstalowa w trybie usugi, co uatwia automatyczne zestawianie tunelu na komputerach uytkownikw. Na stronie domowej

    openvpn.net dostpne s binarna dla Windowsw, jest to wersja bez interfejsu graficznego. Przydatny jest pakiet zawierajcy nakadk graficzn GUI (Graphical User Interface), mona go pobra ze strony openvpn.se. Osobicie proponuj wybra pakiet z GUI. Podczas instalacji pamitajmy o zainstalowaniu programu My Certificate Wizard uatwi on generowanie certyfikatw. Mona za to wyczy automatyczne startowanie OpenVPN GUI podczas uruchamiania Windowsw.

  • Konfiguracja OpenVPN 2008-07-28

    Olek Kwaniewski - http://www.olek.waw.pl 2

    Certyfikaty Bdziemy potrzebowali przynajmniej trzy certyfikaty:

    1. certyfikat urzdu certyfikacji CA (certificate authority), w opisanym rozwizaniu sami bdziemy podpisywa swoje certyfikaty;

    2. certyfikat serwera VPN, czyli potrzebny bdzie wniosek o wydanie certyfikatu i certyfikat wydany przez CA;

    3. certyfikat klienta sieci VPN, czyli potrzebny bdzie wniosek o wydanie certyfikatu i certyfikat wydany przez CA (w przypadku wielu klientw dla kadego potrzebny bdzie osobny certyfikat)

    Na pocztku naley skonfigurowa OpenSSLa ktrego zainstalowalimy razem z OpenVPNem. W katalogu easy-rsa zmie nazw pliku openssl.cnf.sample na openssl.cnf, zmie nazw

    pliku vars.bat.sample na vars.bat i utwrz katalog keys. w pliku vars.bat zmie wpisy dotyczce ustawie certyfikatu (przyspieszy to

    wystawianie certyfikatw) np. : set KEY_COUNTRY=PL set KEY_PROVINCE=Mazowieckie set KEY_CITY=Warszawa set KEY_ORG=SerwerVPN set KEY_EMAIL= vpn@ host.domain

    w katalogu keys utwrz pliki index.txt i serial, do pliku serial wpisz 00 (dwa zera) uruchom cmd.exe (interpreter polece) wejd do katalogu easy-rsa i uruchom plik

    vars.bat, znajduj si w nim wartoci zmiennych uywanych w pozostaych plikach wsadowych znajdujcych si w katalogu tym katalogu

    Generacja kluczy:

    Na pocztek potrzebujemy klucza Diffiego-Hellmana ktry bdzie uywany przez protok uzgadniania kluczy. Generujemy go uruchamiajc plik build-dh.bat.

    Teraz wygenerujemy certyfikat urzdu certyfikacji uruchamiajc plik build-ca.bat. W pliku bulid-ca.bat ustawiony jest okres wanoci certyfikatu na 10 lat mona to zmieni modyfikujc parametr: -days 3650. W trakcie generowania certyfikatu naley odpowiedzie na par pyta:

    Country Name (2 letter code) [PL]:PL State or Province Name (full name) [Mazowieckie]: Wojewdztwo Locality Name (eg, city) [Warszawa]: Miasto Organization Name (eg, company) [SerwerVPN]:Nazwa instytucji Organizational Unit Name (eg, section) []:. Common Name (eg, YOUR name) []:Imi i nazwisko lub nazwa firmy Email Address [vpn@ host.domain]: adres mailowy W wyniku generacji otrzymamy w katalogu keys plik ca.crt - certyfikat CA i ca.key - klucz prywatny CA

    Nastpnie generujemy certyfikat dla serwera VPN uruchamiajc plik build-key-server.bat. z parametrem okrelajcym jak maj si nazywa pliki z certyfikatem i kluczem np.: build-key-server.bat Brama . W trakcie generowania certyfikatu bdziemy proszeni o odpowiedzi na podobne pytania jak przy generowaniu certyfikatu CA. Po wygenerowaniu certyfikatu nastpuje jego podpisanie przez CA (jestemy pytani czy

  • Konfiguracja OpenVPN 2008-07-28

    Olek Kwaniewski - http://www.olek.waw.pl 3

    podpisa certyfikat) Do dyspozycji otrzymujemy pliki Brama.crt - certyfikat naszego serwera i Brama.key - klucz prywatny naszego serwera.

    Do generowania certyfikatu klienta sieci VPN wykorzystamy program My Certificate Wizard. W polach: Country Name, State or Province Name, Locality Name, Organization Name wpisujemy identyczne dane, jakie podalimy podczas generowania certyfikatu CA. Wane jest wpisanie odpowiedniego pola Common Name, dziki niemu bdziemy mogli rozpozna na serwerze podczajcych si klientw i np. ustawi dla nich indywidualn konfiguracj. (w tym wypadku wpisaem Klient_001) Otrzymujemy plik Klient_001.key - klucz prywatny klienta i Klient_001.req - wniosek o wydanie certyfikatu. Teraz naley na podstawie wygenerowanego wniosku wystawi certyfikat dla klienta. Ja do tego uywam skryptu podpisz.bat (listing na kocu dokumentu) w ktrym mona okreli czas na ktry podpiszemy certyfikat. Plik Klient_001.req znajduje si w katalogu keys, uruchamiamy cmd.exe wchodzimy do katalogu easy-rsa, uruchamiamy vars.bat nastpnie podpisz.bat z parametrem okrelajcym klienta podpisz.bat Klient_001 Otrzymujemy plik Klient_001.crt ktry jest certyfikatem dla klienta VPN.

    Konfiguracja OpenVPN umoliwia konfiguracj w trybie router i bridge. Konfiguracja w trybie router to poczenie IP jeden do jednego. Jeden nr IP otrzymuje serwer drugi klient, umoliwienie widzenia si wielu klientw midzy sob realizowane jest odpowiedni konfiguracj routingu. Konfiguracja w trybie bridge umoliwia podczenie wielu klientw do jednego IP serwera. Brigde przekazuje wszystkie pakiety pomidzy klientami i umoliwia komunikacj innymi protokoami ni TCP np. IPX czy NetBIOS. Wad takiego rozwizania jest znaczne zwikszenie ruchu, co moe powodowa przytkanie sabszych cz.

  • Konfiguracja OpenVPN 2008-07-28

    Olek Kwaniewski - http://www.olek.waw.pl 4

    Podczas instalacji powstaje w Windowsach nowe poczenie lokalne. Dla uatwienia rozpoznania mona zmieni mu nazw na np. OpenVPN. W katalogu bin znajduj si pliki bat do usuwania (deltapall.bat) i tworzenia (addtap.bat) wirtualnych interfejsw. Tryb router W trybie routera uywamy wirtualny interfejs tun. Konfiguracja serwera znajdowa si bdzie w pliku server.ovpn w katalogu config. W tym samym katalogu potrzebujemy certyfikat CA (ca.crt), certyfikat serwera (Brama.crt) i klucz prywatny serwera (Brama.key). dev tun #urzdzenie tun czyli tryb pracy router dev-node OpenVPN # nazwa wirtualnego interfejsu sieciowego port 4215 # port na ktrym nasuchuje serwer mode server server 10.2.1.0 255.255.255.0 dh dh1024.pem ca ca.crt # certyfikat CA cert Brama.crt # certyfikat bramy key Brama.key #klucz prywatny bramy proto tcp-server verb 1 # poziom logowania keepalive 10 900 inactive 3600 comp-lzo status "C:\\Program Files\\OpenVPN\\log\\status.log" client-config-dir "C:\\Program Files\\OpenVPN\\vpn_clients" ccd-exclusive Taka konfiguracja nada interfejsowi OpenVPN nr IP 10.2.1.1 jeeli fizyczny interfejs komputera bdzie z tej samej sieci i bdzie podczony do sieci LAN to klienci podczeni do VPNa bd mieli dostp do komputerw w LANie. W katalogu vpn_clients (trzeba go utworzy) bd pliki o nazwach zgodnych z polem Common Name certyfikatu klienta. W plikach bdzie znajdowa si konfiguracja dla poszczeglnych klientw. Konfiguracj tak mona te umieci w pliku konfiguracyjnym klienta, ale trzymanie wszystkiego na serwerze uatwia zarzdzanie klientami VPN. W tym przypadku utworzymy plik Klient_001 ifconfig-push 10.2.1.253 10.2.1.254 push "route 10.2.1.0 255.255.255.0" W pierwszej linijce pierwszy nr IP to nr klienta drugi to nr IP serwera. Druga linijka umoliwia routing do caej sieci VPN, zmieniajc wielko podanej sieci mona ustawi routing tylko do czci komputerw. Oczywicie eby mie pewno, e klient nie ma dostpu do danych komputerw trzeba o to zadba ustawiajc odpowiednio zapor sieciow na serwerze VPN. Tryb router w tej konfiguracji umoliwia podczenie maksymalnie 127 klientw, dla kadego wykorzystane s 2 adresy IP jeden dla serwera drugi dla klienta (1-2, 3-4, 5-6 249-250, 251-252, 253-254). eby zwikszy ilo klientw nale zmieni mask sieci.

    Uruchomienie serwera mona wykona na dwa sposoby. Uywajc programu OpenVPN GUI, ktry wida po uruchomieniu na trayu.

  • Konfiguracja OpenVPN 2008-07-28

    Olek Kwaniewski - http://www.olek.waw.pl 5

    Drugim sposobem jest uruchomienie usugi OpenVPN Service np. poleceniem net start "OpenVPN Service". Ustawienie sposobu uruchamiania usugi na automatyczny spowoduje startowanie VPNa przy uruchamianiu systemu.

    Konfiguracja klienta Na komputerze klienta instalujemy OpenVPN i w katalogu config umieszczamy certyfikat CA (ca.crt), certyfikat klienta (Klient_001.crt) i klucz prywatny klienta (Klient_001.key) client dev tun #urzdzenie tun czyli tryb pracy router port 4215 # port na ktrym nasuchuje serwer remote 70