- 前回まで
- ここでの目標
- 接続ファイルの作成
- サーバー設定ファイルを作成
- 設定ファイルを使ってサーバーを起動します。
- クライアント設定ファイルの作成
- 設定ファイルへの共有鍵を埋め込み
- 拡張子を ovpn に変更
- まとめ
前回まで
前回までで、コマンドからOpenVPN接続、共通鍵による認証を見てきました。
ここでの目標
サーバーとクライアントのそれぞれの起動に使うコマンド引数を、ファイルに纏めて 起動コンフィグファイルを作ります。
サーバー側
openvpn --config my-server.ovpn
クライアント側
openvpn --config my-server-client.ovpn
のように、設定ファイルでシンプルに起動できる 設定ファイルを作成します。
今回は、共有鍵をパスで指定する。共通鍵を設定ファイルに含めるの2種類を見ていきます。
接続ファイルの作成
共有鍵使った接続をを設定ファイルに書きたいと思います。
コマンドラインからオプションを与える代わりに設定ファイルを使えるようになります。
サーバー設定ファイルを作成
最初にサーバー側で設定ファイルを書きました。
myserver-tun0.conf
dev tun0 ifconfig 10.9.8.1 10.9.8.2 secret /etc/openvpn/static.key
ファイルはこのように設置しています。
root@server:/etc/openvpn# ll -rw------- 1 root root 636 Feb 14 11:02 static.key -rw-r--r-- 1 root root 0 Feb 14 11:02 tun0.conf
設定ファイルを使ってサーバーを起動します。
verb は verbose オプションです。詳細なログが出ます。
root@:/etc/openvpn# openvpn --config /etc/openvpn/tun0.conf --verb 6
クライアント設定ファイルの作成
クライアント側がサーバーへの接続ファイルの作成。クライアント側でも設定ファイルを使ります。
準備
クライアント側に、サーバーで作成した固定鍵(共有鍵)を持ってきます。
mkdir ~/openvpn cd ~/Desktop/openvpn scp router:/etc/openvpn/static.key .
クライアント側も設定ファイルを作ります。
ほとんどサーバーと同じですが、remote があるのが異なります。
myserver-tun0.conf
dev tun0 remote 192.168.1.1 ifconfig 10.9.8.2 10.9.8.1 secret /Users/takuya/Desktop/openvpn/static.key
鍵ファイルの場所をパスで指定してます。
接続します。
sudo openvpn --config ~/Desktop/openvpn/tun0.conf --verb 6
verb は verbose オプションです。詳細なログが出ます。
実際の接続例です
クライアントから起動ログはこんなかんじ。
takuya@openvpn$ sudo openvpn --config ~/Desktop/openvpn/tun0.conf --verb 6 Fri Feb 14 11:07:22 2020 us=467027 disabling NCP mode (--ncp-disable) because not in P2MP client or server mode Fri Feb 14 11:07:22 2020 us=467785 Current Parameter Settings: Fri Feb 14 11:07:22 2020 us=467792 config = '/Users/takuya/Desktop/openvpn/tun0.conf' ## 略 Fri Feb 14 11:07:32 2020 us=984572 Peer Connection Initiated with [AF_INET]192.168.1.1:1194 ## 少し時間がかかります。 Fri Feb 14 11:07:34 2020 us=175172 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this Fri Feb 14 11:07:34 2020 us=175256 Initialization Sequence Completed ## ping を送信してます。 Fri Feb 14 11:09:58 2020 us=450862 UDP WRITE [124] to [AF_INET]192.168.1.1:1194: DATA len=124 Fri Feb 14 11:09:58 2020 us=453078 UDP READ [124] from [AF_INET]192.168.1.1:1194: DATA len=124
設定ファイルへの共有鍵を埋め込み
設定と鍵が別々だと、取り扱いが不便。 なので、鍵ファイルを設定ファイルに含めます。
鍵ファイルの中身をを設定に書き込む
先程のファイルに、<secret></secret>
タグを書きます。
<secret></secret>
なかに、鍵ファイルの中身を書きます。
myserver-tun0.conf
クライアント設定ファイル
dev tun0 remote 192.168.1.1 ifconfig 10.9.8.2 10.9.8.1 <secret> -----BEGIN OpenVPN Static key V1----- d862054cc8f4ab583afb71a41da17e53 167de143e89d0ded7449396afe03a3b7 349fc581b6a778ddbb8a000dd2f8134c 691ab43bb039499c6901045752bf7309 6b671f87ed607a378988634d4b074c3c 25f9bc983cfdf945542c20ca254d8127 3184635341bd64d5e42eabe9a3ec0ebc 9260a2fbf8ee8eaefc8edb5c3c9d7c20 d78ad6608ba12fa8f5a03f4369f10668 e047d0f7f86fe2bc44c764e1ad4355b4 5095c6b42c2ee4905f58f843fd214905 6bc48eb4946b6fff827171298afaece5 7cad3833d0d226febf8d890e8143a27d a366d7468ee20d4ca7d955d86d11a3df c16ba9c972d244fe8fd07180de3aff2a 4b3d79f168a968468d50c973857b7b20 -----END OpenVPN Static key V1----- </secret>
これで、各種ソフトウェアから接続ができるようになります。
ほとんどの人は、ここまでの設定で十分だと思います。
拡張子を ovpn に変更
クライアント用 opvn ファイルを作成します。拡張子だけの問題です。
cp myserver-tun0.conf myserver-tun0.ovpn
クライアント設定ファイルを拡張子 .ovpn に変更すると、各種openvpn 対応ソフトで使えます。
tunnelbrickで認識される例。
tunnelbrick でovpn ファイルが認識されて、ダブルクリックで設定ファイルをインポートすると、あとは接続開始します。
接続されました。
まとめ
設定ファイルは、起動オプションをそのまま書いてるだけ --dev tun1
であれば dev tun1
設定ファイルに共通鍵を含める事ができる。ファイルの管理は楽になる。(取り扱いは慎重に)
ただし、共有鍵では「TLS」暗号化はしていません。No X509 PKI です。接続すれば十分な人にはシンプルでいいと思います。