そのままだとビルド周りでこけるのでメモ.
- さくらのVPS 2G(v2)
- Ubuntu Server 12.04 LTS amd64
- カスタムOSインストールした直後
- ビルドに必要なパッケージのインストール
- UT-VPNのソースコードの取得と展開
- OpenSSLのinclude周りの解決【コケるポイント】
- configure
- make
- utvpncmdでの動作チェック
- make install
- http://utvpn.tsukuba.ac.jp/files/utvpn/v1.01-7101-public-2010.06.27/UT-VPN_Startup_Guide_for_UNIX.pdf
- http://www.softether.co.jp/jp/vpn2/manual/web/7-3.aspx
必要なパッケージのインストールと,UT-VPNのソースコードをダウンロード&展開します.
apt-getしているパッケージはUbuntu Serverに初期でインストールされていないものです.
% sudo apt-get install gcc make libssl-dev libiconv-hook-dev libreadline-dev libncurses5-dev
% 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 xzvf utvpn-src-unix-v101-7101-public-2010.06.27.tar.gz
% cd utvpn-unix-v101-7101-public/
UT-VPN側で利用しているOpenSSLのバージョンが古く,システムにインストールされているバージョンと異なるため,このままビルドしてもSEGVで落ちてしまいます.
なので,システム側に合わせてやります.(強引ですが)
% cp /usr/include/openssl/* ./src/Mayaqua/openssl/
configureは,各自の環境に合わせてください.
% ./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
Please select your CPU Bits below:
1: 32-bit
2: 64-bit
Which is the bits of your CPU (1-2):
2
Makefile is generated. Please execute 'make' to build UT-VPN.
% make -j6
utvpncmdコマンドで動作環境チェックができます. これがきちんと実行できればきちんと動作するはずです.
うまく動かないときはSegmentation faultなどで落ちてしまい,そもそもコマンド自体が動作しないこともあります.
% ./output/utvpncmd/utvpncmd
...
1. VPN Server または VPN Bridge の管理
2. VPN Client の管理
3. VPN Tools コマンドの使用 (証明書作成や通信速度測定)
1 - 3 を選択: 3
VPN Tools> Check
...
'カーネル系' のチェック中...
[合格] ○
'メモリ操作系' のチェック中...
[合格] ○
'ANSI / Unicode 文字列処理系' のチェック中...
[合格] ○
'ファイルシステム' のチェック中...
[合格] ○
'スレッド処理システム' のチェック中...
[合格] ○
'ネットワークシステム' のチェック中...
[合格] ○
すべてのチェックに合格しました。このシステム上で SoftEther UT-VPN Server が正しく動作する可能性が高いと思われます。
システムにUT-VPNをインストールします.
% sudo make install
このままでは,OSを再起動したときに自動的にUT-VPNが起動しません. 自動的にUT-VPNを開始するためにはinit.dに起動スクリプトを設置する必要があります.
こちらのサイトに製品版であるPacketix VPNでの設定方法があります.
vpnserverの部分を基本的にはutvpnseverに置き換えます.
% which utvpmserver
/usr/bin/utvpnserver
whichをかけたところ/usr/bin/utvpnserverにあるようなのでDAEMONのパスを変えてやります.
変えたバージョンを下に掲載します.このファイルを/etc/init.d/utvpnserverに作成します.
#!/bin/sh
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 3
$DAEMON start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0
パーミッションの設定を変更し起動.
% sudo chmod 755 /etc/init.d/utvpnserver
% sudo /etc/init.d/utvpnserver start
これで,OS起動時にも自動的にUT-VPN Serverが起動します. (UT-VPN Clientを自動起動するようにしたい場合は,utvpnserverの部分を変えればOKです.)
UT-VPNに搭載されている「SecureNAT」機能がありますが,いまいちこのNATはスループットが出ないのでiptablesでNATを組みます.
DHCPサーバを別個で建てるのは面倒なので,SecureNATのDHCPサーバ機能だけ使います.
- SecureNAT
- 仮想NAT機能は使用しない
- 仮想DHCPサーバ機能だけ使用する
- ローカルブリッジ設定
- 仮想HUBをtapデバイスとブリッジ接続する
- iptables側でNATを組むために必要
- tapデバイスにはLinux側から固定IPアドレスを設定する
- 仮想HUBをtapデバイスとブリッジ接続する
- iptables
- NATとパケット転送の設定をする