Amazonのアソシエイトとして、ラズパイダ(raspida.com)は適格販売により収入を得ています。詳しくは当サイトの プライバシーポリシーをご覧ください。
2019年末、やっと国内向けのRaspberry Pi 4Bが発売になりました。合わせて、それより1年前の2018年にワールドワイド版は発売されていたRaspberry Pi 3A+も国内版がリリースされています。
Raspberry Pi Zero Wの置き換えではないか、と邪推されるほどRaspberry Pi Zero W系は品薄です。(※需要が少ないのか受注生産方式の時期らしい)
Raspberry Pi Zero Wの代わりにしては少しサイズは大きくなるRaspberry Pi 3A+ですが、性能はRaspberry Pi 3B+をほぼ踏襲しているため、Zero系とは比較になりません。
それにWi-Fiの速度が2.4GHzと高速な5GHzに対応している分は使い勝手が良さそうです。
・・・但し、搭載メモリーはZeroWと同じ512MBしかありませんが。
- デスクトップ環境としてはメモリーが心許ない。
- サイズとしては組み込むにはZeroWの約倍でデカい。
そんなRaspberry Pi 3A+でも用途を絞ればいくつか考えられます。
通信機能を活かす
メモリーが心許ない3A+の利点として3B+より小さいサイズの他に通信機能は3B+と同等ということが挙げられます。
古い世代として容易に思い浮かぶのが、よくあるプリントサーバー。しかし、現在では旨みはあまりありませんね。既製品でも3,000円〜で購入できる時代です。Raspberry Pi 3A+の基板が3,300円〜と考えると、ケースや手間を思うと高く思えます。 それにそんなにプリントすることも最早ありませんし・・・。
現在だと3Dプリンターに絡めるのでしょうか。海外では、レーザースキャナーを自作した人が居ますね。これはノーマル3Bで構築しています。3A+だとメモリーが足りないかな??
そこで、せっかく3B+と同じ通信機能を有しているのだから、VPNサーバーとしての活用はどうだろうと思います。
ネットで検索すれば構築方法はたくさん出てきました。 これなら3B+よりも省電力な3A+を常時家庭内にぶら下げておくことも気になりません。
SoftEther VPNという無償で利用できるソフトウェアで構築するのが簡単ですが、残念ながら当方の環境であるmacOS CatalinaはSoftEther VPN管理ツールが動きませんでした。 これはmacOS Catalinaから32bitのプログラムをサポートしていないからです。
SoftEther VPNの管理ツールが動かないとSoftEther VPN側のコマンドツールしかなく、難解なので実際には3A+で構築していません。Windowsの方は可能ですので試してみてください。
VPNサーバーとは?
先ず以て、そもそもVPNサーバーは一般的ではありませんから、簡単にご紹介します。
VPN = Virtual Private Network(仮想の専用線とも言えます)
非常に簡単にいうと、「ある接続方式を使用して家庭内のルーターから中に入りファイルなどを利用できるようにする」サーバー機能です。
もっと乱暴に言うと「設定したユーザーと接続方式しか中に入れない」
VPNというとどうしてもセキュリティ上で安心だとか、完璧チックに聞こえると思います。だって、専用線という英語ですからね! そうは言っても公というか広義のインターネット網を通ったり、VPNサーバーを経由するわけで、リアルに2拠点だけの通信というわけではありません。
※糸電話のイメージで概ねOKです。しかし、糸電話みたいに1本で繋がるわけではなく、公衆回線を通ることは変わりません。
かといって、セキュリティ的に弱いわけではありません。但し、きちんと理解して設定していないと意味ないよ、ということもあり過信は禁物です。
SoftEther VPN
SoftEther VPN はオープンソースの、無償で、複数プラットフォームおよび複数 VPN プロトコル対応の VPN ソフトウェアであり、Apache License 2.0 で提供され、筑波大学における研究プロジェクトとして運営されています。独立行政法人 情報処理推進機構 (IPA) の未踏ソフトウェア創造事業 未踏ユース部門 (平成 15 年度) の支援によって開発されました。SoftEther VPN はソフトイーサ株式会社の PacketiX VPN 4.0 に相当するフリーバージョンです。
構築の流れ
ここではRaspberry Pi 3A+を活用するアイディアとしてご紹介します。ザックリと大まかな流れと要点を載せておきます。
- Raspberry Pi 3A+(今回は3A+。3B+でも同じですね)
- raspbian-buster-lite.zip
- microSDカード
- SoftEther VPN Server
- macOS:SoftEther VPN Server Manager for Mac OS X (動かず・・・)
- Windows:ZIP Package of vpnsmgr.exe and vpncmd.exe (without installers)
- ダウンロード先:https://ja.softether.org/5-download
SoftEther VPN ServerはOSなどを選べば最新版が最上位にきます。それを使用してください。
SoftEther VPN Server ManagerはWindows版またはMac版です。
※現在macOS CatalinaはSoftEther VPN Server Managerが動作しません。設定するにはSoftEther VPNに用意されているコマンドで行うしかありません。GUIがないために使用するのは非常に難しい・・・。
大まかな流れとして、
- Raspbianの準備とセットアップ
- SoftEther VPNアプリケーションをダウンロード&インストール
- vpnserverの自動起動を設定
- VPN Server Managerから設定(macOSまたはwindowsから)
- bridge-utilsのインストール&設定
- ルーターの設定
順番にみていきましょう。
■Pi 5は8GBモデルがオススメ
構築のポイント
ハマりそうな要点をまとめておきます。
Raspbianの準備は最低限でOK
Raspbianをセットアップしておきます。microSDカードに書き込んで起動し、デスクトップ環境は使いませんので最低限だけ設定しておきます。
これはタイムゾーンとWi-Fiの国設定、デフォルトユーザーpiのパスワード変更はしておきましょう。他はホスト名くらいでしょうか。
sudo raspi-config
SoftEther VPNアプリケーションはコンパイルが必要
(クリックで拡大)
ダウンロードは当然ながらRaspbian側から行います。 wgetコマンドでURLを右クリックしてURLをコピーし、SSHのターミナル上でペーストして実現しました。(WindowsならTeraTermでドラッグアンドドロップでSCPコピーでもOK)
wget https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v4.32-9731-beta/softether-vpnserver-v4.32-9731-beta-2020.01.01-linux-arm_eabi-32bit.tar.gz
解凍し
tar zxvf tar zxvf softether-vpnserver-v4.32-9731-beta-2020.01.01-linux-arm_eabi-32bit.tar.gz
cd vpnserver
make
コンパイル(make)します。確認が3回出ますので全部1番でOK。 完了すると少し画面を戻すとCheck Toolの結果出ています。これがpassされていればOKです。
---------------------------------------------------
SoftEther VPN Operation Environment Check Tool
Copyright (c) SoftEther VPN Project.
All Rights Reserved.
If this operation environment check tool is run on a system and that system passes, it is most likely that SoftEther VPN software can operate on that system. This check may take a while. Please wait...
Checking 'Kernel System'...
Pass
Checking 'Memory Operation System'...
Pass
Checking 'ANSI / Unicode string processing system'...
Pass
Checking 'File system'...
Pass
Checking 'Thread processing system'...
Pass
Checking 'Network system'...
Pass
All checks passed. It is most likely that SoftEther VPN Server / Bridge can operate normally on this system.
The command completed successfully.
--------------------------------------------------------------------
アプリケーションの置き場所
この辺りは私もよく理解していません。ダウンロードした場所とは異なり、/usr/localへ配置して設定するような形がセオリーです。Windowsで言えばプログラムフォルダみたいな感じです。
vpnserverのフォルダ毎を/usr/localへコピーします。更にファイルのパーミションを書き込みや実行ができるようにしておきましょう。
sudo mv vpnserver /usr/local
取りあえずvpnserverフォルダ以下を全て700で設定しておいて、実行ファイルのあるフォルダは755にしました。
正確には644にすべきこともあると思います。分からない場合はエラーが出てから権限を与える形でも良いでしょう。
vpnserverは自動起動にする
移動させたvpnserverを毎回起動しないとなりませんから、起動時に自動起動するための設定としてサービスファイルを作成します。/usr/etc/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
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
ここが厄介でした。この後のブリッジ接続をするとサービス開始のvpnserver startだと上手く行かない。
こちらが一番詳しかった。基本はこちらの記事が参考になりました。
Qiita

