OpenVPN kliendi kasutamine Debianiga

Allikas: Kuutõrvaja

Sissejuhatus

TODO

OpenVPN ruuditud lahenduse kliendi seadistamine

Palas http://kuutorvaja.eenet.ee/wiki/OpenVPN_serveri_kasutamine_OpenBSD'ga#OpenVPN_ruuditud_lahenduse_serveri_seadistamine kirjeldatud serverile vastava kliendi seadistamiseks sobib kasutada sellist seadistusfaili

client
dev tun0
proto udp
remote 192.168.99.90
resolv-retry infinite
nobind
persist-key
persist-tun
ca /etc/openvpn/keys/VPN-TLA-ca.pem
cert /etc/openvpn/keys/tla-martkask.vpn.loomaaed.tartu.ee-cert.pem
key /etc/openvpn/keys/tla-martkask.vpn.loomaaed.tartu.ee-key.pem
comp-lzo
verb 3

Käivitamine toimub mõlemal juhul öeldes, kusjuures kui seadistusfailis on näidatud sertifikaatide asukohad suhtelise teega, peab asuma /etc/openvpn kataloogis

# cd /etc/openvpn
# openvpn --config openvpn.conf

Tulemusena seadistatakse kliendi arvutis tun seade ja lisatakse ruutingud.

OpenVPN sillatud lahenduse kliendi seadistamine

OpenVPN kliendile vajalikud võtmed moodustatakse OpenVPN serveris ja kopeeritakse klienti, nii nagu kirjeldatud sertifikaatide punktis.

Kliendi poolel sobib sillatud režiimis kasutada sellist seadistusfaili

 # cat /etc/openvpn/openvpn.conf
 client
 dev tap
 proto udp
 remote 172.16.2.1
 resolv-retry infinite
 nobind
 persist-key
 persist-tun
 ca keys/ca.crt
 cert keys/kalake.crt
 key keys/kalake.key
 comp-lzo
 verb 3

Käivitamine toimub mõlemal juhul öeldes, kusjuures kui seadistusfailis on näidatud sertifikaatide asukohad suhtelise teega, peab asuma /etc/openvpn kataloogis

 # cd /etc/openvpn
 # openvpn --config openvpn.conf

Resolvconf süsteemi kasutmine

Kui OpenVPN klienti on paigaldatud resolvconf tarkvara ja server saadab nn dhcp-option abil dns serveri aadressi, serveri seadistusfailis on nt

 push "dhcp-option DNS 10.0.5.1"

siis klient oskab sellele reageerida /etc/resolv.conf faili ümberkirjutamisega. Selleks tuleb kliendi seadistusfailis kasutada kolme direktiivi

 up /etc/openvpn/update-resolv-conf
 down /etc/openvpn/update-resolv-conf
 script-security 2

Seejuures tuleb aga arvestada, millist mõju üldiselt resolvconf kasutamine klientarvutis omab, resolvconf kasutamist on kirjeldatud palas Operatsioonisüsteemi Debian GNU/Linux kasutamine#resolvconf.

Tulemusena lisab resolvconf /etc/resolv.conf faili rea esimeseks nimeserveriks

 nameserver 10.0.5.1

OpenVPN kliendi sulgemisel see rida eemaldatakse.

Eesti ID-kaardi kasutamine OpenVPN kliendiga

Protsessorkaardi (ingl. k. smart card), konkreetselt Eesti ID-kaardi abil VPN süsteemi kasutamine erineb nö niisama kliendisertifikaadiga autentimisest vaid selles poolest, kuidas kliendi sertifikaati kasutatakse. Kuivõrd sertifikaat asub spetsiaalsel seadmel on vajalik teha selle seadme ja OpenVPN tarkvara kokkuühendamiseks täiendavaid pingutusi.

Kliendi arvutis peavad olema tehtud Eesti ID-kaardi kasutamiseks vajalikud ettevalmistused, nt nii nagu on kirjeldatud palas http://kuutorvaja.eenet.ee/wiki/Eesti_ID-kaardi_kasutamine_Debianiga

