-
背景
- Raspbian StreatchにSoftether VPN Serverをインストールして他国で運用していた。Busterにアップデートして再起動したら、アクセスできなくなった。現地の方の協力を得てStreatchで復旧したが、将来的にいつかはBusterへのアップデートが必要になる時がある可能性があるため、Busterでのセットアップを試してみた。
-
主なポイント
- 「Linux オペレーティングシステム内部での制限事項により、VPN 側 (仮想 HUB 側) からローカルブリッジしている LAN カードに割り当てられる IP アドレスに対して通信を行うことはできません。」https://www2.softether.jp/jp/vpn3/manual/web/3-6.aspx#vpn_3_6_11 そのため、VPNクライアントとSoftether VPN Serverをインストールした機器の通信のためには、Stretchの時代からブリッジが必要。
- eth0とブリッジの両インターフェースをDHCPに設定した場合、同じIPアドレスが振られることがある。https://yuutosi.net/post-912/ 私の環境では、Busterから発生しました。この問題を解決するため、/etc/dhcpcd.conf に、denyinterfaces eth0 という行が必要になった。
- /etc/init.d を使う事例が多いが、2010年以降に採用されたsystemdを使う方がいいらしい?
- https://cgbeginner.net/raspi-vpn/
- 2019-9-26版Raspbian Buster with desktopでは、dhclientコマンドが不要であったが、2019/12/22時点でsudo apt-get dist-upgradeを実行すると、dhclientコマンドが必要。
-
Raspbian Busterの新規インストール
- 「Raspbian Buster with desktop」をダウンロード。2019年9月26日版を使用
- 「Windows 10」と「BalenaEtcher」https://www.balena.io/etcher/ を使用して、Micro SDに書き込み
- sshでアクセスするため、起動ボリュームに、sshというファイル(中身無しの0バイト)を作成
- 「Raspberry」に、Micro SDを挿入
- LANケーブルを挿入し、電源ON
-
Raspbianの初期設定
- sudo raspi-configコマンドにて、以下を設定。
- Change User Password
- Network Options
- Hostname
- Boot Options
- Desktop / CLI
- Splash Screen >> No
- Localisation Options
- Change Timezone
- Change Wi-fi Country
- Interfacing Options
- SSH >> enabled
- VNC >> enabled
- Advanced Options
- Resolution
- sudo raspi-configコマンドにて、以下を設定。
-
Softether VPN Clientのインストール
- wget https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v4.31-9727-beta/softether-vpnclient-v4.31-9727-beta-2019.11.18-linux-arm_eabi-32bit.tar.gz
- tar xzvf softether-vpnclient-v4.31-9727-beta-2019.11.18-linux-arm_eabi-32bit.tar.gz
- sudo mv vpnclient /usr/local/
- cd /usr/local/vpnclient/
- sudo make
- 1
- 1
- 1
-
sudo chmod 0600 *
- sudo chmod 0700 vpncmd
- sudo chmod 0700 vpnclient
- sudo ./vpnclient start
- sudo ./vpncmd
- 2
- NicCreate tun0
- NicEnable tun0
- AccountCreate **** /SERVER:***.***.***.***:*** /HUB:*** /USERNAME:*** /NICNAME:tun0
- AccountPasswordSet **** /PASSWORD:*********** /TYPE:standard
- AccountConnect ****
- AccountStartupSet ****
- AccountList
- exit
- (sudo dhclient vpn_tun0)
- sudo nano /etc/dhcpcd.conf
interface vpn_tun0
static ip_address=192.168.***.***/24 - sudo nano /etc/systemd/system/vpnclient.service
[Unit]
Description=Softether VPN Client Service
After=network.target
[Service]
Type=forking
User=root
ExecStart=/usr/local/vpnclient/vpnclient start
ExecStop=/usr/local/vpnclient/vpnclient stop
Restart=on-failure
[Install]
WantedBy=multi-user.target - sudo systemctl enable vpnclient
- sudo systemctl start vpnclient
- sudo reboot
-
ブリッジの設定(VPN Server用を使用する場合)
- sudo apt-get install bridge-utils -y
- sudo nano /etc/network/interfaces
- 以下の行を追加
auto br0
iface br0 inet manual
bridge_ports eth0
bridge_maxwait 10 - sudo nano /etc/dhcpcd.conf
- 以下の行を追加
denyinterfaces eth0 - sudo reboot
-
Softether VPN Serverのインストール(VPN Server用を使用する場合)
- wget https://github.com/SoftEtherVPN/SoftEtherV(VPN Server用を使用する場合)PN_Stable/releases/download/v4.31-9727-beta/softether-vpnserver-v4.31-9727-beta-2019.11.18-linux-arm_eabi-32bit.tar.gz
- tar xzvf softether-vpnserver-v4.31-9727-beta-2019.11.18-linux-arm_eabi-32bit.tar.gz
- sudo mv vpnserver/ /usr/local/
- cd /usr/local/vpnserver/
- sudo make
- 1
- 1
- 1
- sudo chmod 0600 *
- sudo chmod 0700 vpncmd
- sudo chmod 0700 vpnserver
-
tapの作成(VPN Server用を使用する場合)
- vpnserverを仮起動
sudo ./vpnserver start - SoftEther VPN Server and VPN Bridgeにて、vpnserverを設定
- vlanタップを作成し、ブリッジ作成
- vpnserverを仮起動
-
Systemdでの起動設定(VPN Server用を使用する場合)
- sudo nano /etc/systemd/system/vpnserver.service
- 以下を記述
※dhclientコマンドは、2019/9/26版Busterでは不要であったが、2019/12/22時点のapt-get dist-upgrade状態では必要
[Unit]
Description=SoftEther VPN Server
After=network.target network-online.target[Service]
ExecStart=/usr/local/vpnserver/vpnserver start
ExecStop=/usr/local/vpnserver/vpnserver stop
WorkingDirectory=/usr/local/vpnserver/
ExecStartPost=/bin/sleep 10 ; brctl addif br0 tap_vlan ; /bin/sleep 5 ; dhclient br0
Type=forking
RestartSec=3s[Install]
WantedBy=multi-user.target - sudo chmod 0755 /etc/systemd/system/vpnserver.service
- sudo systemctl enable vpnserver.service
- sudo systemctl start vpnserver.service
-
Raspbian Busterの更新
- 以下のコマンド群を実行
- sudo apt-get update
- sudo apt-get dist-upgrade -y
- sudo apt autoremove
- 以下のコマンド群を実行
-
参考リンク
- Raspberry Piで作るSoftEther VPNの環境
systemdでtapデバイスを使っている例
https://chibashi.me/development/softether-vpn-server-201902/ - https://qiita.com/kumasun/items/6fd9ddafc8ea6278f088
- https://cgbeginner.net/raspi-vpn/
- Raspberry Piで作るSoftEther VPNの環境