Raspberry Piで稼働させているSoftEther VPN Serverのバージョンアップを実施しましたのでご報告です。
バージョンアップは概ねスムーズに完了できました。
SoftEtherがVer 4.42をリリース
2021年のVer.4.38のRTMリリースから2年弱、今年の3月にVer 4.41のRTMリリースをしたばかりだったSoftEtherですが、セキュリティの更新を含むVer.4.42が6月30日にリリースされていました。
詳しくは、Changelog(バージョン更新履歴)のページで確認できます。
https://ja.softether.org/5-download/history
CiscoSystems社の協力で発見された脆弱性の修正が主な修正となるようです。
※脆弱性の一覧
https://ja.softether.org/9-about/news/904-SEVPN202301
位置づけとしては、悪用されるリスクは比較的低いことや、実際の攻撃は容易ではないことが記載として見て取れますが、前回のVer 4.41と比べて優先順位は高いと判断しました。
まずはVPN Serverからバージョンアップ前準備
Raspberry Piに導入したSoftEther VPN Serverのバージョンアップの記録です。
まずはこの作業を実施する前に、念のためddコマンドでイメージバックアップを取得しておくことにしました。
■参考記事:
Raspberry Piのddバックアップとリストアテストをやってみる - treedown’s Report
リストアまで検証したことがあるので、何かあればバージョンアップ前のシステムに戻せるはずです。
ddでバックアップを取得したあとで作業に取りかかります。まず稼働中のVPN Serverは作業前に停止しておきます。
また、SCPなどでインストーラは既に配置済の状態です。
まずはインストール先に.tar.gzファイルをコピー。
# cp softether-vpnserver-v4.42-9798-rtm-2023.06.30-linux-arm_eabi-32bit.tar.gz /opt/
Raspberry Piなので「arm_eabi」とあるインストーラを用意しています。この辺りは前回<https://blog.treedown.net/entry/2023/07/11/010000>確認した内容です。
また今回の環境では/opt(/opt/vpnserver)にインストールしています。
# cd /opt
# cp -r vpnserver vpnserver4_38
まずは既存の環境を別名でバックアップしておくことにしました。何かあれば旧バージョンのファイルを参照できるようにしておき、新バージョンで稼働が問題なければその内削除します。
次に作業用ディレクトリを作成しそこに移動します。
# mkdir work
# mv softether-vpnserver-v4.42-9798-rtm-2023.06.30-linux-arm_eabi-32bit.tar.gz work/
# cd work/
/opt/workディレクトリを作成して、そこにインストーラを移動しました。
カレントディレクトリを/opt/workディレクトリに移動してtarを展開します。
# tar -zxvf softether-vpnserver-v4.42-9798-rtm-2023.06.30-linux-arm_eabi-32bit.tar.gz
--------------------------------------------------------------
# tar -zxvf softether-vpnserver-v4.42-9798-rtm-2023.06.30-linux-arm_eabi-32bit.tar.gz
vpnserver/
vpnserver/Makefile
vpnserver/.install.sh
vpnserver/ReadMeFirst_License.txt
vpnserver/Authors.txt
vpnserver/ReadMeFirst_Important_Notices_ja.txt
vpnserver/ReadMeFirst_Important_Notices_en.txt
vpnserver/ReadMeFirst_Important_Notices_cn.txt
vpnserver/code/
vpnserver/code/vpnserver.a
vpnserver/code/vpncmd.a
vpnserver/lib/
vpnserver/lib/libcharset.a
vpnserver/lib/libcrypto.a
vpnserver/lib/libedit.a
vpnserver/lib/libiconv.a
vpnserver/lib/libncurses.a
vpnserver/lib/libssl.a
vpnserver/lib/libz.a
vpnserver/lib/License.txt
vpnserver/hamcore.se2
--------------------------------------------------------------
tarコマンドでtar.gzファイルを/opt/workに展開しました。
インストールを実施
インストールはmakeコマンドを実行し完了します。
tarを展開したカレントディレクトリ配下のvpnserverディレクトリ(ここにMAKEFILEがある)に移動して、コマンドを実行します。
# cd vpnserver/
# make
--------------------------------------------------------------
実行画面
--------------------------------------------------------------------
SoftEther VPN Server (Ver 4.42, Build 9798, ARM EABI) for Linux Build Utility
Copyright (c) SoftEther Project at University of Tsukuba, Japan. All Rights Reserved.
--------------------------------------------------------------------
以下略
*** PacketiX VPN Server HTML5 Web Administration Console (NEW) ***
This VPN Server / Bridge has the built-in HTML5 Web Administration Console.
After you start the server daemon, you can open the HTML5 Web Administration Console is available at
https://127.0.0.1:5555/
or
https://ip_address_of_the_vpn_server:5555/
This HTML5 page is obviously under construction, and your HTML5 development contribution is very appreciated.
--------------------------------------------------------------------
make[1]: ディレクトリ '/opt/work/vpnserver' から出ます
--------------------------------------------------------------
上記でmakeが完了しました。
この次点で/opt/work/vpnserverの中に、新バージョンの動作ファイルが生成されています。
これらを、稼働するSoftEtherの/opt/vpnserverに上書きコピーしファイルを更新します。
# \cp -rf ./* /opt/vpnserver/
cpコマンドの-rでディレクトリ毎コピー、-fでコピー先の同名ファイルを表示なく上書きします。
これで、手動で生成したconfigはそのままで、プログラムが使用するファイルだけ新バージョンのファイルで上書きされます。
完了後、バージョンアップの確認。
# /opt/vpnserver/vpncmd /help | grep Version
コマンドでバージョンを確認できます。
新バージョンに更新されたことが確認できましたので、VPN Serverのサービスを起動して、動作確認を実施します。
バージョンアップ後の確認
管理ツールでVPN Serverに接続して、バージョンアップができていることを確認しました。
ちゃんと4.42に更新されています。
また、クライアント(VPN Client)もバージョンアップし、Ver.4.42に更新しておきました。
これでインターネット経由(モバイルWi-Fiなど)でVPN接続から、イントラネット内へのリソースのアクセスを確認して完了となります。
最後に、サーバの作業フォルダとして一時的に使用した領域を削除しておきました。
# cd /opt/
# rm -r ./work/
消さないで容量に余裕があれば、別に消さなくてもいいですけど、次回のバージョンアップ時にゴッチャになることもあるので消すようにしています。
これでバージョンアップが完了しました。動作に問題がなければ、本番環境にも適用していこうと思います。