*

SoftEther VPNでLinux録画サーバを外部から接続する方法(Ubuntu・Debian編)

  最終更新日:2017/03/21

Pocket

SoftEther VPNでLinux録画サーバを外部から接続する方法(Ubuntu・Debian編) SoftEther VPNでLinux録画サーバを外部から接続する方法(Ubuntu・Debian編)

 SoftEther VPNを使ってLinux録画サーバを外部から接続する方法について説明します。この記事では外出先でスマホやPCからChinachu、epgrec UNAの録画予約ができることを最終目標としています。IPsec/L2TPにより暗号化されたVPN接続を行うので、比較的安全に外出先から家のLAN環境に接続することが可能になります。一旦VPN接続することができれば、家のLAN環境のあらゆるネットワーク機器にアクセス可能になり非常に便利です。

 本記事でSoftEther VPNサーバーをインストールするOSはUbuntuまたはDebianです。しかし、主な設定はWindowsから行います。これは、設定アプリがWindows用しか用意されていないためです(一応コマンドでも設定可能なようですが…)。Mac OSやLinuxから設定する場合、仮想環境のWindowsやWineを使用して下さい(これらの方法については説明しません)。Windowsからの設定方法については、後編の「Linux版SoftEther VPNのIPsec/L2TP設定方法」にて説明します。

スポンサーリンク

注意事項

 最初に注意事項があります。ネットワークの設定を大幅に変更するため、よく理解しないまま進めると最悪の場合ネットワークに繋がらなくなります。また、中途半端に作業を投げ出してしまうとネットワークの動作がおかしくなる可能性もあります。ですので、できれば後編の記事まで読んでから試して下さい。

 一応Linux初心者でもなんとなく理解可能なように記事を書いたつもりです。ですが、確実に理解するためにはTCP/IPの基礎知識が必要です。家のLAN環境でルーターになんとなく接続して、よく理解しないままインターネットにつないでいる人には多分最後まで進めることは出来ないでしょう。それぐらい難しいと考えて下さい。

SoftEther VPNサーバーのインストール

 SoftEther VPNサーバーのインストールの前に環境を最新の状態にします。以降、先頭がsudoとなっている箇所は、Debianではrootユーザーで実行して下さい。

# sudo apt-get update
# sudo apt-get upgrade

  開発環境を構築していない場合、下記も実行します

# sudo apt-get install build-essential

 SoftEther VPNサーバーを以下のページからダウンロードします。

 選択肢は以下を選んで下さい。もし32bit版のLinuxを使用している場合、CPUは”Intel x86 (32bit)”を選びます。

  • コンポーネント:SoftEther VPN Server
  • プラットフォーム:Linux
  • CPU:Intel x64 / AMD64 (64bit)

 本記事投稿時点のファイル名は、”softether-vpnserver-v4.19-9599-beta-2015.10.19-linux-x64-64bit.tar.gz”です。このファイルをLinuxに転送して下さい。

 ファイルを解凍し、ビルドします。

# sudo tar xvzf softether-vpnserver-v4.19-9582-beta-2015.10.06-linux-x64-64bit.tar.gz -C /usr/local
  ※解凍先を末尾の-Cオプションで/usr/local/にしているので注意

# cd /usr/local/vpnserver
# sudo make

  以下、ライセンス契約の同意を3回求められるので、
  全て1を選択します。

    Do you want to read the License Agreement for this software ?
    Did you read and understand the License Agreement ?
    Did you agree the License Agreement ?

  途中、以下のメッセージが表示されればOKです。

    'カーネル系' のチェック中...
                  [合格] ○
    'メモリ操作系' のチェック中...
                  [合格] ○
    'ANSI / Unicode 文字列処理系' のチェック中...
                  [合格] ○
    'ファイルシステム' のチェック中...
                  [合格] ○
    'スレッド処理システム' のチェック中...
                  [合格] ○
    'ネットワークシステム' のチェック中...
                  [合格] ○

 ファイルの実行権を変更します。

# sudo chmod 600 *
# sudo chmod 700 vpn*

 続いて起動設定を行います。

# sudo vi /etc/init.d/vpnserver

  起動・停止用のスクリプトの内容(後述)をコピペします。

# sudo chmod +x /etc/init.d/vpnserver
# sudo update-rc.d vpnserver defaults

  Ubuntuの場合)
    # sudo service vpnserver start

  Debianの場合)
    # /etc/init.d/vpnserver start

  "The SoftEther VPN Server service has been started."と警告されますが、
  特に気にしなくて良いです。

