OpenVPNによるViscosityクライアントの設定

このガイドでは、Viscosityクライアント<https://www.sparklabs.com/viscosity/>`_を設定して、OpenVPNインスタンスに接続する方法を紹介します。を使って、`Nitrokey Pro 2 <https://shop.nitrokey.com/shop/product/nk-pro-2-nitrokey-pro-2-3>`_(または`Nitrokey Storage 2)。や`PKCS#11認証<https://openvpn.net/community-resources/how-to/#what-is-pkcs11>`_などがあります。

前提条件

このガイドでは、クライアント用にインストール・設定されたOpenVPNリモートサーバーが必要です。このドキュメントでは、Debian 10サーバにインストールされたOpenVPN 2.49を使用しています。

Nitrokey Proで認証するためにOpenVPNを設定する方法については、以下の`ドキュメント<openvpn-easyrsa.html>`_を参照するとよいでしょう。

また、以下のものも必要となります。

  • Nitrokey Pro 2またはNitrokey Storage 2

  • Nitrokeyにロードされたクライアントの秘密鍵``client.key``。

  • Nitrokeyに読み込まれたクライアントの証明書 client.crt

  • The Certificate Authority file, i.e. CA.crt file used for your OpenVPN setup

  • Optional: The shared secret key file, i.e. ta.key

OpenVPNでの``PKCS#11``の鍵管理の詳細については、OpenVPNの`ドキュメントを参照してください。<https://openvpn.net/community-resources/how-to/>`_<x

使用方法

  1. Viscosityを起動し、新しい接続「openVPN」を作成します(名前は自由につけられます)。

  2. 接続部分を右クリックし、「編集」をクリックします。

  3. サーバーのIPアドレスを追加し、構成に応じてポートを設定してください。

  4. 認証では、``Type``の中で、``SSL/TLS Client (PKCS11)``までスクロールダウンします。

  5. 接続先のCAファイルを選択する

    任意です。``ta.key``の部分で、``TLS-Auth``を選択してください。

    img3
  6. Providersフィールドの横にあるAddボタンをクリックして、Nitrokeyの``PKCS#11``モジュールを選択します。複数のプロバイダーを指定することができますが、ここでは``OpenSC``を使用します。

    macOSでは、/usr/libディレクトリにモジュールを置くのが一般的です。使用する場所については、お使いのドライバーソフトに同梱されているドキュメントをご参照ください。OpenSCのモジュールは、``/Library/OpenSC/lib/opensc-pkcs11.so``にあります。

    On Windows, the most common location for libraries is either in C:\Program Files or C:\Windows\System32. OpenSC libraries are generally located at C:\Program Files\OpenSC Project\OpenSC\pkcs11. There may be more than one library available here, you can try each one or simply add both.

  7. 検索方法」ドロップダウンメニューから検索方法を選ぶ

    img4
    • このコンピュータでNitrokeyを1台しか使用しない場合は、``Use certificate name below``を選択します。Nitrokeyが現在コンピュータに接続されている場合は、``Detect``ボタンをクリックすると、ViscosityのNameフィールドが自動的に入力されます。それ以外の場合は、このフィールドは手動で記入できます。

    • If in doubt, or if more than one Nitrokey may be used (i.e. multiple users), then select Prompt for certificate name.

    ``Prompt for certificate name``が選択された場合、Viscosityは指定されたPKCS#11モジュール/sを使用して、Nitrokeyで必要なキーを自動的に検出します。検出されたデバイスの中から選択するか、手動で使用する``serialized id``の名前を入力します。また、必要に応じてパスワード/PINの入力を求められます。

  8. 保存ボタンをクリックして、メインインターフェースから接続する

リファレンス

備考

  • Viscosityは無料ではありませんので、無料版の使用には問題があるかもしれません。

  • フリーでオープンな代替手段として、`Pritunl <https://client.pritunl.com/>`_の使用を検討しています。