図解!UbuntuでOpenVPNを使う:4. 接続確認


はじめに

図解!UbuntuでOpenVPNを使う:3. 設定の続きです.

前回まででVPN接続に必要な設定はすべて完了しています.いよいよVPNでの接続確認です^^

図解!UbuntuでOpenVPNを使う:目次

  1. 準備
    1. VPNの接続方式
    2. OpenVPN のインストール
    3. ファイアウォール設定
    4. VPNサーバ側のルータのグローバルIP確認
    5. ルータからVPNサーバへのポートフォワード設定
  2. 証明書と認証鍵の作成
    1. 簡易認証局(easy-rsa)関連
    2. VPNサーバ関連
    3. VPNクライアント関連
  3. 設定
    1. OpenVPN サーバ設定
    2. OpenVPN クライアント設定
  4. 接続確認 ← イマココ
    1. OpenVPNの起動
    2. 仮想tunデバイスの確認
    3. ping 確認
    4. netcat 確認

環境

  • OS: VPNサーバ/クライアント共に Ubuntu 14.04
  • VPNアプリケーション:OpenVPN 2.3.2

1. OpenVPN 接続確認

仮想tunデバイスの確認,pingnetcatによる双方からの接続確認を行います.

OpenVPNの起動

VPNサーバ/クライアント共に,下記コマンドを実行して下さい.

(command)
$ service openvpn start

サーバ側のログの最後に次のような表示が出れば,接続成功です.

(command)
$ cat /etc/openvpn/openvpn.log
(output)
(日付) mycli/210.150.14.177:58485 SENT CONTROL [mycli]: 'PUSH_REPLY,route 192.168.179.0 255.255.255.0,redirect-gateway def1 bypass-dhcp,dhcp-option DNS 192.168.179.1,route 10.8.0.1,topology net30,ping 10,ping-restart 120,ifconfig 10.8.0.6 10.8.0.5' (status=1)

2. 仮想tunデバイスの確認

VPNサーバ

仮想tunデバイスで接続できたことを確認します.

(command)
$ ifconfig
(output)
tun0      Link encap:不明なネット  ハードウェアアドレス 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inetアドレス:10.8.0.1  P-t-P:10.8.0.2  マスク:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  メトリック:1
          RXパケット:0 エラー:0 損失:0 オーバラン:0 フレーム:0
          TXパケット:12 エラー:0 損失:0 オーバラン:0 キャリア:0
          衝突(Collisions):0 TXキュー長:100 
          RXバイト:0 (0.0 B)  TXバイト:1284 (1.2 KB)

VPNクライアント

こちらのネットワークでも仮想tunデバイスで接続できたことを確認します.

(command)
$ ifconfig
(output)
tun0      Link encap:不明なネット  ハードウェアアドレス 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inetアドレス:10.8.0.6  P-t-P:10.8.0.5  マスク:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  メトリック:1
          RXパケット:0 エラー:0 損失:0 オーバラン:0 フレーム:0
          TXパケット:12 エラー:0 損失:0 オーバラン:0 キャリア:0
          衝突(Collisions):0 TXキュー長:100 
          RXバイト:2892 (2.8 KB)  TXバイト:504 (504.0 KB)

3. ping 確認

VPNクライアント→VPNサーバ

仮想tunゲートウェイへの接続を確認します.

(command)
$ ping 10.8.0.1
(output)
PING 10.8.0.6 (10.8.0.6) 56(84) bytes of data.
64 bytes from 10.8.0.6: icmp_seq=1 ttl=64 time=188 ms
...

VPNサーバの実アドレスのゲートウェイへの接続も確認します.

(command)
$ ping 192.168.179.7
(output)
PING 10.8.0.6 (10.8.0.6) 56(84) bytes of data.
64 bytes from 10.8.0.6: icmp_seq=1 ttl=64 time=188 ms
...

VPNサーバ→VPNクライアント

こちらは仮想tunデバイスの接続のみ確認です.実アドレスが確認できるのは,VPNサーバのゲートウェイである192.168.179.7のみのようです.

(command)
$ ping 10.8.0.6
(output)
PING 192.168.179.7 (192.168.179.7) 56(84) bytes of data.
64 bytes from 192.168.179.7: icmp_seq=1 ttl=64 time=200 ms
...

4. netcat 確認

簡易チャットツールnetcatを使って,VPN経由での相互のデータ授受を確認します.

VPNサーバ側をnetcatサーバとした場合

VPNサーバ(netcatサーバ)で下記コマンドを実行します.

(command)
$ nc -l 1194

VPNクライアント(netcatクライアント)で下記コマンド実行します.

(command)
$ nc 10.8.0.1 1194
  • VPNクライアントから適当に文字を打ち込んでENTERしたら,VPNサーバ側に同じ文字列が表示されるはずです.
  • VPNサーバからも同様に適当に文字を打ち込めば,VPNクライアントに同じ文字列が表示されます.

ついでに,実アドレスびゲートウェイにも打っておきましょう.

VPNクライアント(netcatクライアント)で下記コマンド実行し,再度チャットをしてみます.タイプされた文字列が送受信できることを確認します.

(command)
$ nc 192.168.179.7 1194

VPNクライアント側をnetcatサーバとした場合

VPNクライアント(netcatサーバ)で下記コマンドを実行します.

(command)
$ nc -l 1194
  • VPNサーバ(netcatクライアント)で下記コマンド実行します.
(command)
$ nc 10.8.0.6 1194

あとは同様に文字を打ち込んで,相手側で表示されれば成功です.

お疲れ様でした!

おわりに

ようやくOpenVPNを利用したルーティング方式による接続ができました.

いかがでしたでしょうか?初見だと結構壮大な設定のように思えます^^;

ただ,今回はサーバとクライアントが1対1で接続するという極めてシンプルな構成での設定です.ここからクライアントの数を増やそうと思うとOS側でルーティング設定を追加する必要があります ^^;

当方ではとりあえず1対1通信ができればいいので,今回はコレにてお開きといたします^^

最後までお読み頂いた方,本当にありがとうございます.

参考文献