CentOS7でVPNサーバを作ってみた（tun編）・・・クライアントから接続

[CentOS7でVPNサーバを作ってみた（tun編）・・・サーバ起動まで](https://qiita.com/horus19761108/items/9c7879149218d9325c5e)の続きです。
構築したVPNサーバにWindowsとAndroidのクライアントから接続する方法です。

# 準備作業
## 接続に必要なファイルのコピー
クライアントの任意のフォルダに、以下のファイルをコピーしておきます。

- ca証明書(ca.crt)
- クライアント証明書(client1.crt)
- クライアント秘密鍵(client1.key)
- TSL認証キー(ta.key)

# Windowsから接続
## vpnux clientを使って接続
比較的導入が簡単でフリーなvpnux clientを使います。
### vpnux clientのインストール
[vpnux client](https://www.plum-systems.co.jp/vpnux-client/)をダウンロードしてインストールしてください。
### プロファイルの作成
(1)トップ画面
<img width="319" alt="top画面.png" src="https://qiita-image-store.s3.amazonaws.com/0/246683/876e2fc0-11bb-7b18-2deb-d94c60ada83f.png">
・\[プロファイル\]ボタンをクリック

(2)プロファイル一覧
<img width="345" alt="profile画面.png" src="https://qiita-image-store.s3.amazonaws.com/0/246683/206e5f4e-0f25-01fe-d9d8-5ee3de37615f.png">
・\[追加]ボタンをクリック

(3)プロファイル設定(一般設定)
<img width="450" alt="profile_一般設定.png" src="https://qiita-image-store.s3.amazonaws.com/0/246683/1b7529bf-67ef-7562-5f85-a45c697e361e.png">
・プロファイル名：任意の名前を設定
・VPNサーバ：サーバのIPアドレスを設定
・デバイス：\[TUN]を指定
・拡張設定：\[LZO圧縮を有効にする]をチェック
・認証：\[CA証明書]に、CA証明書(ca.crt)を設定
・認証：\[証明書認証（PKI）を使用]をチェック
・認証＞証明書認証（PKI）：\[証明書]に、クライアント証明書(client1.crt)を設定
・認証＞証明書認証（PKI）：\[秘密鍵]に、クライアント秘密鍵(client1.key)を設定

(4)プロファイル設定(詳細設定)
<img width="450" alt="profile_詳細設定.png" src="https://qiita-image-store.s3.amazonaws.com/0/246683/28d1ff4b-b997-b102-0fc5-2762ee8c7e1e.png">
・追加セキュリティ設定：\[TSL-Auth HMAC署名を使用]をチェック
・追加セキュリティ設定：\[共有鍵]にTLS認証キー(ta.key)を設定
・[保存]ボタンをクリック

### サーバへ接続
トップ画面から作成したプロファイルを選択して[接続]ボタンをクリックすると、接続処理を始めます。
接続が完了すると、タスクトレイに<img width="16" alt="icon.png" src="https://qiita-image-store.s3.amazonaws.com/0/246683/2c5d7016-aa24-f49c-9751-e6b0e0a3fc46.png">が常駐します。

### 接続確認
ipconfigで、仮想ネットワークに参加できていることを確認しましょう

```console:ipconfigでIPアドレスが割り振られていることを確認
>ipconfig /all
イーサネット アダプター イーサネット 2:

   接続固有の DNS サフィックス . . . . .:
   説明. . . . . . . . . . . . . . . . .: TAP-Windows Adapter V9
   物理アドレス. . . . . . . . . . . . .: 00-FF-75-39-CC-BA
   DHCP 有効 . . . . . . . . . . . . . .: はい
   自動構成有効. . . . . . . . . . . . .: はい
   リンクローカル IPv6 アドレス. . . . .: fe80::5a0:b3b1:d74b:b56%13(優先)
   IPv4 アドレス . . . . . . . . . . . .: 10.8.0.xxx
   サブネット マスク . . . . . . . . . .: 255.255.255.252
   リース取得. . . . . . . . . . . . . .: 2018年4月1日 18:13:09
   リースの有効期限. . . . . . . . . . .: 2019年4月1日 18:13:09
   デフォルト ゲートウェイ . . . . . . .:
   DHCP サーバー . . . . . . . . . . . .: 10.8.0.5
   DHCPv6 IAID . . . . . . . . . . . . .: 654376821
   DHCPv6 クライアント DUID. . . . . . .: 00-01-00-01-20-79-E4-39-C0-33-5E-E7-F0-21
   DNS サーバー. . . . . . . . . . . . .: fec0:0:0:ffff::1%1
                                          fec0:0:0:ffff::2%1
                                          fec0:0:0:ffff::3%1
   NetBIOS over TCP/IP . . . . . . . . .: 有効
```
サーバとのpingを確認しましょう

```console:サーバとの疎通
>ping 10.8.0.1
10.8.0.1 に ping を送信しています 32 バイトのデータ:
10.8.0.1 からの応答: バイト数 =32 時間 =15ms TTL=64
10.8.0.1 からの応答: バイト数 =32 時間 =7ms TTL=64
10.8.0.1 からの応答: バイト数 =32 時間 =11ms TTL=64
10.8.0.1 からの応答: バイト数 =32 時間 =12ms TTL=64

10.8.0.1 の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 7ms、最大 = 15ms、平均 = 11ms
```
# Androidから接続
## OpenVPN for Androidを使って接続
### OpenVPN for Androidのインストール
Google Playから[OpenVPN for Android](https://play.google.com/store/apps/details?id=de.blinkt.openvpn&hl=ja)をインストールしてください。

### プロファイルの作成
基本的にはWindowsで設定したような項目を設定すれば良いです。
面倒くさいので画面ショットは省略します。
分かりづらかった部分のみ箇条書きにします。

- 基本設定：[種別]は[証明書]を選択してください。(初期状態は[Androidの証明書管理]となっています)
- IPとDNS：[設定情報を取得する]をON
- 認証/暗号化：[証明書のホスト名を確認する]をOFF
- 認証/暗号化：[TLS Direction]に[1]を設定

### サーバへ接続
作成したプロファイルを選択すると自動的に接続処理が開始されます。

### 接続確認
ipアドレスの確認やサーバとの疎通確認は、[Fing (フィング) - ネットワークツール](https://play.google.com/store/apps/details?id=com.overlook.android.fing)などでやってみてください。



以上で、tun(ルーティング)モードでのVPN接続が可能になりました。
目的であった自宅のルータの管理画面にも、外出先からアクセスできるようになりました。