【VPN1/2】SoftEtherVPNで外出先から自宅のラズパイ(Raspberry Pi OS)に接続する

外出先から自宅のサーバーへ接続する方法は、利用する環境によって異なります。今回はセキュリティも考慮して、SoftEther VPNサーバーをRaspberry Pi 4(Raspberry Pi OSデスクトップ)に仕込み、PCならSoftEther VPNクライアントソフト、iPhone、iPadなどから接続させます。

このRaspberry Pi 4に繋げられれば、既にローカルLAN内にあるOMVやNextCloudPiなどにも、同一LAN内としてアクセスできるような運用です。

これなら、外部から接続する際の固定グローバルIPの購入や、無料DDNSなども使わないでアクセスできます。

外部から自宅へアクセスするには、ルーターのポート開放と呼ばれる設定が必要です。このルーターの設定は、メーカーによって設定メニューが異なります。用語もたくさんあって迷います。あくまでも一例としてご紹介しておきます。

Rグリーン

ルーターの説明は用語がたくさんあってホントに困る

【免責事項】
外部から接続するやり方は、セキュリティとして安易におすすめできません。見よう見まねでも出来ますが、トラブルになった時に対処できないと困るからです。ネットワークの知識は必要になります。予めご了承くださいね。

  • この記事は2記事構成です。
この記事の主な流れ

構築と運用のイメージ

SoftEther VPN をRaspberry Piに導入するのは、次のようなイメージです。

自宅のLAN内に新たにRaspberry Pi 4で構築したVPNサーバーを設置します。

SoftEther VPNの略図

仮想HUBと仮想LANカードをSoftEther VPN ManagerとRaspberry Pi側で設定します。これで同一のローカルLANに接続でき、VPNサーバーにもSSHなどでアクセスすることもできます。同一のLAN内ということは、今使っているファイルサーバーにもアクセスできるというわけです。

Rブラック

説明が難しい

Raspberry Pi 4にRaspberry Pi OS デスクトップ版を入れ、そこにサーバーを構築するので、スマホや外出先のPC端末から、Raspberry Pi OSのデスクトップもVNC経由で操作することも可能です。

色々と細かい話はありますが、仮想HUB、仮想LANカードでVPN接続をします。

イメージ図です

コレとは違い、仮想DHCPサーバーの設定が必要になるSecureNATを使うケースもあります。今回はブリッジ接続するケースです。ネットワークグループが複数ではないので、これでヨシとします。

過去の記事

これまでラズパイダでは「Raspberry Pi 3A+の利用アイディアとしてVPNサーバー」という記事でSoftEther VPNについて触れています。当時のSoftEther VPNのバージョンはv4.32、今回はv4.39です。少し記事内の情報が足りませんでしたね。

また、「ラズパイとPiVPNで、手軽にVPNサーバーを手に入れる」でPiVPNもVPNサーバーでした。

必要な設定

今回の例だと、大まかに4つを設定する必要があります。

  1. SoftEther VPN ServerをRaspberry Pi 4にインストール
  2. 別WindowsでSoftEther VPN の管理ソフトをインストール(Manager) or vpncmd
  3. 仮想LANカード(TAP)とローカルブリッジの設定
  4. ルーターのポート開放

SoftEther VPNには、DDNSの機能が付いているので、固定グローバルIPや他のDDNSサービスがなくても使えます。DDNSは、「myhome.softether.net」のようなドメインでアクセスできるので、各ソフトの設定など分かりやすいと思います。

使用したOSと環境

テスト環境がRaspberry Pi OS 32bitでした。できれば最新の64bit版にしてください。

  • Raspberry Pi 4 メモリー8GBモデル + SSDドライブ起動
  • Raspberry Pi OS bullseye デスクトップ 32bit
  • SoftEther VPN Server 32bit (softether-vpnserver_manager-v4.21-9613-beta-2016.04.24-macos-x86-32bit.pkg)
  • SoftEther VPN Manager (他のWindowsPC)
  • ルーターNEC製Aterm

