ブログ

Armadillo-840でSoftEther VPNを使って見る(Debian編)

at_takuya.sasaki
2016年3月6日 21時18分

Armadillo-840でSoftEther VPN [*1] を使ったVPNクライアントの動作を試してみます。 まずはDebian上で試してみたいと思います。

[*1] https://ja.softether.org/

1. ATDE5にサーバー環境構築

1-1. アーカイブをダウンロード、展開

SoftEther ダウンロード センターで、以下を選択し、ダウンロード

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ダウンロードするソフトウェアを選択  SoftEhter VPN (Freeware)  
コンポーネントを選択                SoftEther VPN Client      
プラットフォームを選択              Linux                     
CPUを選択                           Intel x64 / AMD64 (64bit) 
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

• 直リンクはこちら

1-2. 展開したディレクトリへ移動し、make
ATDE5 ~/vpnserver]$ make

     ※ 「SoftEther VPN 動作環境チェックツール」が実行されるので結果を確認
     ┌────
     │ SoftEther VPN 動作環境チェックツール
     │ 
     │ Copyright (c) SoftEther VPN Project.
     │ All Rights Reserved.
     │ 
     │ この動作環境チェックツールを実行したシステムがテストに合格した場合は、SoftEther VPN ソフトウェアが動作する可能性が高いです。チェックにはしばらく時間がかかる場合があります。そのままお待ちください...
     │ 
     │ 'カーネル系' のチェック中...
     │           [合格] ○
     │ 'メモリ操作系' のチェック中...
     │           [合格] ○
     │ 'ANSI / Unicode 文字列処理系' のチェック中...
     │           [合格] ○
     │ 'ファイルシステム' のチェック中...
     │           [合格] ○
     │ 'スレッド処理システム' のチェック中...
     │           [合格] ○
     │ 'ネットワークシステム' のチェック中...
     │           [合格] ○
     │ 
     │ すべてのチェックに合格しました。このシステム上で SoftEther VPN Server / Bridge が正しく動作する可能性が高いと思われます。
     │ 
     │ コマンドは正常に終了しました。
     └────
1-3. vpnserverを起動
ATDE5 ~/vpnserver]$ sudo ./vpnserver start
1-4. 仮想HUB"DEFAULT"(初期状態で存在する)にユーザーを追加
 ATDE5 ~/vpnserver]$ ./vpncmd

     ┌────
     │ vpncmd コマンド - SoftEther VPN コマンドライン管理ユーティリティ
     │ SoftEther VPN コマンドライン管理ユーティリティ (vpncmd コマンド)
     │ Version 4.19 Build 9599   (Japanese)
     │ Compiled 2015/10/19 20:28:20 by yagi at pc30
     │ Copyright (c) SoftEther VPN Project. All Rights Reserved.
     │ 
     │ vpncmd プログラムを使って以下のことができます。
     │ 
     │ 1. VPN Server または VPN Bridge の管理
     │ 2. VPN Client の管理
     │ 3. VPN Tools コマンドの使用 (証明書作成や通信速度測定)
     │ 
     │ 1 - 3 を選択: 1         <== "1"と入力しEnterを押下
     │ 
     │ 接続先の VPN Server または VPN Bridge が動作しているコンピュータの IP アドレスまたはホスト名を指定してください。
     │ 'ホスト名:ポート番号' の形式で指定すると、ポート番号も指定できます。
     │ (ポート番号を指定しない場合は 443 が使用されます。)
     │ 何も入力せずに Enter を押すと、localhost (このコンピュータ) のポート 443 に接続します。
     │ 接続先のホスト名または IP アドレス:             <== 何も入力せずにEnterを押下
     │ 
     │ サーバーに仮想 HUB 管理モードで接続する場合は、仮想 HUB 名を入力してください。
     │ サーバー管理モードで接続する場合は、何も入力せずに Enter を押してください。
     │ 接続先の仮想 HUB 名を入力: DEFAULT              <== "DEFAULT"と入力しEnterを押下
     │ VPN Server "localhost" (ポート 443) に接続しました。
     │ 
     │ VPN Server 内の仮想 HUB 'DEFAULT' に対する管理権限があります。
     │ 
     │ VPN Server/DEFAULT>UserCreate
     │ UserCreate コマンド - ユーザーの作成
     │ ユーザー名: user1               <== "user1"と入力しEnterを押下
     │ 
     │ 参加するグループ名:             <== 何も入力せずにEnterを押下
     │ 
     │ ユーザーの本名:                 <== 何も入力せずにEnterを押下
     │ 
     │ ユーザーの説明:                 <== 何も入力せずにEnterを押下
     │ 
     │ コマンドは正常に終了しました。
     │ 
     │ VPN Server/DEFAULT>UserPasswordSet
     │ UserPasswordSet コマンド - ユーザーの認証方法をパスワード認証に設定しパスワードを設定
     │ ユーザー名: user1               <== "user1"と入力しEnterを押下
     │ 
     │ パスワードを入力してください。キャンセルするには Ctrl+D キーを押してください。
     │ 
     │ パスワード: *****               <== "user1"と入力しEnterを押下
     │ 確認入力  : *****               <== "user1"と入力しEnterを押下
     │ 
     │ 
     │ コマンドは正常に終了しました。
     │ 
     │ VPN Server/DEFAULT>DhcpEnable   <== "DhcpEnable"と入力しEnterを押下
     │ DhcpEnable コマンド - SecureNAT 機能の仮想 DHCP サーバー機能の有効化
     │ コマンドは正常に終了しました。
     │ 
     │ VPN Server/DEFAULT>SecureNatStatusGet  <== "SecureNatStatusGet"と入力しEnterを押下
     │ 
     │ SecureNatStatusGet コマンド - 仮想 NAT および DHCP サーバー機能 (SecureNAT 機能) の動作状況の取得
     │ 項目                            |値
     │ --------------------------------+--------------
     │ 仮想 HUB 名                     |DEFAULT
     │ NAT TCP/IP セッション数         |0 セッション
     │ NAT UDP/IP セッション数         |0 セッション
     │ NAT ICMP セッション数           |0 セッション
     │ NAT DNS セッション数            |0 セッション
     │ 割り当て済み DHCP クライアント数|0 クライアント
     │ カーネルモード NAT で動作中     |いいえ
     │ Raw IP モード NAT で動作中      |いいえ
     │ コマンドは正常に終了しました。
     │ 
     │ VPN Server/DEFAULT>exit   <== "exit"と入力しEnterを押下
     └────

