Skip to content

Instantly share code, notes, and snippets.

@falcon8823
Created October 28, 2012 02:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save falcon8823/3967209 to your computer and use it in GitHub Desktop.
Save falcon8823/3967209 to your computer and use it in GitHub Desktop.
Linux上でのUT-VPNのインストール

Linux上でのUT-VPNのインストール

そのままだとビルド周りでこけるのでメモ.

前提環境

  • さくらのVPS 2G(v2)
  • Ubuntu Server 12.04 LTS amd64
    • カスタムOSインストールした直後

大まかなインストール手順

  1. ビルドに必要なパッケージのインストール
  2. UT-VPNのソースコードの取得と展開
  3. OpenSSLのinclude周りの解決【コケるポイント】
  4. configure
  5. make
  6. utvpncmdでの動作チェック
  7. make install

参考資料

必要なパッケージ等の取得

必要なパッケージのインストールと,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/

OpenSSLのinclude周りの解決

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起動時に自動的に開始するようにする

このままでは,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です.)

仮想HUB設定とルーティング

UT-VPNに搭載されている「SecureNAT」機能がありますが,いまいちこのNATはスループットが出ないのでiptablesでNATを組みます.

DHCPサーバを別個で建てるのは面倒なので,SecureNATのDHCPサーバ機能だけ使います.

設定内容

  • SecureNAT
    • 仮想NAT機能は使用しない
    • 仮想DHCPサーバ機能だけ使用する
  • ローカルブリッジ設定
    • 仮想HUBをtapデバイスとブリッジ接続する
      • iptables側でNATを組むために必要
      • tapデバイスにはLinux側から固定IPアドレスを設定する
  • iptables
    • NATとパケット転送の設定をする
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment