MyEnigma

とある自律移動システムエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

さくらVPS上にSoftEtherを使ってVPNサーバ(L2TP/IPSec and OpenVPN)を立てる方法

目次

 

はじめに

VPNが使用したくて、

インターリンクvpnという有名な

月額1000円のVPNサービスを利用していたのですが、

あまりにも通信のスループットが出ずに困っていました。

(300M超えの回線で、vpnを使うと平均5Mぐらい)

 

そこで、先日、Raspberry Piに

無料のVPNソフトを使って、

VPNサーバを立てる方法を説明しました。

myenigma.hatenablog.com

 

今回は、

同じVPNソフトウェアSoftEtherを使って、

さくらVPSのサーバ上に

VPNサーバ(L2TP/IPSecとOpenVPNの二種類)を

立ててみたので、

その方法を説明したいと思います。

SoftEther VPN プロジェクト - SoftEther VPN プロジェクト

 

VPNの接続方式

VPNにはいくつか接続方式があります。

詳しくは下記を参照して下さい。

今回は、L2TPとOpenVPNに対応したVPNサーバを立てます。

 

SoftEtherサーバ(L2TP/IPSec) の立て方

1. さくらVPSの申し込みと設定

さくらVPSは、

SSD対応の仮想専用サーバーです。

上記のリンクから申し込みができます。

また、二週間の無料でお試しできます。

 

今回はお試しということで、

さくらvpsの一番安いプラン512Mの

月額685円のプランを使います。

 

ちなみに一つ注意点として、

さくらvpsは、二週間無料で

vpsを使うことができるというサービスをしていますが、

この無料期間中は通信の帯域を2Mまで抑えられてしまうため、

ちゃんとVPNを使う場合には、支払い登録をして、

通信制限を解除してもらう必要があります。

 

またVPSサービスはさくらVPS以外にも

下記のようなものがあるようです。

 

2. OS (ubuntu) の初期設定

下記の記事を元に、最低限のセキュリティ設定をしておきます。

qiita.com

qiita.com

 

SoftEther用のポート設定は、

後ほど実施します。

 

3. SoftEtherのインストールと起動設定

基本的には下記の記事の方法でOKです。

qiita.com

7.3 Linux へのインストールと初期設定 - SoftEther VPN プロジェクト

 

しかし、上記の記事ではVPNサーバのアカウント作成などは、

WindowsのGUIツールを使っているので、

途中まで参考にさせて頂きました。

 

下記はコマンドのメモです。

(sshでログインした後のコマンドです)

$ sudo apt-get update

$ sudo apt-get upgrade

下記のコマンドは、インストールするOSの応じて、

下記のリンクからソフトウェアのリンクを設定します。

SoftEther ダウンロード センター

 

$ wget http://www.softether-download.com/files/softether/v4.22-9634-beta-2016.11.27-tree/Linux/SoftEther_VPN_Server/64bit-Intel_x64_or_AMD64/softether-vpnserver-v4.22-9634-beta-2016.11.27-linux-x64-64bit.tar.gz

$ tar zxvf softether-vpnserver-v4.14-9529-beta-2015.02.02-linux-arm_eabi-32bit.tar.gz

$ cd vpnserver

$ sudo make

$ cd ..

$ mv vpnserver /usr/local

$ cd /usr/local/vpnserver/

$ chmod 600 *

$ chmod 700 vpncmd

$ chmod 700 vpnserver

 

最後に/usr/local/vpncmdを起動して、

3番の選んで、checkコマンドを入力すると、

インストールしたシステムのテストをしてくれます。

すべての項目でエラーでないことを確認します。

 

4. vpnサーバの自動起動設定

まず初めに下記のファイルを作ります。

$ sudo vim /etc/init.d/vpnserver

#!/bin/sh
# chkconfig: 2345 99 01
# description: SoftEther VPN Server
DAEMON=/usr/local/vpnserver/vpnserver
LOCK=/var/lock/subsys/vpnserver
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

 

あとはubuntuのchkconfigである

sysv-rc-confを使って、先程のスクリプトを使って、

vpnserverを自動起動するようにします。

sysv-rc-confを起動して、

$ sudo sysv-rc-conf

下の方にある、

vpnserverの2,3,4,5の列でスペースキーを押下して[X]に変更します。

最後にqキーで終了すればOKです。

f:id:meison_amsl:20170429034402p:plain

 

5. VPNサーバのアカウント作成

Windowsはサーバ管理用のGUIソフトがあるみたいですが、

Macには無いので、下記の記事の通り、

CUIでアカウントの設定をします。

qiita.com

 

上記のアカウント設定ができれば、

ローカルからのVPN接続は次のステップの方法で

できるはずです。

 

6. SoftEther用のポート設定

SoftEtherはIPSec/L2TPのVPN接続の場合、

500/udpと4500/udpのポートを使用するため、

サーバ側のポートを開ける必要があります。

 

