まずい IPSec装置への攻撃!SoftEhterが攻撃受けてる?SoftEtherのアップデート

VPNに接続できないんですが?

発覚したのは、ユーザからVPN接続ができないと報告があったため。

昨日はなぜだかわからなかった。

LAN内からSoftehterに接続すると、ちゃんとVPN通信がはれるものの、WAN側から入ろうとすると入れない。

RTX1200の状況をみると、CPU使用率がほぼ100%という状態で、何らかの異常をきたしていた。

また、IPSec通信が異常に発生している状況も確認できた。

ルータとPacketixVPNサーバの間で異常なIPSec通信が発生している

グローバル IP アドレスの IPsec VPN 装置宛に、侵入試行パケットが送付

外国からのものと思われる日本の広範囲のグローバル IP アドレスの IPsec VPN 装置宛に無差別に侵入試行パケットが送付される現象により、攻撃者によって「SoftEther VPN」および「PacketiX VPN」との間で IPsec レイヤのネゴシエーションが確立されるか確立途中で、認証前の状態であっても CPU、メモリおよびネットワーク帯域が無駄に消費され、また、その結果、正規の L2TP/IPsec 等のユーザーの通信が影響を受ける現象を確認されている。

2021/08/16 日本の広範囲のグローバル IP の IPsec VPN 装置宛へのサイバー攻撃の注意喚起と「SoftEther VPN」/「PacketiX VPN」への影響を防ぐための設定の確認のお願い・新ビルドのお知らせ

Softether社のサイトに記載されているこの攻撃が影響していると思われる。

取り急ぎ侵入を防ぐ

「SoftEther VPN」/「PacketiX VPN」の「L2TP/IPsec」等の IPsec VPN 関係機能を有効化して利用されており、かつ、変更が推奨されている事前共有鍵 (Pre-shared key) を「vpn」(3 文字のデフォルト値、非推奨) のまま変更されていない。

2021/08/16 日本の広範囲のグローバル IP の IPsec VPN 装置宛へのサイバー攻撃の注意喚起と「SoftEther VPN」/「PacketiX VPN」への影響を防ぐための設定の確認のお願い・新ビルドのお知らせ

うちは、これに該当するのでとりあえず事前共有キーを変更して、利用者に周知した。

iPhoneのVPN設定

iPhoneの一般 → VPNより、i ボタンをタップ

編集をタップ

新しく設定した事前共有キーを入力

今回の影響範囲

L2TP,IPsec通信を有効にしたVPNサーバ

通常のPacketixVPN通信には影響がない模様

「SoftEther VPN」/「PacketiX VPN」をインストールし管理されている VPN サーバーの管理者様で、IPsec 機能 (L2TP/IPsec, EtherIP/IPsec または L2TPv3/IPsec) を有効にされ、かつ、以下の条件に合致する方向けのものです。

2021/08/16 日本の広範囲のグローバル IP の IPsec VPN 装置宛へのサイバー攻撃の注意喚起と「SoftEther VPN」/「PacketiX VPN」への影響を防ぐための設定の確認のお願い・新ビルドのお知らせ

SoftEhterのアップデートを行う

VPN設定のバックアップ

まずは、VPN設定のバックアップ

SoftEtherVPN , PacketixVPNはこの辺の作りがしっかりしています。

Configファイルの編集から「ファイルに保存」します。

Linuxの CPUビット数とダウンロード

ちゃんと記録しとけよって話なんですが、一応確認

getconf LONG_BIT
32

オープンソース版: SoftEther VPN 4.37 Build 9758 Beta (2021/08/16)

を選択します。

IPsec Informational Exchange パケットによる切断済みトンネル識別番号の通知の頻度が制限され、日本の広範囲のグローバル IP アドレスの IPsec VPN 装置を狙っていると考えられる攻撃者との間の IPsec 制御用パケットのピンポン現象の発生が抑制されます。

バージョン更新履歴 (ChangeLog)

更新プログラムをダウンロードする

# wget https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v4.37-9758-beta/softether-vpnserver-v4.37-9758-beta-2021.08.16-linux-x86-32bit.tar.gz

ファイルの解凍

tarコマンドでダウンロードした更新プログラムを解凍します。

