LoginSignup
2
2

More than 1 year has passed since last update.

Raspberry PiにSoftEther VPNをインストールしてVPNクライアントからVPNサーバー自身にアクセスする

Posted at

Raspberry Pi(その他のLinuxサーバー)にSoftEther VPN Serverをインストールしても、「VPNクライアント側からVPNサーバーとして稼働しているRaspberry Pi自身のIPアドレスにアクセスできない」という公式HP記載の既知の問題(3.6.11項)を解決するための方法をSoftEther VPN Serverのインストール方法から書きました。

インストールをスキップする場合はブリッジの作成から

この「VPNクライアント側からVPNサーバーとして稼働しているRaspberry Pi自身のIPアドレスにアクセスできない」という問題は、VPNサーバーとファイルサーバーなどを共存させた場合に、「VPNクライアントがファイルサーバーなどにアクセスできない」という問題の原因になります。

環境

ハード: Raspberry Pi 4B
OS: Raspberry Pi OS Lite (64-bit), debian_version11.3, リリース日時2022-04-04
Softether VPN Server: Ver 4.38, Build 9760, rtm
ネットワーク: Raspberry PiにはDHCPでIPアドレスを割り当てる
ユーザー名: pi

SoftEther VPNのインストール

公式ダウンロードページにアクセスして以下を選択

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

ダウンロードリンクを右クリックしてコピー
softether_dlpage.png

以下、Raspberry Piのターミナル

ホームディレクトリにファイルをダウンロードする

wget -P /home/pi [先ほどコピーしたダウンロードリンクのURL]

ダウンロードしたファイルを解凍

tar xzvf /home/pi/softether-vpnserver-[バージョンによって異なる]-linux-arm64-64bit.tar.gz -C /home/pi

解凍したディレクトリ内に移動

cd /home/pi/vpnserver

実行可能ファイルの生成

make

ホームディレクトリに戻る

cd /home/pi

配置

sudo mv vpnserver /usr/local

配置先に移動

cd /usr/local/vpnserver

パーミッション変更

sudo chmod 600 *
sudo chmod 700 vpncmd
sudo chmod 700 vpnserver

動作チェック(The command completed successfully.と出ればOK)

./vpncmd
3
check
exit

自動起動の設定

スクリプト作成

sudo vi /etc/systemd/system/vpnserver.service

以下を貼り付け

/etc/systemd/system/vpnserver.service
[Unit]
Description=SoftEther VPN Server
After=network.target network-online.target

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

[Install]
WantedBy=multi-user.target

サービスの自動起動を有効化

sudo systemctl enable vpnserver.service

再起動

sudo reboot

起動しているか確認

systemctl status vpnserver

正常に起動している場合の実行結果

● vpnserver.service - SoftEther VPN Server
    Loaded: loaded <省略>
    Active: active (running)<省略>
    <省略>

サーバーの設定

サーバー管理マネージャー(Softether VPN Server Manager for Windows OR Mac OS X)でサーバー管理画面に入る

新しいパスワードを聞かれるので設定

リモートアクセスVPNサーバーにチェックして次へ
softether_setting1.png

仮想HUB名は適当に入力してOK
softether_setting2.png

色々聞かれるので必要なものは設定(VPN Azure 設定, IPsec / L2TP 設定など)

この画面になったらユーザーを作成してください
しかし、ローカルブリッジの設定はまだしないでください
softether_setting3.png

ブリッジの作成

ブリッジインターフェースを作成するためのツールをインストール

sudo apt install bridge-utils

ブリッジインターフェースを作成

sudo brctl addbr br0

以下、サーバー管理マネージャー

新しいtapデバイス(softether)の作成
LANカードはbr0
softether_setting4.png
softether_setting5.png

ネットワークインターフェースの設定

ネットワークインターフェースの設定ファイルを開く

sudo vi /etc/network/interfaces

以下を追記

auto eth0
iface eth0 inet static
address 0.0.0.0

auto br0
iface br0 inet dhcp
bridge_ports eth0

起動時に自動的にブリッジ接続する

vpnserverの起動後、tapデバイスをbr0に接続するサービスを作成していきます。

ファイルを作成

sudo vi /etc/systemd/system/bridge-softether.service

以下を貼り付け

[Unit]
Description=Bridge tap_softether to br0
After=vpnserver.service

[Service]
User=root
Restart=on-failure
RestartSec=3s
ExecStart=/usr/sbin/brctl addif br0 tap_softether

[Install]
WantedBy=multi-user.target

サービスを有効化

sudo systemctl enable bridge-softether

再起動

sudo reboot

動作確認

Q, br0とtap_softetherはありますか?

ifconfig

A, 正常な実行結果

br0:<省略>
<省略>
eth0:<省略>
<省略>
lo:<省略>
<省略>
tap_softether:<省略>
<省略>

Q, br0にeth0とtap_softetherがブリッジされていますか?

brctl show br0

A, 正常な実行結果

bridge name     bridge id               STP enabled     interfaces
br0             <省略>                  no              eth0
                                                        tap_softether

Q, 起動時に自動的にブリッジ接続できていますか?

systemctl status bridge-softether

A, 正常な実行結果

● bridge-softether.service - Bridge tap_softether to br0
    Loaded: loaded <省略>
    Active: inactive (dead) <省略>
    <省略>

これで、VPNクライアント側からVPNサーバーとして稼働しているRaspberry Pi自身のIPアドレスにアクセスできるようになります。

参考資料

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2