Raspberry PiでのVPNサーバ構築 - Qiita 個人用のホームページを作成しました。今後は、そちらの方に整理していきたいと思いますので、よろしくお願いします。 VPNサーバ構築 ラズパイにSoftEtherを利用してVPNサ…
vpnserver.shなどの名前で以下のファイルを作成し、それを自動起動のサービス設定ファイルで実行させるように変更します。
#!/bin/bash
/usr/local/vpnserver/vpnserver start
tap=$(/sbin/ifconfig -a| awk '$1 ~ /^tap/ {print $1}')
/sbin/brctl addif br0 $tap
先程のサービス設定ファイルの一部変更は以下となります。 vpnserverの動作確認してから、ローカルブリッジの設定が終わった後に書き換えてください。
ExecStart=/usr/local/vpnserver/vpnserver.sh
sysytemフォルダがない!
システムデフォルトである/usr/lib/systemd/system/にsysytemフォルダがない?という状態だったので、/etc/systemd/systemに保存したけど、良かったみたい。
Unit 定義ファイルの場所 二箇所ある。 /usr/lib/systemd/system/ : システムデフォルト /etc/systemd/system/ : 管理者がカスタマイズする場所 同じ名前の設定ファイルがある場合、 /etc/systemd/system/ が優先 システムデフォルトの設定を変更する場合、 /usr/lib/systemd/system/ から /etc/systemd/system に設定ファイルをコピーして編集 Unit名がそのまま設定ファイル名になる シンボリックリンクでUnitの別名を設定することができる ディレクトリ「(Unit名).wants」は依存関係の定義に使用
確認
systemctl start vpnserver.service
systemctl enable vpnserver.service
systemctl status vpnserver.service
これでアクティブになっていればOKですね。(Active: active (running))
VPN Server Managerの設定
macOS Catalinaでは無理でしたが、Windowsならインストールして使えます。
ここで設定するのは、
- 仮想HUB(仮想HUB名は任意のもの)
- DDNS 名(重複しない任意のもの)
- L2TP サーバ機能を有効にする(IPsec 事前共有鍵も設定)
- 新しい tap デバイス名(ブリッジでtapデバイスを使う)(こちらも任意で設定)
Windowsマシンが無い人は、vpncmdでも設定できます。
ローカルブリッジ接続の導入
3A+にsshで繋いで管理しますので、そのままだとVPNサーバーとして機能させると困ります。ブリッジの名のように仮想でもう一つの接続場所を確保しておきます。
VPN Server Managerの設定で仮想HUBを作成した後、ブリッジを使用するためにツールソフトをインストールします。
sudo apt install bridge-utils
/etc/network/interfacesに追記します。
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
auto wlan0
iface wlan0 inet manual
# SoftEther VPN
auto br0
iface br0 inet static
address 192.168.0.99
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.255.255
gateway 192.168.0.1
bridge_ports wlan0
bridge_maxwait 10
ipアドレス部分は自分の環境に合わせてください。
色々と調べてみるとブリッジのインターフェイスを固定IP化して、eth0やwlan0では固定IPにしない。ブリッジ(br0)のIPアドレスをルータでポートフォワード(ポート変換)します。
ネットワークの状態を表示するにはifconfig
ifconfig
ルーターの設定
SoftEther VPNの公式ページではポート 500、4500とあります。
L2TP over IPsec、EtherIP over IPsec を使用する場合 UDP ポート 500、4500
ルーターの機種やネットワークの環境、OSによっても異なります。 基本は「ポート変換」を新規作成し、今回のbr0で設定した固定IPへ転送させます。
プロコルはTCP/UDP TCP/UDPポートのタイプはUDPでポート500、タイプUDPでポート4500 LAN側IPアドレスはbr0で設定した固定IPアドレス LAN側のポートも作成が必要(500と4500)
こっちのポート番号とあっちのポート番号を繋ぐイメージです。