# tar -xvvzf softether-vpnserver-v4.37-9758-beta-2021.08.16-linux-x86-32bit.tar.gz
drwxrwxrwx 0/0               0 2021-08-16 00:51 vpnserver/
-rwxrwxrwx 0/0            3569 2021-08-16 00:51 vpnserver/Makefile
-rwxrwxrwx 0/0             503 2021-08-16 00:51 vpnserver/.install.sh
-rwxrwxrwx 0/0            3587 2021-08-16 00:51 vpnserver/ReadMeFirst_License.txt
-rwxrwxrwx 0/0              82 2021-08-16 00:51 vpnserver/Authors.txt
-rwxrwxrwx 0/0           52554 2021-08-16 00:51 vpnserver/ReadMeFirst_Important_Notices_ja.txt
-rwxrwxrwx 0/0           37747 2021-08-16 00:51 vpnserver/ReadMeFirst_Important_Notices_en.txt
-rwxrwxrwx 0/0           32256 2021-08-16 00:51 vpnserver/ReadMeFirst_Important_Notices_cn.txt
drwxrwxrwx 0/0               0 2021-08-16 00:51 vpnserver/code/
-rwxrwxrwx 0/0         3427252 2021-08-16 00:51 vpnserver/code/vpnserver.a
-rwxrwxrwx 0/0         3427522 2021-08-16 00:51 vpnserver/code/vpncmd.a
drwxrwxrwx 0/0               0 2021-08-16 00:51 vpnserver/lib/
-rwxrwxrwx 0/0            5362 2021-08-16 00:51 vpnserver/lib/libcharset.a
-rwxrwxrwx 0/0         3618612 2021-08-16 00:51 vpnserver/lib/libcrypto.a
-rwxrwxrwx 0/0          203416 2021-08-16 00:51 vpnserver/lib/libedit.a
-rwxrwxrwx 0/0          954114 2021-08-16 00:51 vpnserver/lib/libiconv.a
-rwxrwxrwx 0/0           28154 2021-08-16 00:51 vpnserver/lib/libintelaes.a
-rwxrwxrwx 0/0          471866 2021-08-16 00:51 vpnserver/lib/libncurses.a
-rwxrwxrwx 0/0          744328 2021-08-16 00:51 vpnserver/lib/libssl.a
-rwxrwxrwx 0/0          103560 2021-08-16 00:51 vpnserver/lib/libz.a
-rwxrwxrwx 0/0           40585 2021-08-16 00:51 vpnserver/lib/License.txt
-rwxrwxrwx 0/0         2009248 2021-08-16 00:51 vpnserver/hamcore.se2

コンパイルする

makeします

以前は、ライセンスアグリーメントへの承諾操作があったと思いますが、今回は何も聞かれずにvpnserverプログラムが作成されました。

