毎月進化する490円/月のVPS「ServersMan@VPS」をオンラインストレージやVPNで活用しよう 6ページ
OpenVPNのクライアント側設定(Windows/Linux)
続いて、クライアント側の設定についても説明しておこう。OpenVPNはさまざまなプラットフォームで動作するが、以下ではWindowsおよびLinuxをクライアントとする場合について紹介する。
なお、どのプラットフォームをクライアントとする場合でも、クライアント証明書やクライアント暗号鍵についてはサーバー側であらかじめ作成しておく。クライアント鍵の作成は、サーバー側で以下のように「build-key-pass」スクリプトを実行することで行う。スクリプトの引数にはクライアントを識別するための任意の名称を指定する。秘密鍵の生成時にはパスフレーズの入力が促される。パスフレーズは空のままでも鍵を生成できるが、セキュリティ保護の観点からは設定しておく方が好ましい。
たとえばクライアント名を「client0」とする場合、下記のようになる。
# cd /etc/openvpn/easy-rsa/2.0/ # . vars # ./build-key-pass client0 Generating a 1024 bit RSA private key ...................++++++ ...++++++ writing new private key to 'client0.key' Enter PEM pass phrase: ←パスフレーズを入力 Verifying - Enter PEM pass phrase: ←同じパスフレーズを再入力 ----- : : ----- Country Name (2 letter code) [JP]: ←Enterを入力 State or Province Name (full name) [Tokyo]: ←Enterを入力 Locality Name (eg, city) [Arakawa-ku]: ←Enterを入力 Organization Name (eg, company) [OSDN]: ←Enterを入力 Organizational Unit Name (eg, section) []: ←Enterを入力 Common Name (eg, your name or your server's hostname) [client0]: ←Enterを入力 Name []: ←Enterを入力 Email Address [hirom@mosdn.jp]: ←Enterを入力 Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: ←Enterを入力 An optional company name []: ←Enterを入力 Using configuration from /etc/openvpn/easy-rsa/2.0/openssl.cnf : : Certificate is to be certified until Apr 29 11:49:35 2021 GMT (3650 days) Sign the certificate? [y/n]:y ←「y」を入力 1 out of 1 certificate requests certified, commit? [y/n]y ←「y」を入力 Write out database with 1 new entries Data Base Updated
以上で、/etc/openvpn/easy-rsa/2.0/keys/以下にクライアント証明書「client0.crt」およびサーバー暗号鍵「client0.key」が作成される。クライアント側ではこれらのファイルとサーバー側のCA証明書「ca.crt」が必要となるので、安全な経路でクライアント側にコピーしておこう。
Windows環境での設定
Windows環境の場合、OpenVPNのWebサイトにてWindows版インストーラが提供されているので、こちらを利用する(図21)。
インストーラは一般的なウィザード形式のものだ。Windows版OpenVPNにはGUIなども含まれているので、基本的にすべてのコンポーネントをインストールしておこう(図22)。
また、途中でWindows向けのTAPネットワークアダプタもインストールされる。デバイスのインストール確認画面が表示されるので、必ず「インストール」を選択しておこう(図23)。
インストールが完了したら、OpenVPNのインストール先ディレクトリ(デフォルトでは「C:\Program Files\OpenVPN\」以下の「config」ディレクトリ内にCA証明書とクライアント証明書、クライアント暗号鍵ファイル(ca.crt、client0.crt、client0.key)をコピーする(図24)。
また、OpenVPNインストール先ディレクトリ以下の「sample-config」ディレクトリ内に設定ファイルのサンプルが用意されているので、この中の「client.ovpn」ファイルを先ほどと同じ「config」ディレクトリにコピーする(図25)。
クライアントの設定はサーバー側と同様、このclient.ovpnファイルをテキストエディタなどで編集することで行う。最低限設定が必要な項目は、VPNサーバーのホスト名/IPアドレスと、クライアント証明書/暗号鍵ファイルだ。
: : # The hostname/IP and port of the server. # You can have multiple remote entries # to load balance between the servers. remote 183.181.***.*** 1194 ←VPNサーバーのIPアドレスを指定 ;remote my-server-2 1194 : : # SSL/TLS parms. # See the server config file for more # description. It's best to use # a separate .crt/.key file pair # for each client. A single ca # file can be used for all clients. ca ca.crt cert client0.crt ←クライアント証明書名を指定 key client0.key ←クライアント暗号鍵名を指定 : :
以上の作業が完了したら、スタートメニュー内の「OpenVPN GUI」を右クリックし、「管理者として実行」を選択して管理者権限でOpenVPNのGUI設定ツールを起動する。設定ツールを起動するとタスクバーの通知領域にアイコンが表示されるので、これを右クリックして表示されるメニューから「Connect」を選択する(図26)。
接続ウィンドウが表示されるので、ここでパスワードを入力して「OK」をクリックする(図27)。
接続に成功すると通知領域のアイコンが緑色に変わり、メッセージとともにIPアドレスが表示される(図28)。
これで、VPNサーバーとVPNクライアント間が仮想的なプライベートネットワークで接続された状態となり、付加されたIPアドレスを用いてサーバー-クライアント間が通信できるようになる。
Linux環境での設定
RPMforgeのopenvpnパッケージにはクライアントとサーバーの両方が含まれているので、サーバーの場合と同様にパッケージをインストールしておく。インストールが完了したら、サーバー側で生成しておいたCA証明書とクライアント証明書、クライアント暗号鍵を/etc/openvpn/以下にコピーするとともに、設定ファイルの準備も行っておく。クライアント用のサンプル設定ファイルは、/usr/share/doc/openvpn-<バージョン番号>/sample-config-files/以下に「client.conf」として用意されているので、これを/etc/openvpn/以下にコピーして編集する。
# cp ca.crt client1.crt client1.key /etc/openvpn/ # cd /etc/openvpn/ # cp /usr/share/doc/openvpn-<バージョン番号>/sample-config-files/client.conf . # vi client.conf
client.conf内で変更すべき個所はサーバーのIPアドレス/ホスト名とクライアント証明書/暗号鍵ファイル、そしてVPNクライアントを実行するユーザーを指定する部分だ。
: : # The hostname/IP and port of the server. # You can have multiple remote entries # to load balance between the servers. remote 183.181.***.*** 1194 ←VPNサーバーのIPアドレスを指定 ;remote my-server-2 1194 : : # Downgrade privileges after initialization (non-Windows only) user nobody ←行頭の;を削除 group nobody ←行頭の;を削除 : : # SSL/TLS parms. # See the server config file for more # description. It's best to use # a separate .crt/.key file pair # for each client. A single ca # file can be used for all clients. ca ca.crt cert client0.crt ←クライアント証明書名を指定 key client0.key ←クライアント暗号鍵名を指定 : :
以上の作業が完了したら、サーバーの場合と同様に/etc/init.d/以下の起動スクリプト「openvpn」でVPNクライアントを起動する。
# /etc/init.d/openvpn start openvpn を起動中: Enter Private Key Password: ←暗号鍵作成時に設定したパスフレーズを入力 [ OK ]
なお、ここで「OK」が表示されてからVPN接続が確立するまでやや時間がかかる場合もあるので注意してほしい。接続の進捗状況は/var/log/messagesファイルに記録されており、「Initialization Sequence Completed」というログが出力されていれば接続完了だ。
VPNクライアントの停止はサーバーの場合と同様、「stop」引数を付きでopenvpnスクリプトを実行すれば良い。
# /etc/init.d/openvpn stop