前回の記事では、さくらのVPSサーバ上にOpenVPNサーバを構築し、Ubuntu 18.04 LTSのクライアントから接続までを行いました。
今回は、新たにクライアント用の秘密鍵と証明書を再度作成し、Windows 10のマシンからVPN接続を行いたいと思います。
(とは言っても秘密鍵と証明書の作成方法はUbuntuで使用したものと変わりはありません。)
Windows 10からVPN接続
OpenVPNサーバでの作業
OpenVPNサーバの構築が完了している前提です。以下を実行して下さい。
クライアント用の秘密鍵・証明書の作成
Easy RSAディレクトリへ移動します。
# cd /etc/openvpn/easy-rsa/
クライアントの秘密鍵・証明書を生成していきます。途中でパスフレーズを聞かれるので、「CAの構築」の際に設定したパスフレーズを入力して下さい。
# ./easyrsa build-client-full winclt01 nopass
Note: using Easy-RSA configuration from: ./vars
Using SSL: openssl OpenSSL 1.1.1d 10 Sep 2019
Generating a RSA private key
...................................................................................+++++
....+++++
writing new private key to '/etc/openvpn/easy-rsa/pki/private/winclt01.key.gOtYiO35MJ'
-----
Using configuration from /etc/openvpn/easy-rsa/pki/safessl-easyrsa.cnf
Enter pass phrase for /etc/openvpn/easy-rsa/pki/private/ca.key:
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName :ASN.1 12:'winclt01'
Certificate is to be certified until Apr 6 13:32:37 2023 GMT (1080 days)
Write out database with 1 new entries
Data Base Updated
分かりやすいように「winclt01」という名前を指定しました。以下のファイルが生成されます。
/etc/openvpn/easy-rsa/pki/private/winclt01.key | クライアント秘密鍵 |
/etc/openvpn/easy-rsa/pki/issued/winclt01.crt | クライアント証明書 |
「/etc/openvpn/client/」にコピーします。
# cp pki/private/winclt01.key /etc/openvpn/client/
# cp pki/issued/winclt01.crt /etc/openvpn/client/
Windows 10クライアントでの作業
続いて、クライアント側で以下の作業を行います。
OpenVPNクライアントのインストール
OpenVPNのダウンロードページよりインストーラをダウンロードします。
インストーラを起動し、「Next」をクリックします。
利用許諾契約をよく読んで、「I Agree」をクリックします。
このまま「Next」をクリックします。
「Install」をクリックします。
インストールの完了を待ち、「Next」をクリックします。
インストールが完了しましたので、「Finish」をクリックします。
OpenVPNの起動
デスクトップへ作成された、以下のアイコンをダブルクリックして起動します。
設定ファイルが見つからない旨のメッセージが表示されますのでこのまま「OK」をクリックします。
以下より、設定ファイルとその他必要になるファイルを準備します。
各種ファイルの転送
クライアント側で必要になるファイルは以下の4つです。
/etc/openvpn/ca.crt | CA証明書 |
/etc/openvpn/ta.key | TLS認証鍵 |
/etc/openvpn/client/winclt01.key | クライアント秘密鍵 |
/etc/openvpn/client/winclt01.crt | クライアント証明書 |
上記のファイルをSCPやSFTP等でクライアントへ転送して下さい。
私はFilezillaを使用して、一時的にrootログインを有効にしてダウンロードしました。詳細な手順の説明は割愛します。
各種ファイルの配置
「%homepath%\OpenVPN\config」へ任意のフォルダを作成し、先程クライアントへ転送した以下のファイルを配置します。
- ca.crt
- ta.key
- winclt01.key
- winclt01.crt
その後、任意のファイル名をつけた「.ovpn」ファイルを上記フォルダへ作成し、以下の内容を記述します。OpenVPNサーバのIPアドレスは適宜置き換えて下さい。
client
dev tun
proto udp
remote 153.127.41.234 1194
ca ca.crt
cert winclt01.crt
key winclt01.key
tls-auth ta.key 1
verb 3
cipher AES-256-CBC
remote-cert-tls server
persist-key
persist-tun
nobind
記述内容について、抜粋して以下にまとめます。プロトコルや接続方式、暗号化方式等サーバの使用に合わせるように記述します。
client | クライアントとして動作することを宣言 |
dev tun | ルーティング方式(tun)で接続 |
proto udp | プロトコルはUDPを使用 |
remote 153.127.41.234 1194 | OpenVPNサーバのIPアドレスをポートを指定 |
ca ca.crt | CA証明書を指定 |
cert winclt01.crt | クライアント証明書を指定 |
key winclt01.key | クライアント秘密鍵を指定 |
tls-auth ta.key 1 | TLS秘密鍵を指定 |
cipher AES-256-CBC | 暗号化方式の指定(OpenVPNサーバに合わせる) |
OpenVPNサーバへ接続
タスクトレイに以下のアイコンがありますが、これがOpenVPNのアイコンになります。
右クリックし「接続」をクリックします。
以下の画面が一瞬表示され、OpenVPNサーバへ接続されます。
接続の確認
最後に「tracert」コマンドでインターネットへの接続がOpenVPNサーバを経由していることを確認します。
試しに「google.co.jp」のサーバまでのルートを調べてみます。
>tracert google.co.jp
google.co.jp [172.217.175.67] へのルートをトレースしています
経由するホップ数は最大 30 です:
1 33 ms 37 ms 33 ms 10.8.0.1
2 33 ms 33 ms 33 ms 153.127.40.2
3 39 ms 34 ms 34 ms 192.168.119.1
4 33 ms 33 ms 33 ms iskrt301b-vps-is1a-rt01-2.sakura.ad.jp [103.10.115.117]
5 34 ms 34 ms 34 ms iskrt2s-rt301b.bb.sakura.ad.jp [103.10.113.149]
6 36 ms 34 ms 34 ms iskrt4-rt2s.bb.sakura.ad.jp [103.10.113.121]
7 52 ms 54 ms 53 ms tkert1-iskrt4.bb.sakura.ad.jp [157.17.131.37]
8 52 ms 51 ms 53 ms tkort4-ert1.bb.sakura.ad.jp [157.17.130.113]
9 53 ms 51 ms 53 ms as15169.ix.jpix.ad.jp [210.171.224.96]
10 52 ms 52 ms 51 ms 108.170.242.161
11 53 ms 52 ms 52 ms 172.253.70.183
12 52 ms 51 ms 51 ms nrt20s20-in-f3.1e100.net [172.217.175.67]
1行目を見ると、VPNサーバ(10.8.0.1)を経由していることが分かります。
コメント