今回は、Raspberry Pi 4にRaspberry Pi OS 通常バージョンをインストールしました。SSDドライブ起動にしてあります。もちろんSDカード起動でも構いません。

メモリーは8GBも要りません。4GBモデルで十分です。今回はデスクトップ利用のラズパイだったので8GBモデルにしていただけです。

主にRaspberry Pi OSのデスクトップ画面に外部からアクセスするのが第一の目的です。

同一LAN内には、ファイルサーバーとしてOpenmediavaultが入ったRaspberry Pi 4や、ミュージックサーバーであるmoode audioが入ったRaspberry Pi 3B、Webカメラモジュールを繋いであるRaspberry Pi Zero 1WHなどがあります。これらも外部から使えるようにしたいですね。

VPN接続で外部から自宅に繋げれば、Raspberry Pi OS のデスクトップもVNCビューワで覗けます。同一LAN内の各サーバーも、自宅内に居るのと同じようにIPアドレスなどを指定できます。

外部からファイルサーバーだけを利用したいなら、別の方法もあります。今回はVPN接続したかったのと、DDNSサービスなどを別に用意したくなかったので、SoftEther VPNサーバーをインストールしました。

ファイルサーバーのOMVなら、Raspberry Pi OS liteにインストールする関係で、設定は今回と別になりますが共存は可能です。ローカルブリッジするのも変わりません。もっとややこしいかな。

NextCloudPiやLibreELECなどのカスタムOSだと、管理者権限でVPNサーバーがインストールできないこともあり、同居は難しいと思います。

インストールと設定

Raspberry Pi OSが起動している前提で進めます。まだの人は先にRaspberry Pi OSが起動している状態まで設定してください。

先にVPNサーバーソフトであるSoftether VPNをRaspberry Piにインストールと設定をします。

https://www.softether-download.com/

基本はSoftetherVPNのマニュアルに従っています。
https://ja.softether.org/4-docs/1-manual/7/7.3

解凍してできたvpnserverフォルダに移動して、makeコマンドします。

注意:今回は32bit版。できれば64bitOSと64bitのSoftetherを使いましょう。

tar xzvf softether-vpnserver-v4.39-9772-beta-2022.04.26-linux-arm_eabi-32bit.tar.gz
cd vpnserver
make

移動させて権限変更

解凍してmakeして作成されたvpnserverフォルダを、実行させる適切な場所に移動します。/usr/local

cd ../
sudo mv vpnserver /usr/local

chmodコマンドで権限を変更します。

cd /usr/local/vpnserver
sudo chmod 600 *
sudo chmod 700 vpncmd vpnserver

lsコマンドで確認します。

ls -l
ls -lコマンドで確認

オーナー権限はユーザーのままでも動作します。セキュリティ的にはrootの方がいいでしょう。

もしもオーナー権限を変更するなら、chownコマンドです。今回はこのまま進めます。

チェックする

vpncmdコマンドで動作チェックをします。コマンドツールなのでターミナル内で操作します。

sudo /usr/local/vpnserver/vpncmd
VPN Toolsを選択

メニューの1〜3から3のVPN Toolsを選択し、次にcheckと入力して動作チェックします。

checkと入力してexit

VPN Toolsから抜けるにはexitと入力します。

OKみたいですね。

vpnserver.serviceのユニットファイルを作成

/etc/systemd/system/にユニットファイルを作成します。(/usr/lib/systemd/system/でも良いみたい)

sudo nano /etc/systemd/system/vpnserver.service
Unit 定義ファイルの場所

どうやらUnitファイルの置き場は二箇所あるようです。
/usr/lib/systemd/system/ : システムデフォルト
/etc/systemd/system/ : 管理者がカスタマイズする場所

