OpenVPN serveri kasutamine Eesti ID-kaardiga

Allikas: Kuutõrvaja

Sissejuhatus

OpenVPN lahendust saab seadistada käima selliselt, et kasutaja autentimiseks kasutatakse tema Eesti ID-kaardi isikutuvastuse ehk autentimise sertifikaati. Seejuures on oluline kontrollida lisaks Eesti ID-kaardi sertifikaadi omamisele, et

  • sertifikaat kehtib, seda saab teha reeglina PKI haldaja poolt peetava tühistusnimekirja abil
  • sertifikaat kuulub süsteemi kasutajate hulka kuuluvale kasutajale, vastasel korral saavad VPN'i kasutada kõik ID-kaardi kasutajad; palas OpenVPN_serveri_kasutamine_OpenBSD'ga#Kasutaja_sertifikaadi_kontroll on toodud näide sellise kontrolli teostamiseks

OpenVPN serveri seadistamine

Serveri poolel sobib kasutada nt sellist seadistusfaili

 local 192.168.99.90
 port 1194
 dev tun0
 ca /etc/openvpn/keys/SK-ca.pem
 cert /etc/openvpn/keys/www.loomaaed.tartu.ee-cert.pem
 key /etc/openvpn/keys/www.loomaaed.ee-key.pem
 
 dh /etc/openvpn/keys/dh2048.pem
 mode server
 tls-server
 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

Kus SK-CA.pem faili on ühendatud kokku neli sertifikaati, neid saab kopeerida Sertifitseerimiskeskuse kodulehehelt, www.sk.ee

 # cat KLASS3-SK.PEM.pem ESTEID-SK.PEM.pem ESTEID-SK-2007.PEM.pem JUUR-SK.PEM.pem > /etc/openvpn/SK-CA.pem

kusjuures vpn.loomaaed.tartu.ee-cert.pem ja vpn.loomaaed.tartu.ee-key.pem vastavad SK poolt väljastatud nö serveri sertifikaadile (nö tavaline veebiserveri sertifikaat).

  • SK on väljastanud KLASS3-SK, ESTEID-SK ja ESTEID-SK-2007 serifikaadid oma juursertifikaadi JUUR-SK suhtes
  • kasutajate ID-kaartidel olevad sertifikaadid on väljastatud ESTEID-SK ja ESTEID-SK-2007 suhtes
  • serverite sertifikaate väljastatakse KLASS3-SK suhtes

OpenVPN serveri kliendipõhised seadistused

Kataloogi /etc/openvpn/ccd saab moodustada igale kliendile vastavalt tema CN väärtusele seadistusfaili, nt

 # cat /etc/openvpn/ccd/OOLBERG_IMRE_37003212713
 ifconfig-push 172.19.0.5 172.19.0.6
 push "route 192.168.2.0 255.255.255.0"

Kusjuures kui Eesti ID-kaardi kasutaja nimes esineb täpitähti (õäöü) või susisevaid tähti (šž), siis võib vastav failinimi olla nt selline, erilised tähed on asendatud _ märkidega, nt Vassilissa Šurikova '__URIKOVA_VASSILISSA_38703100377'.

Kasutamine