Kaardilugejaga suhtlemiseks kasutab OpenVPN OpenSC PKCS#11 silda, mis on näha ldd väljundist

 # ldd /usr/sbin/openvpn | grep pkcs11
 libpkcs11-helper.so.1 => /usr/lib/libpkcs11-helper.so.1 (0xb7f9d000)

ja ettevalmistuste edukuse kontrollimiseks sobib öelda nt

 # openvpn --show-pkcs11-ids /usr/lib/opensc-pkcs11.so
 
 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=OOLBERG,IMRE,37003212713/SN=OOLBERG/GN=IMRE/serialNumber=37003212713
      Serial:         48843168
      Serialized id:  AS\x20Sertifitseerimiskeskus/PKCS\x20\x2315\x20SCard/A0055728/ID\x2Dkaart\x20\x28PIN1\x2C\x20Isikutuvastus\x29/01
 
 Certificate
      DN:             /C=EE/O=ESTEID/OU=digital signature/CN=OOLBERG,IMRE,37003212713/SN=OOLBERG/GN=IMRE/serialNumber=37003212713
      Serial:         48843169
      Serialized id:  AS\x20Sertifitseerimiskeskus/PKCS\x20\x2315\x20SCard/A0055728/ID\x2Dkaart\x20\x28PIN2\x2C\x20Allkirjastamine\x29/02

Kliendi poolel sobib kasutada nt sellist seadistusfaili, võrreldes eelmise käsu väljundiga on \ märgid varjestatud, väärtus 'A0055728' on kasutajal personaalne, see kirjas nt füüsiliselt kaardil ja visuaalsel vaatlusel loetav

 client
 dev tun
 proto udp
 remote 192.168.99.90
 resolv-retry infinite
 nobind
 persist-key
 persist-tun
 ca /etc/openvpn/SK-CA.pem
 
 pkcs11-providers  /usr/lib/opensc-pkcs11.so
 pkcs11-id "AS\\x20Sertifitseerimiskeskus/PKCS\\x20\\x2315\\x20SCard/A0055728/ID\\x2Dkaart\\x20\\x28PIN1\\x2C\\x20Isikutuvastus\\x29/01"
 
 comp-lzo
 verb 3