ルーターのポート開放
外部から指定したポートに流れてきたパケットを、指定した3A+のポートへ流すということです。
参考:
3A+でも
Raspberry Pi Zero Wでは性能が足りないが、Raspberry Pi 4Bを使う程でもなく、本体サイズを小さくしたいなら、Raspberry Pi 3B+よりも3A+でも良いんじゃないか、というご提案でした。
Raspberry Pi 3B+でいいといえばその通り。上手く利用できる形を考えてみてください。
VPNサーバーは、自宅外からセキュアな状態で家庭内のデータにアクセスできます。
しかし、VPNに価値を見出す方はマニアな人かも知れませんね。あまり一般的ではなく、構築も面倒なので既存のクラウドを使った方が超絶に便利です!
それに家庭の光回線はアップロード速度が遅いんですよ。自宅内に入ってファイルを取り出すには、家庭内から見ればアップロードです。ファイルサイズによりますが大きな期待は抱かない方がイイです。
想い出話
まだ今のようにクラウドが無かった時代によくあったVPNのお話。
拠点間をVPNで繋ぎ、システム監視する必要があるのでWindowsサーバーを新規で設置していました。ライセンス料もそれなりにかかり、当時はまだ高価だった光接続の電話線を専用で1本追加したうえ、リモートアクセスVPNのルーター(YAMAHA)も買ってもらう時代がありました。
遠隔するのに、クラサバの時代はお金はかかりましたね。
現在ではアプリケーションサーバーなど、本社のアプリを支店で使うことは当たり前になっています。 これらもVPNを張っていると思います。社内に居る時と同じように使えるのは便利ですよね。
Rレッドクラウドという言葉が出始めの頃、クラウドのバーチャルマシンの中にバーチャルマシンがあって、そこからVPNで繋いで見たものの、更にそのバーチャルのマシンが並列でまだあって・・・、といった構築なんかは、文系出身の私にはちんぷんかんぷんで、一生懸命にファイルを探していたら明後日のマシンの中だったとか。 それで、そもそもフィルが生成できていなかったから、いくら探しても有るわけ無いというオチ。 更に追い打ちを掛けるようにVPNで設定したサーバーを間違えていてやり直し。 タブン、頭から煙が出ていたと思う。人間がStack-overflow状態だった。
買って良かったルーターの1つ。設定はやりやすかった。