# pidof vpnserver

  最後に数字が2つ表示されることを確認します。

 起動・停止用のスクリプトの中身は以下です。ダブルクリックするとスクリプト全体を選択した状態になるのでCtrl+Cでコピーして下さい。

#! /bin/sh
### BEGIN INIT INFO
# Provides:          vpnserver
# Required-Start:    $network $local_fs
# Required-Stop:     $network $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: SoftEther VPN Server
### END INIT INFO

PATH=/bin:/usr/bin:/sbin:/usr/sbin
DAEMON=/usr/local/vpnserver/vpnserver

test -x $DAEMON || exit 1

case "$1" in
  start)
	$DAEMON start
	sleep 5

	tap_dev=`/sbin/ip tuntap | awk -F: '{print $1}'`
	if [ -n "$tap_dev" ]; then
		/sbin/brctl addif br0 $tap_dev
	fi
    ;;
  stop)
	$DAEMON stop
    ;;
  restart)
    $0 stop
    sleep 3
    $0 start
    ;;
  *)
    echo "Usage: /etc/init.d/vpnserver {start|stop|restart}"
    exit 1
    ;;
esac

exit 0

ブリッジインタフェース設定

 SoftEther VPNでIPsec/L2TPによるVPN接続をする場合、ブリッジインタフェースが必要になります。インターネット側からSoftEther VPNサーバーに接続すると仮想インタフェースにIPアドレスを割り当てます。その仮想インタフェースと物理インタフェース(Ethernet)との通信の橋渡しをするのがブリッジインタフェースです。

 設定に必要なパッケージをインストールし、ブリッジインタフェースを作成します。

# sudo apt-get install bridge-utils

 続いてネットワークインタフェースの設定を変更します。下記の例は、LANに接続している物理インタフェースが”eth0”の場合にブリッジインタフェースの”br0”を追加しています。

# sudo vi /etc/network/interfaces

変更前)
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
  address 192.168.0.1
  netmask 255.255.255.0
  network 192.168.0.0
  broadcast 192.168.0.255
  gateway 192.168.0.254
  dns-nameservers 192.168.0.254

変更後)
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
  address 192.168.0.1
  netmask 255.255.255.0
  network 192.168.0.0
  broadcast 192.168.0.255
  gateway 192.168.0.254
  dns-nameservers 192.168.0.254

bridge_ports eth0
bridge_stp off

 上記で行っているのは、”eth0”の設定を”br0”に置き換え、”eth0”は未設定の状態にしています。設定順序は”eth0”、”br0”の順に行う必要があります。最後の2行はブリッジ設定です。上記例は”eth0”に固定IPアドレスを設定している場合ですが、DHCP設定の場合も同様に”eth0”の設定を”br0”に置き換えます。また、通常のインタフェース名は”eth0”ではないと思うので、環境に合わせた名前に全て置き換えて下さい。ブリッジインタフェースを”br0”以外に変更したい場合、先ほど作成した”/etc/init.d/vpnserver”の23行目を変更して下さい。

 設定ファイを保存したらPCを再起動します。再起動後、IPアドレスの設定を確認します。下記のように”br0”にIPアドレスが設定され、”eth0”は未設定のように表示されれば成功です(不要な情報は削っています)。

# ifconfig

br0       Link encap:イーサネット  ハードウェアアドレス 00:11:22:33:44:55
          inetアドレス:192.168.0.1  ブロードキャスト:192.168.0.255  マスク:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  メトリック:1

eth0      Link encap:イーサネット  ハードウェアアドレス 00:11:22:33:44:55  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  メトリック:1
 
lo        Link encap:ローカルループバック
          inetアドレス:127.0.0.1  マスク:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  メトリック:1

 次にブリッジ設定を確認します。”STP enabled”が”no”であること、”interfaces”に物理インタフェースの名前があることを確認して下さい。

# brctl show

bridge name     bridge id               STP enabled     interfaces
br0             8000.001122334455       no              eth0

最終確認

 以上でLinux側の基本的な設定は完了です。今までの説明で下記の確認事項に問題ないことを再度確認して下さい。一つでも駄目だとこれから先の設定は絶対にうまく行きません。

  • pidof vpnserverの実行結果で数字が2つ表示される
  • br0インタフェースが作成できている
  • br0インタフェースにIPアドレスが設定されている
  • ブリッジ設定の”STP enabled”が”no”である
  • ブリッジ設定の”interfaces”に物理インタフェースの名前がある

 次はWindowsにSoftEther VPNサーバー管理マネージャをインストールして最後まで設定を行います。後編の「Linux版SoftEther VPNのIPsec/L2TP設定方法」の記事で説明を続けます。