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」を作成します(名前は自由につけられます)。

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

    img2
  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``にあります。

    Windowsでは、ライブラリの最も一般的な場所は、``C:Program Files``または``C:WindowsSystem32``のいずれかです。OpenSCのライブラリは一般的に``C:Program FilesOpenSC ProjectOpenSCpkcs11``にあります。ここには複数のライブラリが用意されている場合がありますので、それぞれを試してみるか、単純に両方を追加してください。

  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/>`_の使用を検討しています。