人気ブログランキング | 話題のタグを見る
Linux(CentOS5)にUT-VPNを入れてみた
PacketiX のオープンソース版 UT-VPN で取り上げた UT-VPN ですが、Linux(CentOS5)にインストールしてみました。


UT-VPN オープンソースプロジェクト Web サイト - ダウンロードには、UNIX(Linux)版の導入方法を解説した、UT-VPN_Startup_Guide_for_UNIX.pdfが公開されています。親切丁寧なマニュアルなので、ほぼこの通りに作業すれば簡単に導入できますが、一応インストールと動作メモを下記に書いておきます。

Unix(Linux)版はバイナリが公開されておらす、ソースを取得して自身でコンパイルしないといけません。
このソースはUT-VPN Server,Client共通です。
まず、ソースのダウンロードです。(現時点の最新版の場合です。)

# wget "http://utvpn.tsukuba.ac.jp/files/utvpn/v1.01-7101-public-2010.06.27/Source%20Code%20(Win32%20and%20Unix)/utvpn-src-unix-v101-7101-public-2010.06.27.tar.gz"

そして、ダウンロードしたArchiveを解凍します。

# tar xzvf utvpn-src-unix-v101-7101-public-2010.06.27.tar.gz


そして、ビルドを行います。

# cd utvpn-unix-v101-7101-public/
# ./configure
-------------------------------------------------------------
SoftEther UT-VPN for Unix

Copyright (C) 2004-2010 SoftEther Corporation.
Copyright (C) 2004-2010 University of Tsukuba, Japan.
Copyright (C) 2003-2010 Daiyuu Nobori. All Rights Reserved.

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
version 2 as published by the Free Software Foundation.
-------------------------------------------------------------

Please select your Operating System below:
1: Linux
2: FreeBSD
3: Solaris
4: Mac OS X

Which is your operating system (1-4): ←1(Linux)を選択。
1

Please select your CPU Bits below:
1: 32-bit
2: 64-bit

Which is the bits of your CPU (1-2): ←1(32bit)を入力。
1
Makefile is generated. Please execute 'make' to build UT-VPN.

(この段階でMakeFileが生成されるようです)
# make

(完了すると output ディレクトリにバイナリファイルができます。)

# make install

これで、/usr/bin 配下に、utvpnserver,utvpnclient,utvpncmd が作成されます。


手動でUT-VPNサーバを起動、停止する場合は下記のようにすればいいようです。

# utvpnserver start


サーバ起動時に自動で動くようにするため、起動スクリプトを /etc/rc.d/init.d/utvpnserver として作成します。

起動スクリプトは謎のブログ CentOS5にUT-VPNを入れてみる(メモ)を参考にさせてもらいました。

#!/bin/sh
# chkconfig: 2345 99 01
# description: utvpnserver

DAEMON=/usr/bin/utvpnserver
LOCK=/var/lock/subsys/utvpnserver

test -x $DAEMON || exit 0

case "$1" in
start)
$DAEMON start
touch $LOCK
;;
stop)
$DAEMON stop
rm $LOCK
;;
restart)
$DAEMON stop
sleep 3
$DAEMON start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0


作成したスクリプトに実行権限を付与します。

chmod 755 /etc/rc.d/init.d/utvpnserver


chkconfig に登録し、サーバ起動時に自動的にあがるようにします。

# chkconfig utvpnserver on


実際に、init.d の起動スクリプトから起動してみます。

# service utvpnserver start
SoftEther UT-VPN Server Service Started.



