Ubuntu 16.04 64bit – OpenVPN and SafeNet iKey 5100 token

My company allows remote connection to some computers by OpenVPN, but you have to use SafeNet iKey 5100 token. There is small tutorial how can you install and configure OpenVPN with iKey 5100 token and how to modify windows *.ovpn files to be a Linux compatible.

ikey5100

Important note: OpenVPN contains bug and it doesn’t work with systemd and pkcs11 token. This is our case, Ubuntu 16.04 use systemd and SafeNet has pkcs11 API. This bug should be fixed in OpenVPN 2.5. You can find more informatinon at: https://community.openvpn.net/openvpn/ticket/538

Read More

Jak se připojit do OpenVPN sítě pomocí ikey 3000 tokenu z Linuxu

Mnoho organizací používá k přístupu do své lokální sítě OpenVPN a tokenu ikey 3000. Tento návod vám pomůže právě s tímto druhem připojení.

Obsah:

  1. Instalace
  2. Konfigurace
  3. Připojení


Instalace

Top

Debian Leny, Ubuntu 8.10, 9.04

  1. Spusťte příkaz v kosnoli:
    sudo apt-get install openvpn openct opensc

Ubuntu 9.10

  1. Stáhněte si balíčky opensc and libopensc2
  2. Spusťte konsoli, běžte do adresáře kde máte stažené balíčky a nainstalujte je příkazem:
    i386: sudo dpkg -i opensc_0.11.8-1ubuntu1_i386.deb libopensc2_0.11.8-1ubuntu1_i386.deb
    x86_64: sudo dpkg -i opensc_0.11.8-1ubuntu1_amd64.deb libopensc2_0.11.8-1ubuntu1_amd64.deb
  3. Poté nainstalujte i zbývající software příkazem:
    sudo apt-get install openvpn openct
    Poznámka: Od teď již nemůžete aktualizovat balíčky libopensc2 a opensc !!!

