Menu:
  :. HomePage
  :. Linux
  :. Solaris
  :. Windows
  :. Programování
  :. Java + Tomcat
  :. HW obecně
  :. VoIP - Asterisk
  :. Cisco - Mikrotik - Síť
  :. O mě
  :. Fotogalerie

 Testovací:
  :. ASP projekt
  :. JSP projekt



 Doporučuji:

Savvy - profesionální webhosting, webdesign a serverhosting
Internetový obchod Stromeček.cz - hardware, software a mobily za super ceny
AirCon Miroslav
Galerie fotek
Notebooky
Webdesign Praha

www.eprdel.cz
www.root.cz
Lumimont

NAVRCHOLU.cz
A



Vaše IP:
18.216.190.167

OpenVPN 2 - instalace a vytvoření certifikátů (klient-server)

Vytvoreni certifikatu SSL:

Adresář easy-rsa je v mojem systému umístěn v "/usr/share//openvpn/easy-rsa". Zkopirujte si tedy adresář "2.0", třeba do /etc/openvpn/easyrsa. To je nutné, protože pozdější update/upgrade by tento adresář mohl přepsat a přišli byste o svá nastavení.

Nyní se přepněte do /etc/openvpn/easyrsa a editujte soubor "vars". Pozměnte v něm obsah proměnných tak, aby odpovídaly realitě.

# /etc/openvpn/easyrsa/vars
# editujte! Uvadim jen radky, ktere by se mely zmenit.
export EASY_RSA="/etc/openvpn/easyrsa"
export KEY_DIR="$EASY_RSA/keys" # pokud prepisete keys na cokoliv jineho, berte na to ohled v dalsim textu
export KEY_SIZE=1024 # sirka diffie-hellman klice, paranoidni muzou nastavit na 2048,
                     # ale generovani trva dlouho, tak si to rozmyslete
export KEY_COUNTRY="CZ"
export KEY_PROVINCE="CZECH"
export KEY_CITY="MOJE MESTO"
export KEY_ORG="MOJE ORGANIZACE"
export KEY_EMAIL="mujmail@mojeorganizace.tld" # neni nutne, ale pokud chcete aby vsechny
                                              # certifikaty obsahovaly stejny mail, tak prosim


Pak už jen stačí vytvořit certifikáty pomocí serie příkazu

# source ./vars   // zavede promenne ze souboru do prostredi
# ./clean-all     // SMAZE ./keys adresar a znovu ho vytvori, takze pokud uz mate CA
                  // vytvorenou, jednejte opatrne
# ./build-ca      // vytvori lokalni CA a provede upravy openssl.cnf, ktery je siren s easy-rsa,
                  // takze neupravi ten co mate v systemu, vase CA (pokud s ni budete
                  // pracovat pres skripty easy-rsa) bude pouzivat openssl.cnf v
                  // adresari s easyrsa.
# ./build-dh      // vygeneruje diffie-hellman klic do ./keys/
# ./build-key-server server // vytvori v ./openssl.cnf sekci server a certifikat pro
                            //server v ./keys/. Pote nabidne jeho podepsani.
# ./build-key klient // vytvori klic a certifikat klienta do adresare ./keys/



Při generování klientských klíčů věnujte pozornost při vyplňování "common name". Ta by mela byt pro kazdeho klienta jina. Má to význam u voleb "ifconfig-pool-persist" a několika dalších. Nakonec potvrďte podepsání klíče.

Nyní překopirujte soubory dh1024.pem (nebo dh2048.pem, zalezi na tom co jste si nastavili), ca.crt, server.crt a server.key z adresáře ./keys do /etc/openvpn/ (stále jste v /etc/openvpn/easyrsa/). Můžete je taky nechat tam, kde jsou, ale později v konfiguráku openvpn na to musíte vzít ohled.

Na klientský počítač nakopirujte soubory ca.crt, client.key a client.crt.