# make
--------------------------------------------------------------------
SoftEther VPN Server (Ver 4.37, Build 9758, Intel x86) for Linux Build Utility
Copyright (c) SoftEther Project at University of Tsukuba, Japan. All Rights Reserved.
--------------------------------------------------------------------
Copyright (c) all contributors on SoftEther VPN project in GitHub.
Copyright (c) Daiyuu Nobori, SoftEther Project at University of Tsukuba, and SoftEther Corporation.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and limitations under the License.
DISCLAIMER
==========
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
THIS SOFTWARE IS DEVELOPED IN JAPAN, AND DISTRIBUTED FROM JAPAN, UNDER JAPANESE LAWS. YOU MUST AGREE IN ADVANCE TO USE, COPY, MODIFY, MERGE, PUBLISH, DISTRIBUTE, SUBLICENSE, AND/OR SELL COPIES OF THIS SOFTWARE, THAT ANY JURIDICAL DISPUTES WHICH ARE CONCERNED TO THIS SOFTWARE OR ITS CONTENTS, AGAINST US (SOFTETHER PROJECT, SOFTETHER CORPORATION, DAIYUU NOBORI OR OTHER SUPPLIERS), OR ANY JURIDICAL DISPUTES AGAINST US WHICH ARE CAUSED BY ANY KIND OF USING, COPYING, MODIFYING, MERGING, PUBLISHING, DISTRIBUTING, SUBLICENSING, AND/OR SELLING COPIES OF THIS SOFTWARE SHALL BE REGARDED AS BE CONSTRUED AND CONTROLLED BY JAPANESE LAWS, AND YOU MUST FURTHER CONSENT TO EXCLUSIVE JURISDICTION AND VENUE IN THE COURTS SITTING IN TOKYO, JAPAN. YOU MUST WAIVE ALL DEFENSES OF LACK OF PERSONAL JURISDICTION AND FORUM NON CONVENIENS. PROCESS MAY BE SERVED ON EITHER PARTY IN THE MANNER AUTHORIZED BY APPLICABLE LAW OR COURT RULE.
USE ONLY IN JAPAN. DO NOT USE THIS SOFTWARE IN ANOTHER COUNTRY UNLESS YOU HAVE A CONFIRMATION THAT THIS SOFTWARE DOES NOT VIOLATE ANY CRIMINAL LAWS OR CIVIL RIGHTS IN THAT PARTICULAR COUNTRY. USING THIS SOFTWARE IN OTHER COUNTRIES IS COMPLETELY AT YOUR OWN RISK. THE SOFTETHER VPN PROJECT HAS DEVELOPED AND DISTRIBUTED THIS SOFTWARE TO COMPLY ONLY WITH THE JAPANESE LAWS AND EXISTING CIVIL RIGHTS INCLUDING PATENTS WHICH ARE SUBJECTS APPLY IN JAPAN. OTHER COUNTRIES' LAWS OR CIVIL RIGHTS ARE NONE OF OUR CONCERNS NOR RESPONSIBILITIES. WE HAVE NEVER INVESTIGATED ANY CRIMINAL REGULATIONS, CIVIL LAWS OR INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENTS IN ANY OF OTHER 200+ COUNTRIES AND TERRITORIES. BY NATURE, THERE ARE 200+ REGIONS IN THE WORLD, WITH DIFFERENT LAWS. IT IS IMPOSSIBLE TO VERIFY EVERY COUNTRIES' LAWS, REGULATIONS AND CIVIL RIGHTS TO MAKE THE SOFTWARE COMPLY WITH ALL COUNTRIES' LAWS BY THE PROJECT. EVEN IF YOU WILL BE SUED BY A PRIVATE ENTITY OR BE DAMAGED BY A PUBLIC SERVANT IN YOUR COUNTRY, THE DEVELOPERS OF THIS SOFTWARE WILL NEVER BE LIABLE TO RECOVER OR COMPENSATE SUCH DAMAGES, CRIMINAL OR CIVIL
RESPONSIBILITIES. NOTE THAT THIS LINE IS NOT LICENSE RESTRICTION BUT JUST A STATEMENT FOR WARNING AND DISCLAIMER.
READ AND UNDERSTAND THE 'src/WARNING.TXT' FILE BEFORE USING THIS SOFTWARE. SOME SOFTWARE PROGRAMS FROM THIRD PARTIES ARE INCLUDED ON THIS SOFTWARE WITH LICENSE CONDITIONS WHICH ARE DESCRIBED ON THE 'src/THIRD_PARTY.TXT' FILE.
--------------------------------------------------------------------
make[1]: Entering directory '/home/vpnserver'
Preparing SoftEther VPN Server...
ranlib lib/libcharset.a
ranlib lib/libcrypto.a
ranlib lib/libedit.a
ranlib lib/libiconv.a
ranlib lib/libintelaes.a
ranlib lib/libncurses.a
ranlib lib/libssl.a
ranlib lib/libz.a
ranlib code/vpnserver.a
gcc code/vpnserver.a -fPIE -O2 -fsigned-char -pthread -m32 -lm -lrt -lpthread -L./ lib/libssl.a lib/libcrypto.a lib/libiconv.a lib/libcharset.a lib/libedit.a lib/libncurses.a lib/libz.a lib/libintelaes.a -ldl -o vpnserver
ranlib code/vpncmd.a
gcc code/vpncmd.a -fPIE -O2 -fsigned-char -pthread -m32 -lm -lrt -lpthread -L./ lib/libssl.a lib/libcrypto.a lib/libiconv.a lib/libcharset.a lib/libedit.a lib/libncurses.a lib/libz.a lib/libintelaes.a -ldl -o vpncmd
./vpncmd /tool /cmd:Check
vpncmd コマンド - SoftEther VPN コマンドライン管理ユーティリティ
SoftEther VPN コマンドライン管理ユーティリティ (vpncmd コマンド)
Version 4.37 Build 9758   (Japanese)
Compiled 2021/08/16 00:45:58 by buildsan at crosswin
Copyright (c) SoftEther VPN Project. All Rights Reserved.
VPN Tools を起動しました。HELP と入力すると、使用できるコマンド一覧が表示できます。
VPN Tools>Check
Check コマンド - SoftEther VPN の動作が可能かどうかチェックする
---------------------------------------------------
SoftEther VPN 動作環境チェックツール
Copyright (c) SoftEther VPN Project.
All Rights Reserved.
この動作環境チェックツールを実行したシステムがテストに合格した場合は、SoftEther VPN ソフトウェアが動作する可能性が高いです。チェックにはしばらく時間がかかる場合があります。そのままお待ちください...
'カーネル系' のチェック中...
[合格] ○
'メモリ操作系' のチェック中...
[合格] ○
'ANSI / Unicode 文字列処理系' のチェック中...
[合格] ○
'ファイルシステム' のチェック中...
[合格] ○
'スレッド処理システム' のチェック中...
[合格] ○
'ネットワークシステム' のチェック中...
[合格] ○
すべてのチェックに合格しました。このシステム上で SoftEther VPN Server / Bridge が正しく動作する可能性が高いと思われ ます。
コマンドは正常に終了しました。
--------------------------------------------------------------------
The preparation of SoftEther VPN Server is completed !
*** How to switch the display language of the SoftEther VPN Server Service ***
SoftEther VPN Server supports the following languages:
- Japanese
- English
- Simplified Chinese
You can choose your prefered language of SoftEther VPN Server at any time.
To switch the current language, open and edit the 'lang.config' file.
Note: the administrative password is not set on the VPN Server. Please set your own administrative password as soon as possible by vpncmd or the GUI manager.
*** How to start the SoftEther VPN Server Service ***
Please execute './vpnserver start' to run the SoftEther VPN Server Background Service.
And please execute './vpncmd' to run the SoftEther VPN Command-Line Utility to configure SoftEther VPN Server.
Of course, you can use the VPN Server Manager GUI Application for Windows / Mac OS X on the other Windows / Mac OS X computers in order to configure the SoftEther VPN Server remotely.
*** For Windows users ***
You can download the SoftEther VPN Server Manager for Windows
from the http://www.softether-download.com/ web site.
This manager application helps you to completely and easily manage the VPN server services running in remote hosts.
*** For Mac OS X users ***
In April 2016 we released the SoftEther VPN Server Manager for Mac OS X.
You can download it from the http://www.softether-download.com/ web site.
VPN Server Manager for Mac OS X works perfectly as same as the traditional Windows versions. It helps you to completely and easily manage the VPN server services running in remote hosts.
*** 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]: Leaving directory '/home/vpnserver'