2 Armadillo-840にクライアント環境構築

2-1. 以下のカーネルコンフィギュレーションを変更し、カーネルソースコードからビルド

     Device Drivers
       -> Network device support
       -> Network core driver support
         -> Universal TUN/TAP device driver support      <== 有効化(CONFIG_TUN)
2-2. SDカードにDebianユーザーランドを作成

以下のドキュメントを参照してSDカードにDebianユーザーランドを構築して、2-1でビルドしたカーネルもSDカード内にコピーしてください。

第16章 SDブートの活用

2-3. SDブートしてパッケージのアップデート & アップグレード
[armadillo]# apt-get update && apt-get upgrade
2-4. 開発用パッケージをインストール
[armadillo]# apt-get install build-essential
2-5. ARM用SoftEther VPNのクライアント側アーカイブをArmadillo-840上に持ってきて、展開

SoftEther ダウンロード センターで、以下を選択し、ダウンロード

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ダウンロードするソフトウェアを選択  SoftEhter VPN (Freeware) 
コンポーネントを選択                SoftEther VPN Client     
プラットフォームを選択              Linux                    
CPUを選択                           ARM EABI (32bit)         
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

• 直リンクはこちら

2-6. 展開したディレクトリへ移動し、make
[armadillo ~/vpnclient]# make
2-7. vpnclientを起動
 [armadillo ~/vpnclient]# ./vpnclient start