後はVPNサーバの設定をしていくわけですが、/usr/bin/utvpncmd から設定しようとするとコマンドラインのためちょっと面倒です。(なにせUT-VPNの設定は結構多岐にわたるので。。)
ということで、同じLANの別WindowsPCから、Windows版の UT-VPN Server Manager を使って設定します。
UT-VPN Server Manager は Server 版のパッケージに入ってるのですが、いちいちインストールするのも面倒です。
Exeだけを入れたZIPが公開されているので、それを使った方が手間無くていいかもしれません。
v1.01版のEZE Only ZIPファイルはhttp://utvpn.tsukuba.ac.jp/files/utvpn/v1.01-7101-public-2010.06.27/Binary%20(Win32)/Japanese/UT-VPN%20Server/32bit%20-%20Intel%20x86/ExeOnly/utvpnserver-v1.01-7101-public-2010.06.27-ja-win32_onlyfiles-x86-32bit.zipで公開されています。

utvpnsmgr.exe を起動してUT-VPNサーバに接続するわけですが、最初ポート番号が 443 になっていますが、今回のサーバは既にtomcatがこのポートを使っているので、ポート番号は 5555 にしておきます。
Linux(CentOS5)にUT-VPNを入れてみた_e0091163_2311221.jpg


これで接続すると管理者パスワードの設定が促されるので、設定しておきます。
Linux(CentOS5)にUT-VPNを入れてみた_e0091163_2314927.jpg


utvpnsmgr.exeのUIですが、SoftEther時代と基本的には一緒だったので、容易に設定ができました。

まずは仮想HUBを選択し、ユーザを作成しておきます。
Linux(CentOS5)にUT-VPNを入れてみた_e0091163_2321256.jpg


ユーザ作成時に、認証方法を選べますが、パスワード以外にも証明書認証やドメイン認証が使えるようです。
ちょっと試しに固定証明書認証を使ってみることにしました。


まず、ユーザ用の証明書を作成しないといけないわけですが、UT-VPNインストールした時点でサーバ証明書が作成されるようです。(自身をルートとしたなんちゃって証明書ですが。)
これはサーバ管理マネージャの、「暗号化と通信関係の設定」で、「証明書のエクスポート」を行います(X509証明書と秘密鍵ファイルができます)。
で、ユーザの作成ウィンドウで、「証明書作成ツール」から、エクスポートしたサーバ証明書に基づいて証明書を作成します。
これで設定を保存しようとしたのですが、UT-VPNではダメだと怒られます。

残念ながらあきらめましたが、次期バージョンで実装されるといいですね。
Linux(CentOS5)にUT-VPNを入れてみた_e0091163_2323065.jpg


UT-VPNは仮想HUBを複数作れるので、VPNも複数の目的用に構築できるので、便利ですね。
UT-VPN Server は物理LANとブリッジできるので、拠点間通信も簡単にできそうです。



クライアントの方は、Windowsマシンの場合MSIインストーラで提供されているので、それをインストーするすだけです。
Unix(Linux)版の方はServerもClientも共通なので、既に述べたビルドをした時点でClient版もできています。

クライアントの方もサーバ起動時に自動で動くようにするため、起動スクリプトを /etc/rc.d/init.d/utvpnclient として作成します。
上記のスクリプトで、ロックファイルと実行するプログラムだけ変更してみました。

#!/bin/sh
# chkconfig: 2345 99 01
# description: utvpnclient

DAEMON=/usr/bin/utvpnclient
LOCK=/var/lock/subsys/utvpnclient

test -x $DAEMON || exit 0

case "$1" in
start)
$DAEMON start
touch $LOCK
;;
stop)
$DAEMON stop
rm $LOCK
;;
restart)
$DAEMON stop
sleep 3
$DAEMON start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0


作成したスクリプトに実行権限を付与します。

chmod 755 /etc/rc.d/init.d/utvpnclient


chkconfig に登録し、サーバ起動時に自動的にあがるようにします。

# chkconfig utvpnclient on


実際に、init.d の起動スクリプトから起動してみます。

# service utvpnclient start
SoftEther UT-VPN Client Service Started.


クライアント側もここから設定が必要となるわけですが、utvpncmd でいちいちコマンドで設定していくのは非常に面倒です。
で、Windows端末からのリモートでクライアントの設定ができる方法があるわけですが、リモート設定の許可を与えてやらないといけません。
ということで、下記コマンドでリモート設定を有効にします。

