OpenVPN? s certifikátmi
Základný problém pri vytváraní VPN systémov tvorí autentifikácia. Je mnoho spôsobov ako preveriť identitu používateľa a jeden z nich je aj preverenie identity prostredníctvom certifikátu a bezpečnostnej frázy, ktorá je s certifikátom spojená. Hlavná výhoda pri tejto kombinácii je oddelenie bezpečnosti na dve časti:
- niečo, čo musím vedieť (heslo)
- niečo, čo musím mať (certifikát - súbor)
Tento návod je rozdelený do dvoch častí - vytváranie a správa samotných certifikátov prostredníctvom open-source nástroja XCA a inštalácia a konfigurácia openVPN v prostredí OS Linux.
XCA
XCA predstavuje open-source aplikáciu prostredníctvom ktorej je možné spravovať elektronické certifikáty a kľúče používateľov, ich import a export. Zároveň dáva k dispozícii možnosť vytvorenia tzv. "self-signed" certifikačnej autority, ktorou sa budú certifikáty podpisovať a iba certifikáty podpísané touto certifikačnou autoritou budú mať právo autentifikovať sa voči neskôr vytvorenému VPN systému.
Inštalácia
Aplikáciu XCA je možné stiahnúť zo stránky projektu na sourceforge.net -
http://sourceforge.net/projects/xca. Aplikáciu stačí nainštalovať bežným spôsobom (next, next...) bez špecifických nastavení.
Prvé spustenie
Pri prvom spustení je potrebné definovať databázový súbor do ktorého sa budú certifikáty a kľúče ukladať. Pri vytváraní novej databázy, rovnako ako pri jej otváraní je potrebné zadať heslo pod ktorým budú príslušné certifikáty a kľúče šifrované.
Vytvorenie SELF-signed certifikačnej autority
Self-signed certificate je špeciálny typ certifikátu, ktorý si podpisuje certifikačná autorita sama a teda týmto dokazuje, že sama sebe verí.
- Správa certifikátov
- Vytvorenie nového certifikátu
- Vytvorenie základných nastavení
- Pri vytváraní SELF-SIGNED certifikátu je možné zároveň vygenerovať privátny kľúč voľbou "generate a new key"
- Rozšírenia: Typ certifikátu - Certification authority, time range
Vytvorenie privátneho kľúča
- Sekcia private keys, voľba New key
- Vytvorenie nového privátneho kľúča
- Nastavenie hesla, voľba pravým tlačidlom Change password
Vygenerovanie žiadosti o podpísanie kľúča a vygenerovanie certifikátu
Žiadosť o podpísanie certifikátu (certificate sign request) je možné vytvoriť na vzdialenom systéme a následne do nástroja správy importovať, alebo žiadosť o podpis vytvoriť lokálne.
- Žiadosti o podpísanie kľúča a vygenerovanie certifikátu
- Základné nastavenia žiadosti
- Výber kľúča na podpísanie
- Podpísanie žiadosti certifikačnou autoritou
- Výber certifikačnej autority ktorou sa certifikát podpíše a doba platnosti (extensions)
Export certifikátov
- Export certifikátov certifikačnej autority
- Export privátneho kľúča pre server
- Export používateľského certifikátu
- Export privátneho používateľského kľúča
OpenVPN?
Inštalácia servera
root@server:/# apt-get install openvpn
Konfigurácia servera v /etc/openvpn/server.conf:
port 443
proto tcp
dev tap0
ca /etc/openvpn/server.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh1024.pem
#crl-verify /etc/openvpn/server.crl
server 10.10.10.0 255.255.255.0
ifconfig-pool-persist /etc/openvpn/ipp.txt
keepalive 10 120
comp-lzo
persist-key
persist-tun
status /etc/openvpn/openvpn-status.log
verb 3
client-to-client
Inštalácia klienta
Konfigurácia VPN klienta:
client
dev tap
proto tcp
port 443
remote 192.168.198.129
resolv-retry infinite
nobind
persist-key
ca SERVER-CA.crt
cert Peter_Fecilak.crt
key Peter_Fecilak.pem
comp-lzo
verb 3
#redirect-gateway