OpenVPN ID-kaardi skriptid
Allikas: lillepuu.com
Juhendi koostamisel kasutatud tarkvaraversioonid:
- Server: OpenSUSE 11.3 (openvpn-2.1.1-4.1.i586)
- Klient:
- Windows XP SP3 x86 (openvpn-2.1.2, ID-kaart 1.4.92, ID-kaardi draiver 0.8.7 Firefoxile)
- Windows 7 x64 (openvpn-2.1.2, ID-kaart 1.5.71, ID-kaardi draiver 0.8.7 Firefoxile)
Võrk
- OpenVPN serveri IP: 192.168.99.90
- OpenVPN võrk: 172.19.0.0/255.255.0.0
Eelduseks on OpenVPN 2.1 või uuema kasutamine nii kliendil kui serveril.
Juhendi koostamise aluseks on http://kuutorvaja.eenet.ee/wiki/OpenVPN_serveri_kasutamine_Eesti_ID-kaardiga, sealt leiab teema kohta põhjalikumat infot. Antud juhend on mõeldud lihtsalt ja kiirelt OpenVPN ID-kaardi toe seadistamiseks.
Server
- paigaldame SK serdid http://www.sk.ee/pages.php/0202040501
# cat JUUR-SK.PEM.cer ESTEID-SK.PEM.cer ESTEID-SK\ 2007.PEM.cer KLASS3-SK.PEM.cer KLASS3-SK_2010.pem > /etc/openvpn/SK-ca.pem
- paigaldame tls-verify skripti, muuda skriptis isikukood enda omaks
# cat /etc/openvpn/tls-verify-esteid.pl
#!/usr/bin/perl
($depth, $x509) = @ARGV;
if ($depth == 0) {
if ($ENV{X509_0_serialNumber} eq "3780917xxxx") {
exit 0;
}
exit 1;
}
exit 0;
- openvpn serveri konfiguratsioonifaili näidis:
local 192.168.99.90 port 1194 dev tun0 ca /etc/openvpn/keys/SK-ca.pem dh /etc/openvpn/keys/dh2048.pem mode server tls-server tls-verify /etc/openvpn/tls-verify-esteid.pl ifconfig 172.19.0.1 172.19.0.2 keepalive 10 120 comp-lzo user nobody group nobody persist-key persist-tun status /var/log/openvpn-status.log verb 3 client-config-dir /etc/openvpn/ccd route 172.19.0.0 255.255.0.0
Windowsi klient
- seadista id-kaardi tugi firefoxile http://ideelabor.ee/id-kaart/windows/
- kontrolli, et id-kaart firefoxiga toimib: https://www.sk.ee/cgi-bin/tervitus
- Kopeeri serverist SK-ca.pem c:\Program Files\OpenVPN\config kataloogi (näiteks FileZilla abil)
- openvpni konfigratsiooni lisatava pkcs11-id stringi hankimiseks käivita openvpn windowsi käsurealt (cmd.exe)
cd C:\Program Files\OpenVPN\bin openvpn --show-pkcs11-ids c:\WINDOWS\system32\opensc-pkcs11.dll
kui ID-kaart on korrektselt seadistatud, kuvatakse väljundis midagi sellist:
The following objects are available for use. Each object shown below may be used as parameter to --pkcs11-id option please remember to use single quote mark.
Certificate
DN: /C=EE/O=ESTEID/OU=authentication/CN=LILLEPUU,MARTIN,3780917xxxx/SN=LILLEPUU/GN=MARTIN/serialNumber=3780917xxxx
Serial: xxxxxx54
Serialized id: AS\x20Sertifitseerimiskeskus/PKCS\x2315\x20emulated/A000xxxx/MARTIN\x20LILLEPUU\x20\x28PIN1\x29/01
Certificate
DN: /C=EE/O=ESTEID/OU=digital signature/CN=LILLEPUU,MARTIN,37809170293/SN=LILLEPUU/GN=MARTIN/serialNumber=3780917xxxx
Serial: xxxxxx55
Serialized id: AS\x20Sertifitseerimiskeskus/PKCS\x2315\x20emulated/A000xxxx/MARTIN\x20LILLEPUU\x20\x28PIN2\x29/02
Vajalik rida on PIN1 sisaldav Serialized id (esimene), mis tuleb lisada openvpn kliendi pkcs11-id väärtuseks, asendades \ -> \\
- Kliendi näidiskonfiguratsioonifail (client.ovpn):
client dev tun proto udp remote 192.168.99.90 resolv-retry infinite nobind persist-key persist-tun ca SK-CA.pem pkcs11-providers c:\\windows\\system32\\opensc-pkcs11.dll pkcs11-id "AS\\x20Sertifitseerimiskeskus/PKCS\\x2315\\x20emulated/A000xxxx/MARTIN\\x20LILLEPUU\\x20\\x28PIN1\\x29/01" pkcs11-pin-cache 300 auth-retry nointeract comp-lzo verb 3
- esmaseks testimiseks võib käivitada OpenVPN käsurealt:
cd \Program Files\OpenVPN\config ..\bin\openvpn.exe --config client.ovpn
- Lae PKCS11 pin küsimise toega OpenVPN GUI [1]
- Käivita vpn ühendus, kui kõik läks plaanipäraselt siis küsitakse pin1 ja luuakse vpn ühendus
Viited, mille alusel see juhend kokku pandud on:
- OpenVPN serveri kasutamine Eesti ID-kaardiga - Imre Oolberg
- Kasutaja sertifikaadi kontroll - Imre Oolberg
- http://www.ziggurat29.com/ OpenVPN GUI PKCS#11 toega versioon
- http://openvpn.net/index.php/open-source/documentation/howto.html#pkcs11 OpenVPN PKCS#11 HOWTO
Märkus1: Tõenäoliselt töötab ülaltoodud juhend ka Windowsi serveriga, tls-verify skripti käivitamiseks saab kasutada näiteks ActivePerli
Märkus2: kui ID-kaart lugejast eemaldada, toimib aktiivne openvpn ühendus vaikimisi veel 5 minutit. Võtme kontrolli sagedust saab kliendi konfiguratsioonis muuta pkcs11-pin-cache <sekundid> parameetriga.
Märkus3: hetkel ei ole võimalik serveris OCSP abil kontrollida ID-kaardi kliendisertifikaadi kehtivust, kuna tls-verify skriptile ei edastata parameetrina sertifikaati [2]
--martin 29. august 2010, kell 07:48 (UTC)