Kasutamisel esitatakse kliendile selline logi, mh küsitakse PIN1 koodi

 # openvpn --config openvpn.conf
 Sun Apr 26 12:07:12 2009 OpenVPN 2.1_rc11 i486-pc-linux-gnu [SSL] [LZO2] [EPOLL] [PKCS11] built on Sep 18 2008
 Sun Apr 26 12:07:12 2009 PKCS#11: Adding PKCS#11 provider '/usr/lib/opensc-pkcs11.so'
 Sun Apr 26 12:07:17 2009 WARNING: No server certificate verification method has been enabled.  See http://openvpn.net/howto.html#mitm for more info.
 Sun Apr 26 12:07:17 2009 /usr/bin/openssl-vulnkey -q -b 1024 -m <modulus omitted>
 [opensc-pkcs11] pkcs11-global.c:176:C_Initialize: C_Initialize(): Cryptoki already initialized
 Sun Apr 26 12:07:18 2009 LZO compression initialized
 Sun Apr 26 12:07:18 2009 Control Channel MTU parms [ L:1542 D:138 EF:38 EB:0 ET:0 EL:0 ]
 Sun Apr 26 12:07:18 2009 Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:135 ET:0 EL:0 AF:3/1 ]
 Sun Apr 26 12:07:18 2009 Local Options hash (VER=V4): '41690919'
 Sun Apr 26 12:07:18 2009 Expected Remote Options hash (VER=V4): '530fdded'
 Sun Apr 26 12:07:18 2009 Socket Buffers: R=[111616->131072] S=[111616->131072]
 Sun Apr 26 12:07:18 2009 UDPv4 link local: [undef]
 Sun Apr 26 12:07:18 2009 UDPv4 link remote: 192.168.10.199:1194
 Sun Apr 26 12:07:18 2009 TLS: Initial packet from 192.168.10.199:1194, sid=eef2a782 22a5670e
 Sun Apr 26 12:07:18 2009 VERIFY OK: depth=2, /emailAddress=pki@sk.ee/C=EE/O=AS_Sertifitseerimiskeskus/CN=Juur-SK
 Sun Apr 26 12:07:18 2009 VERIFY OK: depth=1, /emailAddress=pki@sk.ee/C=EE/O=AS_Sertifitseerimiskeskus/OU=Sertifitseerimisteenused/serialNumber=1/CN=KLASS3-SK
 Sun Apr 26 12:07:18 2009 VERIFY OK: depth=0, /CN=vpn.loomaaed.tartu.ee/O=Tartu Loomaaed/L=Tartu/ST=Tartu/C=EE
 
 Enter ID-kaart (PIN1, Isikutuvastus) token Password:
 
 Sun Apr 26 12:07:29 2009 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
 Sun Apr 26 12:07:29 2009 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
 Sun Apr 26 12:07:29 2009 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
 Sun Apr 26 12:07:29 2009 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
 Sun Apr 26 12:07:29 2009 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 1024 bit RSA
 Sun Apr 26 12:07:29 2009 [www.ria.ee] Peer Connection Initiated with 192.168.10.199:1194
 Sun Apr 26 12:07:30 2009 SENT CONTROL [vpn.loomaaed.tartu.ee]: 'PUSH_REQUEST' (status=1)
 Sun Apr 26 12:07:30 2009 PUSH: Received control message: 'PUSH_REPLY,route 172.16.1.1,topology net30,ping 10,ping-restart 120,ifconfig 172.16.1.6 172.16.1.5'
 Sun Apr 26 12:07:30 2009 OPTIONS IMPORT: timers and/or timeouts modified
 Sun Apr 26 12:07:30 2009 OPTIONS IMPORT: --ifconfig/up options modified
 Sun Apr 26 12:07:30 2009 OPTIONS IMPORT: route options modified
 Sun Apr 26 12:07:30 2009 ROUTE default_gateway=192.168.10.254
 Sun Apr 26 12:07:30 2009 TUN/TAP device tun1 opened
 Sun Apr 26 12:07:30 2009 TUN/TAP TX queue length set to 100
 Sun Apr 26 12:07:30 2009 /sbin/ifconfig tun1 172.16.1.6 pointopoint 172.16.1.5 mtu 1500
 [opensc-pkcs11] pkcs11-global.c:176:C_Initialize: C_Initialize(): Cryptoki already initialized
 Sun Apr 26 12:07:30 2009 /sbin/route add -net 172.16.1.1 netmask 255.255.255.255 gw 172.16.1.5
 [opensc-pkcs11] pkcs11-global.c:176:C_Initialize: C_Initialize(): Cryptoki already initialized
 Sun Apr 26 12:07:30 2009 Initialization Sequence Completed

OpenVPN kliendi käivitamine

Operatsioonisüsteemi alglaadimisel püütakse automaatselt käivitada seadistusfailidele

/etc/openvpn/*.conf 

vastavaid OpenVPN ühendusi.

Märkused

  • nn Smartlink 2009 aasta arenduse käigus tekkinud libopensc2 teegi kasutamisel on väljund selline
 Certificate
      DN:             /C=EE/O=ESTEID/OU=authentication/CN=OOLBERG,IMRE,37003212713/SN=OOLBERG/GN=IMRE/serialNumber=37003212713
      Serial:         48843168
      Serialized id:  AS\x20Sertifitseerimiskeskus/PKCS\x2315\x20emulated/A0055728/IMRE\x20OOLBERG\x20\x28PIN1\x29/01
 
 Certificate
      DN:             /C=EE/O=ESTEID/OU=digital signature/CN=OOLBERG,IMRE,37003212713/SN=OOLBERG/GN=IMRE/serialNumber=37003212713
      Serial:         48843169
      Serialized id:  AS\x20Sertifitseerimiskeskus/PKCS\x2315\x20emulated/A0055728/IMRE\x20OOLBERG\x20\x28PIN2\x29/02
  • Tuleb arvestada, et ID-kaardiga autenditud vpn-ühendust reeglina ei lõpetata ID-kaardi lugejast väljavõtmisega.

Kui kasutusel Debiani asemel Ubuntu tuleb konfiguratsioonis tun0 seade asendada tap'iga