2-8. クライアントの設定
[armadillo ~/vpnclient]# ./vpncmd

     ┌────
     │ vpncmd command - SoftEther VPN Command Line Management Utility
     │ SoftEther VPN Command Line Management Utility (vpncmd command)
     │ Version 4.19 Build 9599   (English)
     │ Compiled 2015/10/19 20:28:20 by yagi at pc30
     │ Copyright (c) SoftEther VPN Project. All Rights Reserved.
     │ 
     │ By using vpncmd program, the following can be achieved.
     │ 
     │ 1. Management of VPN Server or VPN Bridge
     │ 2. Management of VPN Client
     │ 3. Use of VPN Tools (certificate creation and Network Traffic Speed Test Tool)
     │ 
     │ Select 1, 2 or 3: 2             <== "2"と入力しEnterを押下
     │ 
     │ Specify the host name or IP address of the computer that the destination VPN Client is operating on.
     │ If nothing is input and Enter is pressed, connection will be made to localhost (this computer).
     │ Hostname of IP Address of Destination:          <== 何も入力せずにEnterを押下
     │ 
     │ Connected to VPN Client "localhost".
     │ 
     │ VPN Client>NicCreate
     │ NicCreate command - Create New Virtual Network Adapter
     │ Virtual Network Adapter Name: test
     │ 
     │ The command completed successfully.
     │ 
     │ VPN Client>AccountCreate
     │ AccountCreate command - Create New VPN Connection Setting
     │ Name of VPN Connection Setting: test-vpn
     │ 
     │ Destination VPN Server Host Name and Port Number: 172.16.1.69:443
     │ 
     │ Destination Virtual Hub Name: DEFAULT
     │ 
     │ Connecting User Name: user1
     │ 
     │ Used Virtual Network Adapter Name: test
     │ 
     │ The command completed successfully.
     │ 
     │ VPN Client>AccountPasswordSet
     │ AccountPasswordSet command - Set User Authentication Type of VPN Connection Setting to Password Authentication
     │ Name of VPN Connection Setting: test-vpn
     │ 
     │ Please enter the password. To cancel press the Ctrl+D key.
     │ 
     │ Password: *****
     │ Confirm input: *****
     │ 
     │ 
     │ Specify standard or radius: standard
     │ 
     │ The command completed successfully.
     │ 
     │ VPN Client>AccountConnect
     │ AccountConnect command - Start Connection to VPN Server using VPN Connection Setting
     │ Name of VPN Connection Setting: test-vpn
     │ 
     │ The command completed successfully.
     │ 
     │ VPN Client>AccountList
     │ AccountList command - Get List of VPN Connection Settings
     │ Item                        |Value
     │ ----------------------------+------------------------------------------
     │ VPN Connection Setting Name |test-vpn
     │ Status                      |Connected
     │ VPN Server Hostname         |172.16.1.69:443 (Direct TCP/IP Connection)
     │ Virtual Hub                 |DEFAULT
     │ Virtual Network Adapter Name|test
     │ The command completed successfully.
     │ 
     │ VPN Client>exit
     └────
2-9. VPNネットワークの設定をして接続
[armadillo ~/vpnclient]# echo 'iface vpn_test inet dhcp' >> /etc/network/interfaces
[armadillo ~/vpnclient]# ifup vpn_test

 Internet Systems Consortium DHCP Client 4.2.2
 Copyright 2004-2011 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/vpn_test/00:ac:85:87:08:24
Sending on   LPF/vpn_test/00:ac:85:87:08:24
Sending on   Socket/fallback
DHCPDISCOVER on vpn_test to 255.255.255.255 port 67 interval 3
DHCPDISCOVER on vpn_test to 255.255.255.255 port 67 interval 6
DHCPDISCOVER on vpn_test to 255.255.255.255 port 67 interval 10
DHCPDISCOVER on vpn_test to 255.255.255.255 port 67 interval 20
DHCPREQUEST on vpn_test to 255.255.255.255 port 67
DHCPOFFER from 192.168.30.1
DHCPACK from 192.168.30.1
bound to 192.168.30.10 -- renewal in 2944 seconds.
2-10. VPNのIPアドレスを取得できていることを確認
[armadillo ~/vpnclient]# ifconfig vpn_test
vpn_test  Link encap:Ethernet  HWaddr 00:ac:85:87:08:24  
       inet addr:192.168.30.10  Bcast:192.168.30.255  Mask:255.255.255.0
       UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
       RX packets:83 errors:0 dropped:1 overruns:0 frame:0
       TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
       collisions:0 txqueuelen:500 
       RX bytes:6534 (6.3 KiB)  TX bytes:2736 (2.6 KiB)
2-11 . pingを実行
[armadillo ~/vpnclient]# ping -c 5 192.168.30.1
PING 192.168.30.1 (192.168.30.1) 56(84) bytes of data.
64 bytes from 192.168.30.1: icmp_req=1 ttl=128 time=1.93 ms
64 bytes from 192.168.30.1: icmp_req=2 ttl=128 time=0.997 ms
64 bytes from 192.168.30.1: icmp_req=3 ttl=128 time=0.897 ms
64 bytes from 192.168.30.1: icmp_req=4 ttl=128 time=1.11 ms
64 bytes from 192.168.30.1: icmp_req=5 ttl=128 time=1.61 ms
 
--- 192.168.30.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4004ms
rtt min/avg/max/mdev = 0.897/1.311/1.935/0.400 ms