2019年2月11日月曜日

RaspberryPi に SoftEther をインストールしてローカルな環境から VPN 接続してみた

概要

Azure 経由及び DDNS ではアクセスできませんでした
一応インストール手順や設定手順の備忘録として残しておきます

環境

  • RaspberryPi Model B Rev 2 (512MB)
  • Raspbian 9.4 (4.14.79+)
  • SoftEther vpnserver 4.28 Build 9669
  • macOS 10.14.2

Server インストール

ここから Server をダウンロードします

softether-vpnserver-v4.28-9669-beta-2018.09.11-linux-arm_eabi-32bit.tar.gz というファイルの名前がダウンロードできました
これは RaspberryPi 上に配置しましょう
やっていることは単純で解凍して make でビルドし作成されたバイナリファイルを配置しているだけです
おまけとして systemd 配下で動くように service ファイルを作成しました

  • tar zvxf softether-vpnserver-v4.28-9669-beta-2018.09.11-linux-arm_eabi-32bit.tar.gz
  • cd vpnserver
  • make
    • EULA に同意します
  • cd ..
  • sudo mv vpnserver/ /usr/local/
  • sudo touch /lib/systemd/system/vpnserver.service
  • sudo vim /lib/systemd/system/vpnserver.service
[Unit]
Description=SoftEther VPN Server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/vpnserver/vpnserver start
ExecStop=/usr/local/vpnserver/vpnserver stop

[Install]
WantedBy=multi-user.target
  • sudo systemctl enable vpnserver
  • sudo systemctl start vpnserver

Manager インストール

Mac 上にインストールします
これは RaspberryPi 上にインストールした vpnserver の設定を行うための管理ツールです

先程のダウンロードサイトから Manager をインストールしましょう

softether-vpnserver_manager-v4.21-9613-beta-2016.04.24-macos-x86-32bit.pkg という名前のファイルがダウンロードできました
インストールすると「VPN Server Manager.app」というアプリができます

まずは「New Setting」で vpnserver に接続します
管理用のパスワードが設定されていない場合は最初に設定することになります

作成できたら「Connect」を選択して接続しましょう

VPN のタイプを選択します
今回は「Remote Access VPN Server」を選択します

DDNS の設定を行います
ホスト名部分は自分で決定することができます
グローバルな IP はプロバイダによっては 固定でない場合があります
その場合にはここで払い出されば DNS にアクセスするとインターネットからアクセスすることができます

L2TP/IPsec の設定をします
今回は Mac から接続テストを行うので有効にします
また接続する仮想ハブを選択します
まだ仮想ハブがない場合は作成してください (デフォルトだと「VPN」という名前になります)
また IPSec 接続のために共有鍵も設定しましょう (好きな文字列で OK)

VPN 接続するためのユーザの作成を行います
「Create User」を選択しましょう

ユーザ名とパスワードの部分は必須です
今回は Auth Type に「Password Authentication」を選択しましたがこれ以外でも問題ありません
それ以外でポリシーやグループを指定することもできます

基本的な設定が完了すると一覧画面に戻ります
さらにここから NAT の設定をします

「Manage Virtual Hub」を選択し右下の「Virtual NAT and Virtual DHCP Server (SecureNAT)」を選択します

SecureNAT を有効にします
「Enable SecureNAT」を選択しましょう

おまけ: vpncmd

上記の設定は RaspberryPi (vpnserver) 上でも可能です
vpncmd コマンドを使いましょう

  • /usr/local/vpnserver/vpncmd

Client インストール

今回は Mac から接続テストを行うので Mac 標準の VPN クライアントを使います
Windows や Linux の場合は SoftEther 専用のクライアントがあるのでそれを使うと良いと思います

「ネットワーク 環境設定」から新規でネットワークを追加します
インタフェースは「VPN」、タイプは「L2TP over IPSec」サービス名は「VPN (L2TP)」を選択します

vpnserver をインストールした RaspberryPi の IP アドレスを入力しましょう
(ここに DDNS のドメインを入力すればグローバル経由で VPN が張れます)

あとは「認証設定」から作成した VPN 接続用ユーザのパスワードと IPSec 用の事前共有鍵を入力しましょう

入力できれば「適用」->「接続」で VPN 接続確認してみてください
問題なくつながると思います
つながらない場合は RaspberryPi 側でファイアウォールが有効になっていたりしていないか確認してみてください

断念したグローバルからの接続

実は DDNS での接続を諦めています
また DDNS がダメだった場合のために Azure VPN を使った接続方法もあるのですがそれも断念しています

理由は特定できなかったのですが、おそらく自宅のルータの (601HW) が VPN パススルーに対応していないのが原因かなと思います
ポートマッピングで L2TP に必要なポートを入れてみましたがダメでした

ping も有効にしてそもそも ping が通るかなども試しましたがダメでした
またローカルブリッジを作成して試してもみましたがダメでした

もし解決する方法があれば教えてほしい、、、

最後に

RaspberryPi に SoftEther をインストールして宅内 VPN を試してみました
基本的なインストール方法や設定方法は理解できたと思います

が、肝心の DDNS or Azure VPN を使ったグローバルからのアクセスができませんでした
ちょっと別の環境で試してみて同じ設定でできるようであれば確実にルータのせいかなと思います

参考サイト

0 件のコメント:

コメントを投稿