さくらVPSでubuntuを標準インストールすると、

以下のディレクトリにあるiptableの設定がデフォルト有効になっています。

/etc/iptables/iptables.rules

この状態だとnfwで設定しても、

なぜか設定が反映されないため、

まずはじめに上記のファイルを削除します。

 

その後、下記のコマンドで設定すると、

500と4500のポートを開けることができます。

$ sudo ufw allow 500/tcp

$ sudo ufw allow 4500/tcp

 

あとはnmapなどを使って、

ポートスキャンしてfilteredになっていないことを確認しましょう。

sudo nmap -sU 1.1.1.1 -p U:500

 

7. Mac, iPhone等からVPNに接続する。

最後にMacやiPhoneなどから、

無事VPNに繋がることができればOKです。

Mac OS X からの接続方法 - SoftEther VPN プロジェクト

iPhone / iPod Touch / iPad からの接続方法 - SoftEther VPN プロジェクト

 

L2TP/IPSecのサーバに同じLANから複数台同時にVPNサーバに繋げない場合

下記のような状態になった場合、

network - SoftEtherのVPNサーバに同じLAN内の複数のクライアントから同時接続する方法 - スタック・オーバーフロー

原因はルータが

VPNパススルーに対応していないためである可能性があります。

detail.chiebukuro.yahoo.co.jp

 

SoftEtherを使ってOpenVPNのサーバも同時に立てる

はじめはL2TPがSoftEtherのデフォルトの接続方式であったことと、

iOSやMacでもデフォルトで対応していたため、

L2TPを使ってサーバを立てたのですが、

前述の理由で、ルータがVPNパススルーに対応していない場合、

同じLANから複数台同時接続出来なかったため、

追加でOpenVPNという通信方式のVPNサーバも試しました。

 

SoftEtherはデフォルトではL2TPに対応していますが、

OpenVPNのサーバも同時に立てることができます。

vmncmdのサーバのセットアップで、

OpenVpnEnable

とするとOpenVPNのサーバを立てることができます。

ポートの番号も指定できます。

(デフォルトはUDPの1194です)

 

その後、

クライアント設定用のファイルを作ります。

OpenVpnMakeConfig

でディレクトリを指定すると、

Zipファイルを作れるので、

そのファイルを解凍してメールなどで、

MacやiPhoneからアクセスできるようにしておきます。

  

MacからOpenVPNでVPNサーバに接続する

下記に書いてる方法でOKです。

tunnelblick.net

 

Macはデフォルトで、OpenVPNに対応していないので、

追加でソフトのインストールが必要ですが、

一度設定してしまえば、安定して動きました。

 

iOSからOpenVPNでVPNサーバに接続する

下記に書いてる方法でOKです。

iPhoneやiPad (iOS) でOpenVPNを使ってみよう! | OpenVPN.JP

 

iOSはデフォルトで、OpenVPNに対応していないので、

追加でアプリのインストールが必要ですが、

一度設定してしまえば、安定して動きました。

OpenVPN Connect
OpenVPN Connect
無料
posted with アプリーチ

 

Interlink, さくらVPS上のSoftEther(L2TP/IPSec), さくらVPS上のSoftEther(OpenVPN)の速度比較

上記の方法を使って、設定したVPNとInterlinkのVPN、

そしてVPN無しの通信速度を比較してみました。

最後に、

冒頭で説明したInterlink VPNと、

今回のさくらVPS上のVPNのスループットの比較をしてみました。

下記がその結果です。

通信方式 ダウンロード アップロード PING
通常 371.41 294.04 3
interlink VPN 5.91 6.83 273
さくらvps VPN(L2TP/IPSec) 27.38 24.12 231
さくらvps VPN(OpenVPN) 32.50 29.43 217

 

L2TP/IPSec, OpenVPNともに、

InterlinkのVPNと比べて、

ダウンロード, アップロード共に、4倍早くなりました(^^)

おそらくサーバを独り占めしていることと、

さくらvpsの通信インフラがしっかりしているためだと思います。

 

ネットの情報では、

OpenVPNは、L2TP/IPSecに比べて、

通信速度が遅いと言われていたのですが、

自分の環境ではほとんど変わらないため、

同じLANから複数台同時接続できるOpenVPNをメインにして使っています。

 

前述の通りさくらvpsの一番安いプラン512Mの

月額685円のVPSプランを使っているので、

interlink VPNが月額1000円であるあることを考えると、

値段も安くなり、通信も安定してかなり満足しています。

 

MyEnigma Supporters

もしこの記事が参考になり、

ブログをサポートしたいと思われた方は、

こちらからよろしくお願いします。

myenigma.hatenablog.com

  

参考資料

ja.stackoverflow.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

 

MyEnigma Supporters

もしこの記事が参考になり、

ブログをサポートしたいと思われた方は、

こちらからよろしくお願いします。

myenigma.hatenablog.com