higuchi.com blog

The means justifies the ends

NanoPi R2SにSoftEtherをインストールしてVPNサーバーにする

[PR] 本ブログの商品紹介リンクには広告が含まれています

AliExpressで売っていたルーター用オープンソース小型PC、NanoPi R2S に SoftEther をインストールしてVPNサーバー専用機にした記録。自分用メモです。

NanoPi R2Sの概要はこちら。ARM (Quad-Core Cortex-A53) に RAM 1GB、ギガビットイーサのポートが2つあるので、SoftEtherのローカルブリッジに専用のイーサネットポートを割り振れます。
メーカーの公式Wikiページを参考に、Debian Bookworm のイメージを Micro SDカードに書き込んで、イーサネットケーブルをLANに繋いで、初期設定スタート。

デフォルトではDHCPでIPアドレスを取得しているはずなので、他のターミナルから
ssh pi@NanoPi-R2s
ログインパスワードは "pi"。

ログイン用のユーザーを作成 (adduser USER_NAME)し、sudo権限を付与 (sudo gpasswd -a USER_NAME sudo)。

ホスト名を変更 (hostnamectl set-hostname HOST_NAME)。/etc/hosts も書き換え。

apt update; apt upgrade してから、avahi-daemon と bash-completion をインストール。

ここまでできたら、2つあるイーサネットポートのうち、片方を固定IPアドレスにしてWAN側への入り口に、もう片方はTCP/IPスタックを止めてローカルブリッジ専用にします。

まず、nmcli con show で、固定にしたい方のイーサネットポートのUUIDを確認。この例では 192.168.1.2 に固定。

# nmcli con mod UUID1 ipv4.addresses "192.168.1.2/24"
# nmcli con mod UUID1 ipv4.gateway "192.168.1.254"
# nmcli con mod UUID1 ipv4.method manual
# nmcli con mod UUID1 ipv6.method "auto"
# nmcli con down UUID1 ; nmcli con up UUID1

UUID の部分は最初の1文字をタイプすれば、あとはTABを押してBash Completionが自動で補完してくれる。

ここで一旦exitして、固定にしたIPアドレスからsshでログインし直す。

ログインし直したら、今度はもう一つの方のイーサネットポートのTCP/IPスタックを止めます。

# nmcli con mod UUID2 ipv4.method "disabled"
# nmcli con mod UUID2 ipv6.method "disabled"
# nmcli con up UUID2

あとは SoftEther Server をインストール。
/etc/systemd/system/vpnserver.service というファイルを作って……

[Unit]
Description=Softether VPN Server Service
After=network.target

[Service]
Type=forking
User=root
ExecStart=/usr/local/vpnserver/vpnserver start
ExecStop=/usr/local/vpnserver/vpnserver stop
Restart=on-abort
WorkingDirectory=/usr/local/vpnserver/
ExecStartPre=/sbin/ip link set dev eth0 promisc on

[Install]
WantedBy=multi-user.target

systemctl daemon-reload してデーモンにし、systemctl enable vpnserver.service で自動起動設定。

SoftEtherのサーバ管理ツールから固定IPの方から接続してVPNサーバーの各種設定。仮想ハブからTCP/IPスタックを止めた方のLANポートにローカルブリッジ接続するように設定。

家のルーターのポートフォワーディングで、SoftEtherが使うTCPとUDPのポートをサーバーの固定IPアドレスに振り向け、Wi-Fiを切ったiPhoneのモバイル回線からVPN接続できることを確認して、設定完了。

コメント

まだコメントはありません

コメントを書く

関連するかもしれない記事