ServersMan VPSの490円 EntryプランのサーバにUT-VPNをインストール

UT-VPNのServerとして動かす予定でServersMan VPSの月490円プランを申し込んで設定した時のメモのような日記のようなもの。

ServersMan@VPSのOSはUbuntu 10.04 32bitを選択。
なぜ32bitかと言うと、64bitだといろいろと動かないことがあるから(俺の知識じゃ対処無理なことが多々&先人に見習って楽したい)。
あと、490円のEntryプランはどうせメモリも最大1GBまでだから、32bitでもいいかな・・と。

今回のインストールに関しては下記のwiki、

豚吐露@wiki
http://www21.atwiki.jp/ohden/?cmd=search&keyword=utvpn

がかなり詳しいので参考にしました。

参考っていうか、だいたいそのまんまです。

以下、俺は面倒くさがりなのでインストール直後の状態のrootでログインできちゃうまま作業しちゃってるので、まともな人は真似しないでください。

俺もこのあとでユーザ権限だけでログインかつ証明書でのみログインできるように設定してます。

普通、Ubuntuはrootで作業することはあまりしないので、ユーザ権限で作業する場合は、以下、全部コマンドの頭に sudo を付けて実行する感じです。

では、設定開始。

UT-VPNダウンロード
# 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”

解凍
# tar zxvf utvpn-src-unix-v101-7101-public-2010.06.27.tar.gz

locateでファイル検索する時のデータベースのファイル名のデータベースをアップデート
# updatedb

Ubuntuのパッケージデータベースのアップデート
# apt-get update

UT-VPNに必要らしいライブラリがあるかを確認。
# locate libm.a
# locate libpthread.a
# locate libcrypto.a
# locate libssl.a
# locate libiconv.a
# locate libreadline.a
# locate libncurses.a

・・・1つも出てこない?
まあいいやということで、そのまま続行。
VPSはいざとなったら、遠隔でOSを簡単に入れ直せるので気楽。

とりあえず、上から順番にファイルが入ってるらしいパッケージをインストールしてみる。
libm.a
libpthread.a
の2つは
http://packages.ubuntu.com/
の「パッケージ内容を検索」で検索すると、
libc6-dev に含まれるらしいので、
# apt-get install libc6-dev

以下同じく検索してインストール
libcrypto.a
libssl.a
は libssl-dev に含まれるらしいのでインストール
# apt-get install libssl-dev

libreadline.a
は libreadline6-dev に含まれるらしいのでインストール。
# apt-get install libreadline6-dev

libncurses.a
は libncurses5-dev に含まれるらしいのでインストール。
# apt-get install libncurses5-dev

libiconv.a
だけが見つからないので、冒頭のサイトを参考に。
libiconvをダウンロードしてmake

libiconvが含まれてるパッケージをダウンロード
# wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz

解凍してディレクトリ移動。
# tar zxvf libiconv-1.13.1.tar.gz
# cd libiconv-1.13.1/

make
# ./configure –enable-static=yes
# make
# paco -D make install

pacoが無いって言われるのでインストール
# apt-get install paco

※pacoはパッケージ管理用のソフトですが、入れなくても別にUT-VPNの動作には関係ありません。

もう1回。
# paco -D make install
# cd ..

再びファイル検索データベースのアップデート。
# updatedb

で、

# locate libm.a
# locate libpthread.a
# locate libcrypto.a
# locate libssl.a
# locate libiconv.a
# locate libreadline.a
# locate libncurses.a

と調べると今度は全部出てくる。

さっき落としたUT-VPNのmakeをする。
# cd utvpn-unix-v101-7101-public/
# ./configure

Please select your Operating System below:

1.Linux
を選択。

Please select your CPU Bits below:
で、
1.32-bit
を選択。

makeする。
# make

makeにはここから3分ほどかかる。

makeしてできたUT-VPNのファイルの動作テスト。
# output/utvpnserver/utvpnserver start
# output/utvpnserver/utvpnserver stop
# output/utvpnclient/utvpnclient start
# output/utvpnclient/utvpnclient stop

うまくmakeして動作できたのが確認できたらインストール。

# paco -D make install
または
# make install

pacoを使って入ったfileを確認してみる。
# paco -f utvpn-unix-v101-7101-public

utvpn-unix-v101-7101-public:
/usr/bin/utvpnclient
/usr/bin/utvpncmd
/usr/bin/utvpnserver
/usr/utvpnclient/hamcore.utvpn
/usr/utvpnclient/utvpnclient
/usr/utvpncmd/hamcore.utvpn
/usr/utvpncmd/utvpncmd
/usr/utvpnserver/hamcore.utvpn
/usr/utvpnserver/utvpnserver