更新ファイルへの置き換え

vpnserverをストップします

# /etc/init.d/vpnserver stop
Stopping the SoftEther VPN Server service ...
SoftEther VPN Server service has been stopped.

フォルダ名のリネーム

/usr/local# mv vpnserver/ vpnserver-old

新しくできたvpnserverフォルダを移動します

/usr/local# mv  /home/vpnserver/ .

vpnserverの起動

起動スクリプトは以前のまま使えるようですが、コンフィグファイルはリセットされています。

/usr/local# /etc/init.d/vpnserver start
The SoftEther VPN Server service has been started.
Let's get started by accessing to the following URL from your PC:
https://192.168.***.**:5555/
or
https://192.168.***.**/
Note: IP address may vary. Specify your server's IP address.
A TLS certificate warning will appear because the server uses self signed certificate by default. That is natural. Continue with ignoring the TLS warning.

起動スクリプト詳細はこちらから

コンフィグのリストア

新しくインストールしたvpnserverへ以前のコンフィグをコピーします。

サーバ管理ツールでポート番号443でアクセスするとサーバとして認識します。

新しくパスワードを設定するよう要求されます。

管理マネージャにログインしたら、Config編集を行います

コンフィグを読み込みます

CPU負荷はかかっていない状態へ

vmstat でCPUやそのほか憑っている負荷を見ると、CPUもアイドル状態へ。

# vmstat 2
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
0  0      0 3104932 127016 701364    0    0     1     4   54  135 16  9 75  0  0
0  0      0 3104988 127016 701392    0    0     0     0  544  832  1  1 98  0  0
0  0      0 3104924 127016 701392    0    0     0     0  529  792  1  1 99  0  0
0  0      0 3104892 127024 701392    0    0     0    20  542  792  1  1 98  0  0
0  0      0 3104924 127024 701392    0    0     0     0  536  793  1  1 98  0  0
0  0      0 3104956 127024 701392    0    0     0     0  545  810  0  1 99  0  0
0  0      0 3104860 127024 701392    0    0     0     0  544  786  1  0 99  0  0
0  0      0 3104876 127024 701392    0    0     0    12  554  820  1  1 98  0  0
0  0      0 3104844 127024 701392    0    0     0     0  555  816  1  1 98  0  0
0  0      0 3104812 127024 701392    0    0     0    14  551  786  1  1 99  0  0

ルータのCPU負荷も落ちています