Eesti-ID kaardi kasutamisel esitatakse serveri poolel selline logi, muu hulgas võib tähele panna, et kasutatakse 1024 bit võtmeid

 # openvpn --config openvpn.conf
 Sun Apr 26 09:03:34 2009 OpenVPN 2.1_rc11 x86_64-pc-linux-gnu [SSL] [LZO2] [EPOLL] [PKCS11] built on Sep 18 2008
 Sun Apr 26 09:03:34 2009 Diffie-Hellman initialized with 2048 bit key
 Sun Apr 26 09:03:34 2009 /usr/bin/openssl-vulnkey -q -b 1024 -m <modulus omitted>
 Sun Apr 26 09:03:34 2009 TLS-Auth MTU parms [ L:1542 D:138 EF:38 EB:0 ET:0 EL:0 ]
 Sun Apr 26 09:03:34 2009 ROUTE default_gateway=192.168.10.254
 Sun Apr 26 09:03:34 2009 TUN/TAP device tun0 opened
 Sun Apr 26 09:03:34 2009 TUN/TAP TX queue length set to 100
 Sun Apr 26 09:03:34 2009 /sbin/ifconfig tun0 172.16.1.1 pointopoint 172.16.1.2 mtu 1500
 Sun Apr 26 09:03:34 2009 /sbin/route add -net 172.16.1.0 netmask 255.255.255.0 gw 172.16.1.2
 Sun Apr 26 09:03:34 2009 Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:135 ET:0 EL:0 AF:3/1 ]
 Sun Apr 26 09:03:34 2009 GID set to nogroup
 Sun Apr 26 09:03:34 2009 UID set to nobody
 Sun Apr 26 09:03:34 2009 Socket Buffers: R=[124928->131072] S=[124928->131072]
 Sun Apr 26 09:03:34 2009 UDPv4 link local (bound): [undef]:1194
 Sun Apr 26 09:03:34 2009 UDPv4 link remote: [undef]
 Sun Apr 26 09:03:34 2009 MULTI: multi_init called, r=256 v=256
 Sun Apr 26 09:03:34 2009 IFCONFIG POOL: base=172.16.1.4 size=62
 Sun Apr 26 09:03:34 2009 IFCONFIG POOL LIST
 Sun Apr 26 09:03:34 2009 Initialization Sequence Completed
 
 Sun Apr 26 09:09:02 2009 MULTI: multi_create_instance called
 Sun Apr 26 09:09:02 2009 192.168.10.101:44287 Re-using SSL/TLS context
 Sun Apr 26 09:09:02 2009 192.168.10.101:44287 LZO compression initialized
 Sun Apr 26 09:09:02 2009 192.168.10.101:44287 Control Channel MTU parms [ L:1542 D:138 EF:38 EB:0 ET:0 EL:0 ]
 Sun Apr 26 09:09:02 2009 192.168.10.101:44287 Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:135 ET:0 EL:0 AF:3/1 ]
 Sun Apr 26 09:09:02 2009 192.168.10.101:44287 Local Options hash (VER=V4): '530fdded'
 Sun Apr 26 09:09:02 2009 192.168.10.101:44287 Expected Remote Options hash (VER=V4): '41690919'
 Sun Apr 26 09:09:02 2009 192.168.10.101:44287 TLS: Initial packet from 192.168.10.101:44287, sid=c50c829f 8e240ecc
 Sun Apr 26 09:09:13 2009 192.168.10.101:44287 VERIFY OK: depth=2, /emailAddress=pki@sk.ee/C=EE/O=AS_Sertifitseerimiskeskus/CN=Juur-SK
 Sun Apr 26 09:09:13 2009 192.168.10.101:44287 VERIFY OK: depth=1, /C=EE/O=AS_Sertifitseerimiskeskus/OU=ESTEID/CN=ESTEID-SK_2007
 Sun Apr 26 09:09:13 2009 192.168.10.101:44287 VERIFY OK: depth=0, /C=EE/O=ESTEID/OU=authentication/CN=OOLBERG_IMRE_37003212713/SN=OOLBERG  /GN=IMRE/serialNumber=37003212713
 Sun Apr 26 09:09:13 2009 192.168.10.101:44287 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
 Sun Apr 26 09:09:13 2009 192.168.10.101:44287 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
 Sun Apr 26 09:09:13 2009 192.168.10.101:44287 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
 Sun Apr 26 09:09:13 2009 192.168.10.101:44287 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
 Sun Apr 26 09:09:13 2009 192.168.10.101:44287 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 1024 bit RSA
 Sun Apr 26 09:09:13 2009 192.168.10.101:44287 [OOLBERG_IMRE_37003212713] Peer Connection Initiated with 192.168.10.101:44287
 Sun Apr 26 09:09:13 2009 OOLBERG_IMRE_37003212713/192.168.10.101:44287 MULTI: Learn: 172.16.1.6 -> OOLBERG_IMRE_37003212713/192.168.10.101:44287
 Sun Apr 26 09:09:13 2009 OOLBERG_IMRE_37003212713/192.168.10.101:44287 MULTI: primary virtual IP for OOLBERG_IMRE_37003212713/192.168.10.101:44287: 172.16.1.6
 Sun Apr 26 09:09:14 2009 OOLBERG_IMRE_37003212713/192.168.10.101:44287 PUSH: Received control message: 'PUSH_REQUEST'
 Sun Apr 26 09:09:14 2009 OOLBERG_IMRE_37003212713/192.168.10.101:44287 SENT CONTROL [OOLBERG_IMRE_37003212713]: 'PUSH_REPLY,route 172.16.1.1,topology net30,ping 10,ping-restart 120,ifconfig 172.16.1.6 172.16.1.5' (status=1)

Kliendi poole logi on esitatud punktis http://kuutorvaja.eenet.ee/wiki/OpenVPN_kliendi_kasutamine_Debianiga#Eesti_ID-kaardi_kasutamine_OpenVPN_kliendiga

Kasulikud lisamaterjalid