SoftEther VPN Serverの管理者パスワードを変更する
AWSのEC2(OSはAmazon Linux 2)上で稼働しているSoftEther VPN Serverに設定していた管理者パスワードを忘れたという事案が生じ、管理者パスワードの再設定を行ったので、その手順を残しておく。
作業の流れとしては以下の通り。
作業手順
まずは、SofrEther VPN Serverの稼働しているEC2に、SSHなりSession Managerなりで接続する。
接続出来たら以下のコマンドでSoftEther VPN Serverのサービスを停止。
$ sudo su - $ systemctl stop vpnserver
次に、既存の管理者パスワードを削除するのだが、パスワード自体はSoftEther VPN Serverの設定ファイルであるvpn_server.config
にハッシュ化された形で定義されているので、それを直接編集して削除する必要がある。
件のサーバーでは/usr/local/
ディレクトリにインストールされていたので、設定ファイルは/usr/local/vpnserver/vpn_server.config
にあった。
中身を確認すると、以下の様にroot
のServerConfiguration
にHashedPassword
として管理者パスワードが定義されている。
declare root { 〜〜〜 中略 〜〜〜 declare ServerConfiguration { 〜〜〜 中略 〜〜〜 byte HashedPassword D2Ak3pm0cNSlPrtyCWYig1vDcFE=
このHashedPassword
を削除してやる。
$ cp -vip /usr/local/vpnserver/vpn_server.config /tmp ←バックアップ $ vi /usr/local/vpnserver/vpn_server.config ←ServerConfiguration内のHashedPassword行を削除して保存
なお、ServerConfiguration
以外にVirtualHUB
にもHashedPassword
(こちらは仮想ハブのパスワード)が定義されているので、HashedPassword
だけで検索して誤ってVirtualHUB
の方を削除してしまわない様に注意。
vpn_server.config
の編集を終えたら、SoftEther VPN Serverのサービスを再開。
$ systemctl start vpnserver
サービスの起動を確認したら、SofrEther VPN Serverの管理コマンドとなるvpncmd
を使って、新しい管理者パスワードを設定する。
$ /usr/local/vpnserver/vpncmd
実行すると対話式のプロンプトに切り替わり、このコマンドで何をするのか選択肢が表示されるので、「1」(サーバー管理)を入力してエンターを押す。
vpncmd コマンド - SoftEther VPN コマンドライン管理ユーティリティ SoftEther VPN コマンドライン管理ユーティリティ (vpncmd コマンド) Version 4.34 Build 9745 (Japanese) Compiled 2020/04/05 23:39:56 by buildsan at crosswin Copyright (c) SoftEther VPN Project. All Rights Reserved. vpncmd プログラムを使って以下のことができます。 1. VPN Server または VPN Bridge の管理 2. VPN Client の管理 3. VPN Tools コマンドの使用 (証明書作成や通信速度測定) 1 - 3 を選択: 1
すると、作業対象とするサーバーの接続先を問われるのだが、何も入力せずにエンターを押すとlocalhost
が指定される。
接続先の VPN Server または VPN Bridge が動作しているコンピュータの IP アドレスまたはホスト名を指定してください。 'ホスト名:ポート番号' の形式で指定すると、ポート番号も指定できます。 (ポート番号を指定しない場合は 443 が使用されます。) 何も入力せずに Enter を押すと、localhost (このコンピュータ) のポート 443 に接続します。 接続先のホスト名または IP アドレス:
次に、仮想ハブ名の入力を求められるので、今回はサーバー管理モードで接続する為、ここでも何も入力せずにエンターを押す。
サーバーに仮想 HUB 管理モードで接続する場合は、仮想 HUB 名を入力してください。 サーバー管理モードで接続する場合は、何も入力せずに Enter を押してください。 接続先の仮想 HUB 名を入力:
管理者パスワードが設定されている状態だと、このタイミングでパスワードの入力を求められるのだが、vpn_server.config
から正常に削除出来ていれば、このまま管理者モードでSoftEther VPN Serverに接続され、以下の様なプロンプトが表示される。
VPN Server "localhost" (ポート 443) に接続しました。 VPN Server 全体の管理権限があります。 VPN Server>
プロンプトが切り替わったら管理者パスワードの設定コマンドServerPasswordSet
を実行し、新しいパスワードを2回入力すると設定が完了。
VPN Server>ServerPasswordSet ServerPasswordSet コマンド - VPN Server の管理者パスワードの設定 パスワードを入力してください。キャンセルするには Ctrl+D キーを押してください。 パスワード: ************************ 確認入力 : ************************ コマンドは正常に終了しました。 VPN Server>exit
一度、プロンプトを抜けてから、再度vpncmd
を実行してlocalhost
に接続しようとすると、先程とは異なり管理者パスワードの入力を求められる様になっている。
$ /usr/local/vpnserver/vpncmd vpncmd コマンド - SoftEther VPN コマンドライン管理ユーティリティ SoftEther VPN コマンドライン管理ユーティリティ (vpncmd コマンド) Version 4.34 Build 9745 (Japanese) Compiled 2020/04/05 23:39:56 by buildsan at crosswin Copyright (c) SoftEther VPN Project. All Rights Reserved. vpncmd プログラムを使って以下のことができます。 1. VPN Server または VPN Bridge の管理 2. VPN Client の管理 3. VPN Tools コマンドの使用 (証明書作成や通信速度測定) 1 - 3 を選択: 1 接続先の VPN Server または VPN Bridge が動作しているコンピュータの IP アドレスまたはホスト名を指定してください。 'ホスト名:ポート番号' の形式で指定すると、ポート番号も指定できます。 (ポート番号を指定しない場合は 443 が使用されます。) 何も入力せずに Enter を押すと、localhost (このコンピュータ) のポート 443 に接続します。 接続先のホスト名または IP アドレス: サーバーに仮想 HUB 管理モードで接続する場合は、仮想 HUB 名を入力してください。 サーバー管理モードで接続する場合は、何も入力せずに Enter を押してください。 接続先の仮想 HUB 名を入力: パスワード: ************************ VPN Server "localhost" (ポート 443) に接続しました。 VPN Server 全体の管理権限があります。 VPN Server>exit
ここで新しいパスワードを入力してlocalhost
に接続される事を確認し、問題が無ければ管理者パスワードの変更作業は完了となる。