Nyní máte svou vlastní lokální CA. Pokud chcete přidat klienta, musíte znovu exportovat proměnné do prostředí (source ./vars) a spustit ./build-key jinyklient. Explicitně můžete podepsat certifikat pomocí skriptu ./sign-req (v easyrsa adresáři). Ale! Pokud už jste certifikat podepsali, nezkoušejte to dělat explicitně ještě jednou - proces skončí chybou a budete mít místo certifikátu jen soubor nulové délky.

Nastaveni OpenVPN Server:


# Konfigurace openvpn
# Nebudu komentovat celý soubor, od toho je tu dokumentace. Přesto ale vypíchnu některé volby.
# openvpn server
# soubor /etc/openvpn/openvpn.conf

port 1194 # povolit na firewallu
proto udp
dev tun

# certifikaty vygenerovane pro server, pokud je ulozite jinde nez v /etc/openvpn/, tak k nim musite v techto volbach dopsat cestu
ca ca.crt
cert server.crt
key server.key # MUJ TAJNY KLIC, NEDAVAT, NEUKAZOVAT :-)
dh dh1024.pem
server 10.8.0.0 255.255.255.0 # namapuje subnet pro server, server si vybere jedu IP adresu a zbytek bude prirazovat klientum
; ifconfig-pool-persist ipp.txt # pokud se klient odpoji a znovu pripoji, bude mu obnovena jeho puvodni ip adresa, nesnese se
# z volbou "duplicate-cn". Klienty rozlisuje podle common name v certifikatu klienta.

# pomoci push lze vnutit nektera nastaveni klientum, vhodne pro vnuceni route, dns a wins serveru
push "route 192.168.100.0 255.255.255.0"
push "route 10.0.0.0 255.255.255.0"
push "route 10.8.0.0 255.255.255.0"
push "client-to-client"
; push "redirect-gateway" # presmeruje "VSECHNU" komunikaci pres openvpn, takze bacha
push "dhcp-option DNS 192.168.100.10"
push "dhcp-option WINS 192.168.100.10"

client-to-client # klienti by se mezi sebou meli navzajem videt - nevim proc, ale me to nefunguje

duplicate-cn # moznost pripojeni vice uzivatelu se stejnym certifikatem

keepalive 10 120
comp-lzo # komprimace prenosu, vrele doporucuji, navyseni je znat. Je treba mit lzo knihovny v systemu.

; max-clients 100
; user nobody
; group nobody

persist-key
persist-tun

status openvpn-status.log # do tohoto souboru bude ukladat informace o stavu serveru
log /var/log/openvpn.log
log-append /var/log/openvpn.log

verb 9 # nejvyssi stupen vyrecnosti, pro bezne uziti se hodi tak 3. Mozne hodnoty: 0-9



Nastaveni u klienta:

Nastaveni klienta ve windows.


# C:\Program Files\OpenVPN\config\openvpn.ovpn
# PRIPONA MUSI BYT .ovpn

tls-client
remote muj_server.moje_domena.cz # adresa serveru, ocividne

dev tun
proto udp # volitelne, klient pozna, co za protokol pouzivate
resolv-retry infinite
nobind

pull # prijme volby pushnute serverem

persist-key
persist-tun

# certifikaty, pokud je mate v jinem adresari nez config. soubor, tak musite uvest cest.
# POZOR! Cesta musi byt napriklad C:\\Program Files\\OpenVPN\\config\\
ca ca.crt
cert klient.crt
key klient.key

ping 15
ping-restart 45
ping-timer-rem
persist-key

comp-lzo

verb 9



Kontrola klienskych certifikatu:

Již několikrát jsem se setkal s chybně vytvořeným klienským certifikátem a následně se přes SSL VPN nespojila, tak již raději si každý certifikát zkontroluji pomocí:

openssl verify -CAfile cacert.crt -purpose sslclient your.crt




Odkazy:

 
« Zpět na seznam