OpenVPNは、VPNを整理するためのクロスプラットフォームで柔軟かつ便利なソリューションです。 OpenVPNに基づいて構築された仮想ネットワークへの入場には、クライアントがログインする必要があります。 OpenVPNでは、これは3つの方法で実行できます。
- ログインとパスワードによる
- ファイル内のキーおよび証明書による
- 暗号化USBトークンまたはスマートカードの「ボード」上のキーと証明書による
このトピックでは、テストVPNと、オープンソースXCAアプリケーションに基づく企業CAを展開する方法を示します。 CAを使用して、OpenVPNサーバーのキーと証明書が作成され、クライアントトークンが初期化されます。 次に、ユーザーがRootoken EDSを使用してOpenVPNにログインできるようにOpenVPNクライアントを構成します。
Ubuntu 11.10でOpenVPNサーバーとXCAを上げます。
CAセットアップ
最初に、Rutoken EDSの操作に必要なシステムコンポーネントをインストールします。
- CCIDドライバー
sudo apt-get install libccid
- PC / SC
sudo apt-get install libpcsclite1 pcscd
sudo apt-get install xca
XCAを実行します。
sudo xca
新しいデータベースファイル->新しいデータベースを作成する必要があります。
CAキーを作成します。秘密キー->新しいキー、newcakey、RSA、1024。
CA証明書を作成します。
OpenVPNサーバーキーを作成します。秘密キー->新しいキー、newserver、RSA、1024。
OpenVPNサーバー証明書を作成します。
重要! OpenVPNサーバー証明書には特別な拡張子(extendedKeyUsage-serverAuth)が必要です
CA証明書をca.crtファイルに、サーバーキーをserver.keyファイルに、サーバー証明書をserver.crtファイルにエクスポートして、OpenVPNサーバーにスリップできるようにします(プライベートキー->エクスポート、証明書->エクスポート)。
OpenVPNサーバーの構成
openvpnをインストールします。
sudo apt-get install openvpn
パラメーターDXを使用してファイルを作成します。
openssl dhparam -out dh1024.pem 1024
OpenVPNサーバー設定をテストします(注意!サーバー設定はデモンストレーションのみを目的としており、サーバーのベースとして使用しないでください)。
port 1194 proto tcp dev tap ca /home/vic/Desktop/ca.crt cert /home/vic/Desktop/server.crt key /home/vic/Desktop/server.key dh /home/vic/Desktop/dh1024.pem server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt keepalive 10 120 cipher BF-CBC comp-lzo persist-key persist-tun status openvpn-status.log verb 3
OpenVPNサーバーを実行する
sudo openvpn --config /home/vic/Desktop/demo.ovpn
戦闘構成では、サーバーがデーモンとして起動し、キー/証明書が自宅にないことは明らかです。
クライアントのRootoken EDSの初期化
これで、VPN内のクライアントを認証するためのRootokenデジタル署名の初期化-すべてが何であるかを始めることができます。
XCAがトークンを操作する方法を学習するには、このトークンのPKCS#11ライブラリを提供する必要があります。 Rootoken EDSのRSAサポートを備えたLinux用PKCS#11ライブラリは、 ここからダウンロードできます。
ファイル->オプション
注意! OpenSCユーティリティなどを使用してRootoken EDSをフォーマットした場合、Rutoken EDSを開始する前に、Windowsの[コントロールパネル]-> [Rutokenコントロールパネル]でフォーマットする必要があります。
最初に、PINを変更できます。トークン-> PINの変更。
RSAキーを「オンボード」ルートケンEDSで作成しましょう。
秘密鍵->新しい鍵
Namに、newclientkeyと入力します。 要求に応じて、正しいPINを入力します。
クライアントにOpenVPNにログインし、この証明書をRootoken EDSに書き込むことができる証明書を発行します。
重要! OpenVPNクライアント証明書には特別な拡張子(extendedKeyUsage-clientAuth)が必要です
XCAは、トークンの証明書を保持することを提案します。同意する必要があります。
OpenVPNクライアントの構成
ユーザーワークステーション-Windows 7があります。RutokenEDSは標準のCCIDドライバーを介して動作するため、Windows 7にドライバーをインストールする必要はありません(XPで必要です)。
Windows OpenVPNをインストールし、中断しました。 openvpn.exeは、PKCS#11を介してトークンを接続するメカニズムのサポートなしで、Windowsの下で収集されることがわかります。 しかし、正しいopenvpn.exeが見つかりました。 OpenSCプロジェクトのWebサイトwww.opensc-project.org/downloads/users/alonbl/buildからダウンロードできます。これは、執筆時点で上から3番目のアーカイブです。 アーカイブを解凍し、openvpnインストールフォルダー内のファイルを置き換えます。
クライアント構成:
client dev tap proto tcp remote xxx.xxx.xxx.xxx 1194 resolv-retry infinite nobind persist-key persist-tun ca c:/Users/vic/Desktop/openvpn/ca.crt pkcs11-providers c:/Users/vic/Desktop/openvpn/rtPKCS11ECP.dll pkcs11-id 'Aktiv\x20Co\x2E/Rutoken\x20ECP/2ab17cca/Rutoken\x20ECP\x20\x3Cno\x20label\x3E/2C84962D1AF5792A' pkcs11-pin-cache 300 comp-lzo verb 3
pkcs11-providersパラメーターで、PKCS#11ライブラリーRutoken EDSへのパスを指定します(RSAサポート付きのWindows用ライブラリーはダウンロード可能です )。
pkcs11-idパラメーターでは、キーとユーザー証明書がRutoken EDSに保存されているコンテナーIDの値を指定する必要があります。 このIDは、次のコマンドを使用して取得できます。
openvpn --show-pkcs11-ids [ PKCS#11 ]
トークンの初期化中にこれを行う方が便利です。ユーザーには、既成の構成、CA証明書、トークン、およびトークンPINを提供する必要があります。
VPN接続を確立します。 これを行うには、Rootoken EDSを接続し、コマンドラインで管理者権限で実行します。
openvpn --config [ ]
リクエストに応じてPINを入力します。
接続が確立された後、仮想ネットワークの10.8.0.1でサーバーにpingを実行できました。