同じ名前の設定ファイルがある場合、 /etc/systemd/system/ が優先。
システムデフォルトの設定を変更する場合、 /usr/lib/systemd/system/ から /etc/systemd/system に設定ファイルをコピーして編集する。

Unit名がそのまま設定ファイル名になる。
シンボリックリンクでUnitの別名を設定することができる。
ディレクトリ「(Unit名).wants」は依存関係の定義に使用する。

勉強になります。
https://qiita.com/a_yasui/items/f2d8b57aa616e523ede4

Raspberry Pi OSでも/etc/systemd/system/が優先されると思われるので、そちらに配置しました。

記述する内容

記述する内容は次の通りですが、後で仮想Hubと仮想TAPを設定した後に、コメントアウトしている行の#を外す予定です。

今はこのままで進めないとエラーでサーバーが起動しません。

[Unit]
Description=SoftEther VPN Server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/vpnserver/vpnserver start
ExecStop=/usr/local/vpnserver/vpnserver stop
#ExecStartPost=/bin/sleep 10 ; brctl addif br0 tap_vlan
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target

以前に3A+でVPNサーバーを構築した時、vpnserver.shなどの名前でスクリプトファイルを作成し、それをUnit内で指定するやり方をしました。
恐らく、その方がtap_名を変更してもそのまま使用できるようにするためですね。
今回の方法だと変更の度にUnit内を編集しないとなりません。

Raspberry Pi 3A+の利用アイディアとしてVPNサーバー

systemctlコマンドで登録

作成したサービスファイルを自動実行するように登録します。

sudo systemctl enable vpnserver.service

再起動後にコマンドで確認

再起動してサービスが自動実行されているか確認しましょう。

sudo reboot

同じくsystemctlコマンドで確認して、active(running)になっていればOKです。

sudo systemctl status vpnserver.service
systemctl statusコマンド

終了させるのはQ

変更後の更新

この後、設定をイジってから再度vpnserverをリスタートする時は次のコマンドでおこないます。

間違えてやり直す時などで使いましょう。

sudo systemctl daemon-reload
sudo systemctl restart vpnserver

bridge-utilesのインストール

ブリッジ用のパッケージ(bridge-utiles)を忘れないうちにインストールしておきます。

sudo apt install bridge-utils

設定は後ほどおこないます。とりえずこのままでOKです。

次の記事へ

とても長くなってしまうので、次の記事でVPNで繋がるまでご紹介します。

ここまででSoftether VPNのインストールとサービスとして自動実行まで完了しました。再起動してもSoftEther VPN Serverが起動していれば問題ありません。

このままでは動いているだけで何もできません。VPNサーバーの主な設定は、Windows版「Softether VPN Server Manager」でおこないます。

以前はmacOS版も動作したのですが、2016年から更新されていないので現行のmacOSでは動きません。Linux版も無いのでWindows環境が必要です。

この後、Softether VPN Server Managerでの設定と、ローカルブリッジのためにRaspberry Pi側のネットワーク設定を施します。最後にルーターのポート開放をすれば完了です。

Softether VPN Server Manager

  • 仮想HUB(仮想HUB名は任意のもの)
  • DDNS 名(重複しない任意のもの)
  • L2TP サーバ機能を有効にする(IPsec 事前共有鍵も設定)
  • 新しい tap デバイス名(ブリッジでtapデバイスを使う)(こちらも任意で設定)

Raspberry Pi側の設定

  • ローカルブリッジ接続の導入
  • ブリッジに合わせたネットワークの設定

ルーターの設定

  • ポート開放(ポートフォワーディング)

次の記事もどうぞ。

Free Wi-Fiに繋ぐとき便利なVPNソフト

シェアする
  • URLをコピーしました!

この記事のコメント(承認後に公開)

コメントする

コメントは日本語で入力してください。名前は表示されます。メールアドレスは表示されません。

CAPTCHA

この記事の主な流れ