Witaj Tadeusz, W Twoim liście datowanym 29 września 2005 (15:05:38) można przeczytać:
TP> Czy moglby mnie ktos poprowadzic za reke ??? TP> mam eth0 wyjscie na zewnatrz TP> i eth1 siec wewnetrzna. TP> Chce ustawic openvpn na bridgu TP> by miec dostep do otoczenia sieciowego. TP> Z tego co zauwazylem bridge przejmuje karte sieciowa. TP> Jak to zrobic ??? lap w zalaczniku txt i piekny opis napewno sobie poradzisz -- Pozdrowienia, bieniu gras
1. sciagamy zrodla openvpn'a z http://openvpn.sourceforge.net/ 2. instalujemy pakiet openssl # apt-get install libssl-dev # apt-get install openssl 3. instalacja sterownika TUN/TAP, tutaj instalujemy tylko TUN rekonpilujemy jadro z opcja: Network device support ---> <*> Universal TUN/TAP device driver support nastepnie instalujemy TUN'a # rm -f /dev/net/tun # mkdir /dev/net # mknod /dev/net/tun c 10 200 4. Instalujemy biblioteke wlaczajaca kompresje w tunelu sciagamy biblioteke lzo ze strony http://www.oberhumer.com/opensource/lzo/download/ lub sciagamy z ftp://pwr.wroc.pl # tar xzvf lzo-1.08.tar.gz # ./configure # make # make install 5. Instalujemy openvpn # tar xzvf openvpn-1.6.0.tar.gz konfigurujemy obsluge z lzo # ./configure --with-lzo-headers=/usr/local/include --with-lzo-lib=/usr/local/lib --enable-pthread # make # make install 6. Konfiguracja OpenVPN przy u¿yciu wspó³dzielonego klucza (najprostsze rozwiazanie) brama VPN: IP_ZEW 192.168.10.252 IP_WEW 192.168.11.1 IP_VPN 192.168.3.1 IP_HOST_LAN 192.168.11.2 klient VPN: IP_ZEW 192.168.10.249 IP_WEW 192.168.12.1 IP_VPN 192.168.3.2 IP_HOST_LAN 192.168.12.2 a) Generujemy wspó³dzielony klucz generujemy klucz i umieszczamy go po obu stronach tunelu (na bramie i u klineta/ów). # openvpn --genkey --secret secret.key b) tworzymy plik startujacy vpn'a # touch /root/vpn # chmod 700 /root/vpn z zawartoscia #!/bin/bash openvpn --config /etc/openvpn/gw-openvpn.cfg & c) tworzymy plik z konfiguracja routingu po uruchomieniu tunelu DLA BRAMY VPN: # touch /etc/openvpn/if-up.sh # chmod 700 /etc/openvpn/if-up.sh z zawartoscia #!/bin/sh route add -net 192.168.12.0 netmask 255.255.255.0 gw 192.168.3.2 DLA KLIENTA VPN: # touch /etc/openvpn/if-up.sh # chmod 700 /etc/openvpn/if-up.sh z zawartoscia #!/bin/sh route add -net 192.168.11.0 netmask 255.255.255.0 gw 192.168.3.1 b) Przygotowujemy konfiga np. w /etc/openvpn/config-router Przyk³adowa klasa IP 192.168.3.0/24 dla potrzeb tunelu mo¿e byæ oczywicie inna. Jeli po drugiej stronie istnieje sieæ o takiej puli adresowej to z ca³¹ pewnoci¹ musisz wykorzystaæ inn¹ pulê na potrzeby tunelu. # przyk³adowa konfiguracja przy u¿yciu klucza wspó³dzielonego # plik konfiguracyjny po stronie bramy VPN # Brak wartoci remote oznacza, ¿e dopuszczamy ka¿dy IP po drugiej stronie dev tun tun-mtu 1500 remote 192.168.10.249 // faktyczny IP klienta VPN ! port 5000 # ifconfig virtual_local_ip virtual_remote_ip ifconfig 192.168.3.1 192.168.3.2 up /etc/openvpn/if-up.sh user nobody group nogroup comp-lzo verb 3 secret /etc/openvpn/secret.key auth MD5 cipher DES-CBC ; ping 15 ; ping-restart 45 ; ping-timer-rem ; persist-tun ; persist-key c) Po stronie klienta plik wygl¹da nastêpuj¹co: dev tun tun-mtu 1500 remote 192.168.10.252 // faktyczny IP bramy VPN ! port 5000 # ifconfig local_ip remote_ip ifconfig 192.168.3.2 192.168.3.1 // uwaga - odwrotnie ni¿ po stronie Bramy ! up /etc/openvpn/if-up.sh user nobody group nogroup comp-lzo verb 3 secret /etc/openvpn/secret.key auth MD5 cipher DES-CBC ; ping 15 ; ping-restart 45 ; ping-timer-rem ; persist-tun ; persist-key Oczywicie dostêp do pliku klucza powinien mieæ tylko root. Opcje 'ping' s¹ u¿ywane w celu sprawdzenia czy 'druga strona' jeszcze "¿yje" - przydatne w przypadku gdy klient czêsto ³¹czy siê na chwilê i roz³¹cza (laptopowcy). d) uruchomienie tunelu po obu stronach odpalamy # /root/vpn na kliencie powinno wyskoczyc ponizsze logi serwer1:/etc/openvpn# /root/vpn serwer1:/etc/openvpn# Tue Dec 21 14:28:49 2004 0[0]: OpenVPN 1.6.0 i686-pc-linux-gnu [SSL] [LZO] [PTHREAD] built on Dec 15 2004 Tue Dec 21 14:28:49 2004 1[0]: Static Encrypt: Cipher 'DES-CBC' initialized with 64 bit key Tue Dec 21 14:28:49 2004 2[0]: Static Encrypt: Using 128 bit message hash 'MD5' for HMAC authentication Tue Dec 21 14:28:49 2004 3[0]: Static Decrypt: Cipher 'DES-CBC' initialized with 64 bit key Tue Dec 21 14:28:49 2004 4[0]: Static Decrypt: Using 128 bit message hash 'MD5' for HMAC authentication Tue Dec 21 14:28:49 2004 5[0]: LZO compression initialized Tue Dec 21 14:28:49 2004 6[0]: TUN/TAP device tun0 opened Tue Dec 21 14:28:49 2004 7[0]: /sbin/ifconfig tun0 192.168.3.2 pointopoint 192.168.3.1 mtu 1500 Tue Dec 21 14:28:49 2004 8[0]: /etc/openvpn/if-up.sh tun0 1500 1541 192.168.3.2 192.168.3.1 init Tue Dec 21 14:28:49 2004 9[0]: Data Channel MTU parms [ L:1541 D:1541 EF:41 EB:19 ET:0 EL:0 ] Tue Dec 21 14:28:49 2004 10[0]: Local Options hash (VER=V3): 'bc7aeee7' Tue Dec 21 14:28:49 2004 11[0]: Expected Remote Options hash (VER=V3): '762e92e5' Tue Dec 21 14:28:49 2004 12[0]: GID set to nogroup Tue Dec 21 14:28:49 2004 13[0]: UID set to nobody Tue Dec 21 14:28:49 2004 14[0]: PTHREAD support initialized Tue Dec 21 14:28:49 2004 15[0]: UDPv4 link local (bound): [undef]:5000 Tue Dec 21 14:28:49 2004 16[0]: UDPv4 link remote: 192.168.10.252:5000 Tue Dec 21 14:28:54 2004 17[0]: Peer Connection Initiated with 192.168.10.252:5000 e) uruchomienie tunelu ogolny sposob (tego nie trzeba) Jako pierwsze sprawd, czy klient potrafi "pingn¹æ" internetowe (zewnêtrzne) IP bramy z któr¹ ma siê ³¹czyæ. Jeli nie potrafi, dalej nawet nie próbuj do czasu a¿ nie bêdzie poprawnej komunikacji przed tunelem uruchomienie jest banalnie proste: # ping IP_bramy_VPN # ping IP_user Zaladowac sterownik tun, chyba ze jest wkompilowany na stale w jadro # modprobe tun Wlaczyc forwarding # echo 1 > /proc/sys/net/ipv4/ip_forward W trybie routera 'dev tun' zestawiony kana³ dzia³a jak normalny router. Zestawiane jest po³¹czenie punkt-punkt (na wirtualnych interfejsach tun) i w celu dostêpu do zdalnej sieci nale¿y ustawiæ odpowiednio trasê routingu: # route add siec_firmowa MASKA gw ip_virtualne_bramy_vpn Uruchamiamy tunel VPN (na bramie) # openvpn --config /etc/openvpn/gw-openvpn.cfg & (na userze) # openvpn --config /etc/openvpn/user-openvpn.cfg & Po stronie windowsa albo j.w. z lini komend, albo prawym klawiszem myszy kliknij na pliku konfiguracyjnym i z menu wybierz 'Start OpenVPN on this config file' Obserwuj komunikaty, czêstym b³êdem jest literówka w cie¿ce do certyfikatów. Jeli tunel siê postawi powinno siê daæ pingn¹æ przeciwn¹ stronê, czyli po stronie Windowsa powinno daæ siê pingn¹æ IP 10.3.0.1 - jeli tak, to wszystko dzia³a OK ! ¯eby teraz móc dostaæ siê do komputerów w sieci wewnêtrznej po drugiej stronie bramy VPN trzeba dodaæ trase routingu. Zak³adaj¹c, ¿e sieæ firmowa to pula 192.168.11.0/24 nale¿y wpisaæ: ; sk³adnia unixowa # route add -net 192.168.11.0 netmask 255.255.255.0 gw 10.3.0.1 ; sk³adnia windowsowa # route add 192.168.11.0 mask 255.255.255.0 10.3.0.1 Po wpisaniu powy¿szego powinno daæ siê pingowaæ komputery w sieci wewnêtrznej firmy (np. 192.168.11.5) ¯eby przy ka¿dym zestawianiu tunela nie wpisywaæ rêcznie routingu da siê dodaæ to polecenie do samego konfiga 7. Konfiguracja OpenVPN przy u¿yciu certyfilatów SSL/TLS a) POJECIA w rozwi¹zaniu opartym o certyfikaty 1 - wystawca certyfikatu (CA), posiada swój: cakey.pem - klucz prywatny cacert.pem - certyfikat wystawiony przez siebie 2 - Brama VPN - posiada swój: gwkey.pem_bezhasla - klucz prywatny gwreq.pem - wniosek o wydanie certyfikatu gwcert.pem - wydany przez CA certyfikat 3 - User - posiada : userkey.pem - klucz prywatny userreq.pem - wniosek o wydanie certyfikatu usercert.pem - podpisany przez CA certyfikat czêci¹ wspóln¹ dla obu stron tunelu bêdzie certyfikat wystawcy (CA_cert), dzieki niemu tworzone sa certyfikaty bramy i userów (na podstawie uprzednio przygotowanych wniosków) b) Konfiguracja pliku /etc/ssl/openssl.cnf Nale¿y podaæ w³aciwy katalog dla zmiennej dir. Ja za³o¿y³em sobie katalog /keys i tam OpenSSL przygotowuje mi wszystkie pliki: # mkdir /root/keys [ CA_default ] UWAGA !!! nie powinno byc kropki !!! przed /root/keys nie tak dir = ./root/keys # Where everything is kept dir = /root/keys # Where everything is kept certs = $dir/certs # Where the issued certs are kept crl_dir = $dir/crl # Where the issued crl are kept database = $dir/index.txt # database index file. new_certs_dir = $dir/newcerts # default place for new certs. certificate = $dir/cacert.pem # The CA certificate serial = $dir/serial # The current serial number crl = $dir/crl.pem # The current CRL private_key = $dir/private/cakey.pem# The private key RANDFILE = $dir/private/.rand # private random number file Ustawiamy waznosc certyfikatu na 10 lat default_days = 3650 # how long to certify for Ustawiamy domyslne zmienne regionu [ req_distinguished_name ] countryName = Country Name (2 letter code) countryName_default = PL stateOrProvinceName = State or Province Name (full name) stateOrProvinceName_default = Poland localityName = Locality Name (eg, city) localityName_default = Wroclaw Wa¿nym jest ¿eby za³o¿y³ katalog i stworzyl pliki: # mkdir /root/keys # mkdir /root/keys/crl # mkdir /root/keys/private # mkdir /root/keys/certs # mkdir /root/keys/newcerts # touch /root/keys/index.txt # echo 00 > /root/keys/serial c) Tworzenie kluczy orodka certyfikacyjnego (wystawca certyfikatu) na tym etapie tworzone sa : - klucz publiczny osrodka certyfikacyjnego - cacert.pem - klucz prywatny osrodka certyfikacyjnego - private/cakey.pem (kluczem prywatnym podpisujemy certyfikaty) przechodzimy do katalogu /root/keys/ # cd /root/keys/ generujemy klucz prywatny wystawcy certyfikatu cakey.pem # openssl genrsa -des3 -out private/cakey.pem 1024 Podajemy haslo dostepu Enter PEM pass phrase: xxxxxx Country Name (2 letter code) [AU]:pl State or Province Name (full name) [Some-State]:dolnoslaskie Locality Name (eg, city) []:wroclaw Organization Name (eg, company) [Internet Widgits Pty Ltd]:wadex Organizational Unit Name (eg, section) []:wadex Common Name (eg, YOUR name) []:x Email Address []: generujemy certyfikat wystawcy - czyli certyfikat Root CA wazny na 10 lat # openssl req -new -x509 -days 3650 -key private/cakey.pem -out cacert.pem Jako has³o podajemy nasze hase³ko klucza prywatnego Root CA Enter PEM pass phrase: xxxxxx Country Name (2 letter code) [AU]:pl State or Province Name (full name) [Some-State]:dolnoslaskie Locality Name (eg, city) []:wroclaw Organization Name (eg, company) [Internet Widgits Pty Ltd]:wadex Organizational Unit Name (eg, section) []:wadex Common Name (eg, YOUR name) []:x Email Address []: UWAGA !!! po wygenerowaniu ustawiamy prawa do klucza prywatnego cakey.pem na 600 # chmod 400 /root/keys/private/cakey.pem # chmod 400 /root/keys/cacert.pem d) Tworzymy klucz i certyfikat dla bramy VPN 1) generujemy klucz prywatny bramy VPN # openssl genrsa -des3 -out private/gwkey.pem 1024 Problem z has³em dla klucza bramy polega na tym, ¿e przed ka¿dym zestawieniem tunela trzeba bêdzie podaæ has³o (po stronie bramy !, a nie da siê go pobraæ z pliku, przynajmniej nie widzê takiej opcji). Jeli chcesz unikn¹æ pytania, to mo¿esz ci¹gn¹æ has³o z klucza. Zrobimy to jednak na samym koñcu 2) Dalej tworzymy wniosek (do Root CA) o wydanie nam certyfikatu: # openssl req -new -key private/gwkey.pem -out gwreq.pem Potwierdzamy has³em klucza prywatnego BRAMY W pytaniu o 'Common Name' mo¿esz podaæ nazwê firmy albo inn¹ swoj¹ nazwê. Bêdzie tam te¿ pytanie o jakie dodatkowe atrybuty -- zostawiamy puste. 3) Teraz jako Root CA wydajemy bramie certyfikat: # openssl ca -notext -in gwreq.pem -out gwcert.pem {tutaj podajemy has³o klucza prywatnego Root CA - te pierwsze has³o w ogóle) Z wa¿nych plików mamy ju¿: private/cakey.pem - klucz prywatny wystawcy (Root CA) private/gwkey.pem - klucz prywatny bramy (ten bez hasla) cacert.pem - certyfikat wystawcy certyfikatu - bêdzie potrzebny w konfigu OpenVPN-a - po obu stronach tunela gwcert.pem - certyfikat bramy vpn - bêdzie potrzebny w konfigu po stronie bramy VPN Czyli brakuje nam jeszcze klucza prywatnego usera i podpisanego dla niego (przez CA) certyfikatu (krótko userkey.pem i usercert.pem). e) Tworzymy klucz i certyfikat dla zdalnego uzytkownika 1) generujemy klucz prywatny zdalnego uzytkownika # openssl genrsa -des3 -out private/userkey.pem 1024 2) Dalej tworzymy wniosek (do Root CA) o wydanie nam certyfikatu: # openssl req -new -key private/userkey.pem -out userreq.pem (teraz nale¿y podaæ has³o klucza prywatnego usera - te powy¿sze) 3) Teraz jako Root CA wydajemy zdalnemu uzytkownikowi certyfikat: # openssl ca -notext -in userreq.pem -out usercert.pem (teraz nale¿y podaæ oczywicie has³o klucza wystawcy CA - czyli to pierwsze hase³ko w ogóle) Mo¿na rozwa¿yæ opcjê skrócenia czasu wa¿noci kluczy userów do np. kilku miesiêcy (ustawia to prze³¹cznik enddate przy podpisie przez CA - format YYMMDDHHMMSSZ) f) Sciagniecie hasla z klucza bramy Teraz mo¿emy ci¹gn¹æ has³o z klucza bramy: # openssl rsa -in private/gwkey.pem -out private/gwkey.pem_bezhasla oczywicie operacja siê uda tylko pod warunkiem podania poprawnego has³a dla gwkey.pem g) zgromadzone certyfikaty : cakey.pem , cacert.pem , gwkey.pem , gwcert.pem , userkey.pem , usercert.pem Pliki *req.pem (wnioski) mo¿esz skasowaæ - nie s¹ ju¿ potrzebne h) Przed przyst¹pieniem do edycji konfiga musimy wygenerowaæ jeszcze jeden plik (Diffie Hellman parameters) # openssl dhparam -out dh1024.pem 1024 i) Przygotowujemy pliki konfiguracyjne Maj¹c ju¿ wszystkie pliki kluczy kopiujemy do jednego podkatalogu np. /etc/openvpn/certs/ i przystêpujemy do edycji konfiga 1) plik konfiguracyjny serwera (bramy VPN) # przyk³adowa konfiguracja przy u¿yciu certyfikatów. Zwróc uwagê # odró¿nienie klienta i serwera. # plik konfiguracyjny serwera (bramy VPN) dev tun tun-mtu 1500 ifconfig 10.3.0.1 10.3.0.2 ; port 5000 user nobody group nogroup comp-lzo ; ping 15 ; ping 15 ; ping-restart 45 ; ping-timer-rem ; persist-tun ; persist-key verb 4 tls-server dh /etc/openvpn/certs/dh1024.pem # certyfikat wystawcy (CA) ca /etc/openvpn/certs/cacert.pem # certyfikat bramy cert /etc/openvpn/certs/gwcert.pem # klucz prywatny bramy key /etc/openvpn/certs/gwkey.pem # lub /etc/openvpn/certs/gwkey.pem_bezhasla ;eof 2) plik konfiguracyjny usera remote IP_SERWERA_VPN # faktyczne "zewnêtrzne" IP Internetowe Bramy VPN port 5000 dev tun tun-mtu 1500 ifconfig 10.3.0.2 10.3.0.1 tls-client Certificate Authority file ca c:\progra~1\openvpn\config\cacert.pem # Our certificate/public key cert c:\progra~1\openvpn\config\usercert.pem # Our private key key c:\progra~1\openvpn\config\userkey.pem ; ping-restart 60 ; ping-timer-rem ; persist-tun ; persist-key ; resolv-retry 86400 # # keep-alive ping ping 10 # # enable LZO compression comp-lzo verb 4 ; eof j) Uruchamiamy tunel VPN (na bramie) # openvpn --config /etc/openvpn/gw-openvpn.cfg & (na userze) # openvpn --config /etc/openvpn/user-openvpn.cfg & Po stronie windowsa albo j.w. z lini komend, albo prawym klawiszem myszy kliknij na pliku konfiguracyjnym i z menu wybierz 'Start OpenVPN on this config file' Obserwuj komunikaty, czêstym b³êdem jest literówka w cie¿ce do certyfikatów. Jeli tunel siê postawi powinno siê daæ pingn¹æ przeciwn¹ stronê, czyli po stronie Windowsa powinno daæ siê pingn¹æ IP 10.3.0.1 - jeli tak, to wszystko dzia³a OK ! ¯eby teraz móc dostaæ siê do komputerów w sieci wewnêtrznej po drugiej stronie bramy VPN trzeba dodaæ trase routingu. Zak³adaj¹c, ¿e sieæ firmowa to pula 192.168.11.0/24 nale¿y wpisaæ: ; sk³adnia unixowa # route add -net 192.168.11.0 netmask 255.255.255.0 gw 10.3.0.1 ; sk³adnia windowsowa # route add 192.168.11.0 mask 255.255.255.0 10.3.0.1 Po wpisaniu powy¿szego powinno daæ siê pingowaæ komputery w sieci wewnêtrznej firmy (np. 192.168.11.5) ¯eby przy ka¿dym zestawianiu tunela nie wpisywaæ rêcznie routingu da siê dodaæ to polecenie do samego konfiga k) 8. VPN + IPX a) uaktywnic modul do jadra Networking options ---> <*> 802.1d Ethernet Bridging Network device support ---> <*> Universal TUN/TAP device driver support <*> Ethertap network tap (OBSOLETE) b) zainstalowac pakiet pakiet bridge-utils # apt-get install bridge-utils 9. Uruchomienie VPN + IPX z wykorzystaniem klucza sekretnego a) tworzymy skrypt uruchomieniowy dla bramy VPN # touch ./ipx z zawartoscia : tworzymy most i dodaæ do niego interfejsy tap0 i eth1 , gdzie eth1 to karta ³¹cz¹ca bramê VPN z sieci¹ wewnêtrzn¹ LAN firmy #!/bin/bash openvpn --mktun --dev tap0 ifconfig eth1 0 brctl addbr br0 brctl addif br0 eth1 brctl addif br0 tap0 ifconfig tap0 0.0.0.0 promisc up ifconfig eth1 0.0.0.0 promisc up ifconfig br0 192.168.12.1 netmask 255.255.255.0 broadcast 192.168.12.255 /usr/local/sbin/openvpn --config /etc/openvpn/gw-ipx.cfg & tworzymy plik konfiguracyjny gw-ipx.cfg : # touch gw-ipx.cfg z zawartoscia : dev tap0 port 5000 tun-mtu 1500 tun-mtu-extra 64 remote 192.168.10.249 user nobody group nogroup comp-lzo secret /etc/openvpn/secret.key cipher DES-CBC ping-restart 60 ping 10 verb 3 b) tworzymy skrypt uruchomieniowy dla klienta VPN wszystko tak samo jak dla bramy, tyle ze zmieniamy IP: z 192.168.12.1 na 192.168.12.2 z 192.168.10.249 na 192.168.10.252 c) G³ówna ró¿nica z TUN na TAP w pliku konfiguracyjnym to : nazwa interfejsu - tap zamiast tun brak adresów lokalnego i zdalnego wirtualnego interfejsu tap, jest tylko adres sieci (klasa adresowa tak jak w wewn¹trz firmy) po stronie klienta (Windows) konfig wygl¹da dok³adnie tak samo, tyle ¿e trzeba podaæ jeszcze adres IP bramy VPN (ten internetowy - faktyczny IP z czym sie ma ³¹czyæ): remote xx.yy.qqq.zz I tyle , w przypadku bridgowania nie trzeba (z za³o¿enia) ustawiaæ ¿adnych tras routingu - jestemy przecie¿ wewn¹trz sieci firmowej :) 10. Uruchomienie VPN + IPX z uzyciem certyfikatow SSL/TLS a) tworzymy skrypt uruchomieniowy dla bramy VPN # touch ./ipx z zawartoscia : tworzymy most i dodaæ do niego interfejsy tap0 i eth1 , gdzie eth1 to karta ³¹cz¹ca bramê VPN z sieci¹ wewnêtrzn¹ LAN firmy #!/bin/bash openvpn --mktun --dev tap0 ifconfig eth1 0 brctl addbr br0 brctl addif br0 eth1 brctl addif br0 tap0 ifconfig tap0 0.0.0.0 promisc up ifconfig eth1 0.0.0.0 promisc up ifconfig br0 192.168.12.1 netmask 255.255.255.0 broadcast 192.168.12.255 /usr/local/sbin/openvpn --config /etc/openvpn/gw-ipx.cfg & tworzymy plik konfiguracyjny gw-ipx.cfg : # touch gw-ipx.cfg z zawartoscia : dev tap0 port 5000 tun-mtu 1500 tun-mtu-extra 64 remote 192.168.10.249 user nobody group nogroup comp-lzo auth MD5 cipher DES-CBC ping-restart 60 ping 10 verb 3 tls-server dh /etc/openvpn/certs/dh1024.pem ca /etc/openvpn/certs/cacert.pem cert /etc/openvpn/certs/gwcert.pem key /etc/openvpn/certs/gwkey-gh.pem log /var/log/openvpn.log b) tworzymy skrypt uruchomieniowy dla klienta VPN wszystko tak samo jak dla bramy, tyle ze zmieniamy tls-client dh /etc/openvpn/certs/dh1024.pem ca /etc/openvpn/certs/cacert.pem cert /etc/openvpn/certs/usercert.pem key /etc/openvpn/certs/userkey-gh.pem IP: z 192.168.12.1 na 192.168.12.2 z 192.168.10.249 na 192.168.10.252 c) tworzymy skrypt przeladowujacy program openvpn # touch ./ipxr z zawartoscia #!/bin/bash /usr/local/sbin/openvpn --config /etc/openvpn/gw-ipx.cfg &