# utvpncmd /client localhost
utvpncmd コマンド - SoftEther UT-VPN コマンドライン管理ユーティリティ
SoftEther UT-VPN コマンドライン管理ユーティリティ (utvpncmd コマンド)
Version 1.01 Build 7101 (Japanese)
Compiled 2010/06/27 18:40:28 by yagi at pc25
Copyright (C) 2004-2010 SoftEther Corporation.
Copyright (C) 2004-2010 University of Tsukuba, Japan.
Copyright (C) 2003-2010 Daiyuu Nobori.
All Rights Reserved.

VPN Client "localhost" に接続しました。

VPN Client>RemoteEnable
RemoteEnable コマンド - VPN Client サービスのリモート管理の許可
コマンドは正常に終了しました。

VPN Client>exit



後は、Windows端末側のUT-VPN Client が入ったPCで、スタートメニューの「SoftEther UT-VPN Client」 → 「高度な管理ツール」 → 「別のコンピュータの SoftEther UT-VPN Client の管理」を実行します。
これでLinux上のUT-VPN クライアントも簡単に管理できます。
まずはLANカードを作って、それから新規接続設定を作成します。

と、思って「新しいVPN接続設定の作成」を押下し、仮想LANカードがまだないので作ろうとすると、仮想LANカードはリモートからは作成できないと怒られます。
しかし、クライアント接続マネージャの下側の仮想LANカード一覧のペインから、右クリックで仮想LANカードは作成できるようです。

ただし、一応コマンドで仮想LANカードを作成する方法を下記に書いておきます。

# utvpncmd
utvpncmd コマンド - SoftEther UT-VPN コマンドライン管理ユーティリティ
SoftEther UT-VPN コマンドライン管理ユーティリティ (utvpncmd コマンド)
Version 1.01 Build 7101 (Japanese)
Compiled 2010/06/27 18:40:28 by yagi at pc25
Copyright (C) 2004-2010 SoftEther Corporation.
Copyright (C) 2004-2010 University of Tsukuba, Japan.
Copyright (C) 2003-2010 Daiyuu Nobori.
All Rights Reserved.

utvpncmd プログラムを使って以下のことができます。

1. VPN Server または VPN Bridge の管理
2. VPN Client の管理
3. VPN Tools コマンドの使用 (証明書作成や通信速度測定)

1 - 3 を選択: 2

接続先の VPN Client が動作しているコンピュータの IP アドレスまたはホスト名を指定してください。
何も入力せずに Enter を押すと、localhost (このコンピュータ) に接続します。
なお、このコマンドでは SoftEther UT-VPN Client を管理できますが、PacketiX VPN Client は管理できませんのでご注意ください。
接続先のホスト名または IP アドレス:

VPN Client "localhost" に接続しました。

VPN Client>help
下記の 65 個のコマンドが使用できます:
About - バージョン情報の表示
AccountAnonymousSet - 接続設定のユーザー認証の種類を匿名認証に設定
AccountCertGet - 接続設定に用いるクライアント証明書の取得
AccountCertSet - 接続設定のユーザー認証の種類をクライアント証明書認証に設定

AccountCompressDisable - 接続設定の通信時のデータ圧縮の無効化
AccountCompressEnable - 接続設定の通信時のデータ圧縮の有効化
AccountConnect - 接続設定を使用して VPN Server へ接続を開始
AccountCreate - 新しい接続設定の作成
AccountDelete - 接続設定の削除
AccountDetailSet - 接続設定の高度な通信設定の設定
AccountDisconnect - 接続中の接続設定の切断
AccountEncryptDisable - 接続設定の通信時の暗号化の無効化
AccountEncryptEnable - 接続設定の通信時の暗号化の有効化
AccountExport - 接続設定のエクスポート
AccountGet - 接続設定の設定の取得
AccountImport - 接続設定のインポート
AccountList - 接続設定一覧の取得
AccountNicSet - 接続設定で使用する仮想 LAN カードの設定
AccountPasswordSet - 接続設定のユーザー認証の種類をパスワード認証に設定
AccountProxyHttp - 接続設定の接続方法を HTTP プロキシサーバー経由接続に設定
AccountProxyNone - 接続設定の接続方法を直接 TCP/IP 接続に設定
AccountProxySocks - 接続設定の接続方法を SOCKS プロキシサーバー経由接続に設定