Serverとして動かすので、
参考元みたいにviは使えないヘタレなので、エディタはnanoをインストール
# apt-get install nano

nanoでUT-VPNのサーバの起動スクリプトファイルを作成。
# nano utvpnserver

utvpnserverのファイルの内容は以下、「ここから」〜「ここまで」の間をCtrl+Insertでコピーして、Shift+InsertでTerminalで起動したnanoに貼り付け。

ここから
#!/bin/sh
# chkconfig: 2345 99 01
# description: UT-VPN Server 1.01-7101

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

test -x $DAEMON || exit 0

case “$1” in
start)
$DAEMON start
touch $LOCK
;;
stop)
$DAEMON stop
rm $LOCK
;;
restart)
$DAEMON stop
sleep 5
$DAEMON start
;;
*)
echo “Usage: $0 {start|stop|restart}”
exit 1
esac
exit 0
}
ここまで

Ctrl+x
Ctrl+y
Enter
で保存して終了。

作成した起動スクリプトファイルの権限や所有者を変更して、実行ファイルをコピー。
# chmod 744 utvpnserver
# chown root:root utvpnserver
# cp utvpnserver /etc/init.d/

※参照元だと「vpnserver」になっているけど、作った起動スクリプトのファイル名は「utvpnserver」なので適宜修正してます。

自動起動するように設定するためのsysv-rc-confを
インストールして、実行。
# apt-get install sysv-rc-conf
# sysv-rc-conf

カーソルキーで下にスクロールさせていくと、
utvpnserv$というのが出てくるので、
utvpnserv$の左から2、3、4、5番目のところに左右カーソルキーで移動してスペースキーを押すとそれぞれに「X」印が付く。
Xマークをつけ終わったらqキーで終了。

UT-VPNのサーバを実行してみる。
# service utvpnserver start

UT-VPNサーバが動作してるか確認する。
# ps aux | grep utvpn*

もし動いてないと
root     46831  0.0  0.0   1808   632 pts/0    S+   22:11   0:00 grep –color=auto utvpnserver
ってな感じのだけが出てくる。

ちゃんと動いているなら
root     50914  0.0  0.0   4800   988 ?        Sroot     50915  2.0  0.9  16916  9808 ?        Sroot     50976  0.0  0.0   1808   632 pts/0    S+   22:13   0:00 grep –color=auto utvpnserver
と似たような内容が出てくる。

UT-VPNサーバを再起動してみる。
# service utvpnserver restart

UT-VPNサーバを停止してみる。
# service utvpnserver stop

以降はサーバを再起動すると自動実行されるはず。

ServersMan VPSにインストールしたUT-VPNの設定。

ServersMan VPSにインストールしたUT-VPN Serverの設定。

UT-VPNで443を使うので、ServersMan VPSに最初からインストールされてるApacheが
443を使わないように設定する。

Apache2を一旦止める。
# service apache2 stop

Apache2のSSLモジュールを無効化
# a2dismod ssl

これでapache2を起動して確認すると、
# service apache2 start
# netstat -A inet -npl

止まっているように見える。

UT-VPNサーバを起動する。
# service utvpnserver start

ここまででインストール完了。
次に動作チェック。

UT-VPNサーバの管理プログラムを起動。
# 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 を選択: 1 (1を選択)

接続先の VPN Server または VPN Bridge が動作しているコンピュータの IP アドレスまたはホスト名を指定してください。
‘ホスト名:ポート番号’ の形式で指定すると、ポート番号も指定できます。
(ポート番号を指定しない場合は 443 が使用されます。)
何も入力せずに Enter を押すと、localhost (このコンピュータ) のポート 443 に接続します。
接続先のホスト名または IP アドレス:  (Enterキー)

サーバーに仮想 HUB 管理モードで接続する場合は、仮想 HUB 名を入力してください。
サーバー管理モードで接続する場合は、何も入力せずに Enter を押してください。
接続先の仮想 HUB 名を入力:  (Enterキー)
VPN Server “localhost” (ポート 443) に接続しました。

VPN Server 全体の管理権限があります。

VPN Server>

となる。

あとは、以下を参考に動作に必要な仮想Hubのユーザ設定をしたりなどだが、
そのまんまなので省略。
http://www21.atwiki.jp/ohden/?cmd=word&word=utvpn&type=normal&page=linux%2FUT-VPN%2FUT-VPN%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%80%81%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E9%96%93%E3%81%A7%E6%8E%A5%E7%B6%9A%E3%81%99%E3%82%8B