OpenSUSE 11, 11.1

  1. Nejdříve si musíte stáhnout nové RPM balíčky některých souborů, protože v openct v OpenSUSE 11.1 obsahuje chybu. Když se pokusíte získat certifikát z vašeho tokenu s originálním openct knihovna vyhodí výjimku CRK_COMMAND_FAILED.
    Stáhněte so tyto soubory:

  2. Nainstalujte potřebné balíčky pomocí YAST.
    Spusťte konsoli a zadejte příkaz
    sudo /sbin/yast -i gcc gcc-c++ make lzo-devel openct libopenssl-devel pkcs11-helper-devel
  3. Odinstalujte opensc dodaný s OpenSUSE 11.1:
    sudo rpm -e opensc libopensc2 openssh openssh-askpass
  4. Běžte do složky kde máte stažené RPM souboty (první krok v tomto návodu) a nainstalujte je příkazem:
    sudo rpm -ivh libopensc2-0.11.4-37.1.i586.rpm libltdl-3-1.5.26-23.1.i586.rpm opensc-0.11.4-37.1.i586.rpm
  5. Stáhněte si ze stránek project http://www.openvpn.net poslední verzi OpenVPN 2.1 (Já používám OpenVPN 2.1 rc15)
  6. Bežte do složky kde se nachází stažený tar.gz soubor a rozbalte jej:
    tar xvzf openvpn-2.1_rc15.tar.gz
  7. Přesuňte se do složky s rozpakovaným OpenVpn (např: cd openvpn-2.1_rc15/
  8. Nainstalujte OpenVPN pomocí těchto příkazů (ve stejném pořadí, krok po kroku):
    ./configure
    make
    sudo make install


Konfigurace

Top

Veškerý potřebný software bychom měli mít nainstalovaný, takže se můžeme pustit do konfigurace OpenVPN.

  1. Vytvořte složku “openvpn” v “/etc” (pokud neexistuje)
    Spusťte konsoli a zadejte příkaz
    sudo mkdir /etc/openvpn
  2. Obdržel jsem tyto soubory:
    • VPN.ovpn – konfigurační soubot pro Windows
    • gvpn_ca.cer – CA certifikát
    • ta.key – key soubor

    Podobné soubory by jste měli mít i vy.
    Zkopírujte je do složky “/etc/openvpn”

  3. Nyní připojte váš token do počítače
  4. Restartujte openct démona pomocí přikazu:
    sudo /etc/init.d/openct restart
  5. Nyní zkontrolujeme jestli ikey 3000 klíčenka pracuje správně.
    Spusťte příkaz:
    sudo pkcs15-tool -c
    Měli by jste vidět podobný výpis:
    X.509 Certificate [Vladislav Korecky GVPN's VPN VPN CA ID]
    Flags : 2
    Authority: no
    Path : 3f0050154300
    ID : 61323133623665662d396631392d346530302d623734642d656436386436656462313537
  6. Nyní se můžeme pustit do samotné konfigurace
    Otevřete konfigurační soubo ve vašem oblíbeném editoru.
    Já jsem spustil gedit tímto příkazem:
    sudo gedit /etc/openvpn/VPN.ovpn
    Můj konfigurační soubor OpenVPN pro Windows vypadal takto:
    client
    dev tun
    proto udp
    remote 111.111.111.1 1111
    resolv-retry infinite
    persist-key
    persist-tun
    redirect-gateway
    tls-remote ovpn.server.com
    redirect-gateway
    ca "C:\\Program Files\\OpenVPN\\config\\gvpn_ca.cer"
    cryptoapicert "SUBJ:John Smith GVPN"
    tls-auth ta.key 1
    comp-lzo
    verb 4

    Následující atributy byly pozměněny kvůli bezpečnosti:
    remote
    tls-remote
    cryptoapicert
  7. Tento soubor modifikujeme pro Linux verzi OpenVPN:
    Smažte tyto řádky z konfiguračního souboru:
    ca "C:\\Program Files\\OpenVPN\\config\\gvpn_ca.cer"
    cryptoapicert "SUBJ:John Smith GVPN"

    Na jejich místo vložte:
    pkcs11-providers /usr/lib/opensc-pkcs11.so
    pkcs11-id ''
  8. Soubor ponechte otevřený a spusťte si novou konsoli.
    V novém okně spusťte příkaz:
    sudo /usr/local/sbin/openvpn --show-pkcs11-ids /usr/lib/opensc-pkcs11.so
    Měli by jste vidět následujíc report:
    [opensc-pkcs11] iso7816.c:99:iso7816_check_sw: File not found
    [opensc-pkcs11] card-starcos.c:312:starcos_select_fid: returning with: File not found
    [opensc-pkcs11] card.c:554:sc_select_file: returning with: File not found
    [opensc-pkcs11] pkcs15-pubkey.c:404:sc_pkcs15_read_pubkey: Failed to read public key file.
    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=CZ/L=Jihlava/O=VPN spol. s r. o./OU=Centrala/CN=Vladislav Korecky GVPN
    Serial: 46341E5D000000000132
    Serialized id: A\x2EE\x2ET\x2E\x20Europe\x20B\x2EV\x2E/PKCS\x20\x2315\x20SCard/9790623500140921/Vladislav\x20Korecky/61323133623665662D396631392D346530302D623734642D656436386436656462313537

  9. V sekci “Certificate” můžete vidět řádek začínající “Serialized id:”. Zkopírujte tuto hodnotu do konfiguračního souboru do řádku “pkcs11-id”.
    Nyní by měl náš konfigurační soubor vypadat takto:
    client
    dev tun
    proto udp
    remote 111.111.111.1 1111
    resolv-retry infinite
    persist-key
    persist-tun
    redirect-gateway
    tls-remote ovpn.server.com
    redirect-gateway
    pkcs11-providers /usr/lib/opensc-pkcs11.so
    pkcs11-id 'A\x2EE\x2ET\x2E\x20Europe\x20B\x2EV\x2E/PKCS\x20\x2315\x20SCard/9790623500140921/Vladislav\x20Korecky/61323133623665662D396631392D346530302D623734642D656436386436656462313537'
    tls-auth /etc/openvpn/ta.key 1
    comp-lzo
    verb 4
  10. Uložte jej do adresáře “/etc/openvpn/”
  11. To je vše. Nyní se můžete připojit do OpenVPN sítě.


Připojení

Top
  1. Připojte ikey 3000 token do počítače a restartujte openct démona:
    sudo /etc/ini.d/openct restart
  2. Nyní se můžete připojit do VPN sítě příkazem: (změňte si jména souborů)
    sudo /usr/local/sbin/openvpn --config /etc/openvpn/VPN.ovpn --ca /etc/openvpn/gvpn_ca.cer
  3. Počítač se vás zeptá na heslo k tokenu.
    ...
    Tue Apr 28 13:50:10 2009 us=681368 VERIFY OK: depth=1, /emailAddress=caadmi@VPN.cz/C=CZ/L=Jihlava/O=VPN_spol._s_r._o./OU=Centrala/CN=VPN_VPN_CA
    Tue Apr 28 13:50:10 2009 us=682849 VERIFY X509NAME OK: /C=CZ/L=Jihlava/O=VPN_spol._s_r._o./OU=Centrala/CN=ovpn.VPN.cz
    Tue Apr 28 13:50:10 2009 us=682944 VERIFY OK: depth=0, /C=CZ/L=Jihlava/O=VPN_spol._s_r._o./OU=Centrala/CN=ovpn.VPN.cz
    Enter Vladislav Korecky token Password:
  4. Po zadání hesla by mělo připojování pokračovat. Pokud váš výpis končí stejným řádkem jako můj, měli by jste být připojeni:
    ...
    [opensc-pkcs11] pkcs11-global.c:176:C_Initialize: C_Initialize(): Cryptoki already initialized
    Tue Apr 28 13:50:46 2009 us=914449 /sbin/route add -net 10.20.8.1 netmask 255.255.255.255 gw 10.20.10.174
    [opensc-pkcs11] pkcs11-global.c:176:C_Initialize: C_Initialize(): Cryptoki already initialized
    Tue Apr 28 13:50:46 2009 us=916233 Initialization Sequence Completed