AccountRename - 接続設定の名前の変更
AccountRetrySet - 接続設定の接続失敗または切断時の再試行回数と間隔の設定
AccountSecureCertSet - 接続設定のユーザー認証の種類をスマートカード認証に設定
AccountServerCertDelete - 接続設定のサーバー固有証明書の削除
AccountServerCertDisable - 接続設定のサーバー証明書の検証オプションの無効化
AccountServerCertEnable - 接続設定のサーバー証明書の検証オプションの有効化
AccountServerCertGet - 接続設定のサーバー固有証明書の取得
AccountServerCertSet - 接続設定のサーバー固有証明書の設定
AccountSet - 接続設定の接続先の設定
AccountStartupRemove - 接続設定のスタートアップ接続を解除
AccountStartupSet - 接続設定をスタートアップ接続に設定
AccountStatusGet - 接続設定の現在の状態の取得
AccountStatusHide - VPN Server への接続中に接続状況やエラー画面を表示しないよ
うに設定
AccountStatusShow - VPN Server への接続中に接続状況やエラー画面を表示するよう
に設定
AccountUsernameSet - 接続設定の接続に使用するユーザー名の設定
CertAdd - 信頼する証明機関の証明書の追加
CertDelete - 信頼する証明機関の証明書の削除
CertGet - 信頼する証明機関の証明書の取得
CertList - 信頼する証明機関の証明書一覧の取得
Check - SoftEther UT-VPN の動作が可能かどうかチェックする
KeepDisable - インターネット接続の維持機能の無効化
KeepEnable - インターネット接続の維持機能の有効化
KeepGet - インターネット接続の維持機能の取得
KeepSet - インターネット接続の維持機能の設定
MakeCert - 新しい X.509 証明書と秘密鍵の作成
NicCreate - 新規仮想 LAN カードの作成
NicDelete - 仮想 LAN カードの削除
NicDisable - 仮想 LAN カードの無効化
NicEnable - 仮想 LAN カードの有効化
NicGetSetting - 仮想 LAN カードの設定の取得
NicList - 仮想 LAN カード一覧の取得
NicSetSetting - 仮想 LAN カードの設定の変更
NicUpgrade - 仮想 LAN カードのデバイスドライバのアップグレード
PasswordGet - VPN Client サービスに接続するためのパスワードの設定の取得

PasswordSet - VPN Client サービスに接続するためのパスワードの設定
RemoteDisable - VPN Client サービスのリモート管理の禁止
RemoteEnable - VPN Client サービスのリモート管理の許可
SecureGet - 使用するスマートカードの種類の ID の取得
SecureList - 使用できるスマートカードの種類の一覧の取得
SecureSelect - 使用するスマートカードの種類の選択
TrafficClient - 通信スループット測定ツールクライアントの実行
TrafficServer - 通信スループット測定ツールサーバーの実行
VersionGet - VPN Client サービスのバージョン情報の取得

それぞれのコマンドの使用方法については、"コマンド名 /?" と入力するとヘルプが表示されます。
コマンドは正常に終了しました。

VPN Client>NicCreate
NicCreate コマンド - 新規仮想 LAN カードの作成
仮想 LAN カードの名前: utvpnpublic

コマンドは正常に終了しました。

VPN Client>exit

by jehoshaphat | 2011-02-15 23:03 | ネットワーク


<< UT-VPNのローカルブリッジ... サブ拠点にドメインコントローラを置く >>