makeの後のbin実行とmake install後の実行ファイルの動きが違う

SoftEther VPN に関するご質問はこのフォーラムにお気軽にご投稿ください。
Post Reply
rokmn3309
Posts: 5
Joined: Wed Aug 11, 2021 3:00 pm

makeの後のbin実行とmake install後の実行ファイルの動きが違う

Post by rokmn3309 » Sun Mar 03, 2024 2:31 am

お世話になります。

以下のやり方で、デバッグで実行しました。
https://www.vpnusers.com/viewtopic.php?t=5922

下記に用に、ソースコードのSSTP_TIMEOUTを30秒に変更して、debugで30秒でtimeoutが出ることを確認出来ました。

Code: Select all

cd SoftEtherVPN_Stable-4.42-9798-rtm/
diff -r org/src/Cedar/Interop_SSTP.h test/src/Cedar/Interop_SSTP.h
116c116
< #define       SSTP_TIMEOUT            10000       // Communication time-out of SSTP
---
> #define       SSTP_TIMEOUT            30000       // Communication time-out of SSTP
ですが、make installして、動かしてみるとソースコードで変更した時間より短い時間(20秒)でTimeoutします。
実行時に参照するもの(/usr/local/libexec/softether/vpnserver/vpn_server.config)を見ましたが、それだとするもは無かったです。

原因を分かる方がいらっしゃるなら教えて頂くと大変助かります。

cedar
Site Admin
Posts: 2081
Joined: Sat Mar 09, 2013 5:37 am

Re: makeの後のbin実行とmake install後の実行ファイルの動きが違う

Post by cedar » Mon Mar 04, 2024 10:17 am

この SSTP_TIMEOUT は、コネクションが生きているものの、相手からの通信がなくなった場合のタイムアウト時間のようです。
TCP の切断など、他の条件で切断されている可能性もあるかと思います。

rokmn3309
Posts: 5
Joined: Wed Aug 11, 2021 3:00 pm

Re: makeの後のbin実行とmake install後の実行ファイルの動きが違う

Post by rokmn3309 » Mon Mar 04, 2024 2:34 pm

cedar wrote:
Mon Mar 04, 2024 10:17 am
この SSTP_TIMEOUT は、コネクションが生きているものの、相手からの通信がなくなった場合のタイムアウト時間のようです。
2FAをテスト中で、sstpで接続をクリックし、ID/PW入力画面で、どのぐらい入力を待たすかを試していて、配布のインストールバージョンは10秒で切れます。
ですが、ソースコードをmakeしてmake installすると、20秒で切れました。
ソースコードをmake [DEBUG=true]したものを、make installせずにdebug modeで起動して試すと10秒、SSTP_TIMEOUTを30秒に延ばすと30秒で切れました。
ソースコードをmake [DEBUG=true]したものをmake installして試すと、20秒で切れました。configファイルは、実行時に参照するもの(/usr/local/libexec/softether/vpnserver/vpn_server.config)をコピーして、debugで実行しました。

各、試した時のログを添付します。

debugモードでのログ
./vpnserver execsvc |awk '{print strftime("%D %T"), $0}'

Code: Select all

03/04/24 23:00:21 StartSSL()
03/04/24 23:00:21 LOG: コネクション "CID-1" に対する SSL 通信が開始されました。暗号化アルゴリズム名は "TLS_AES_256_GCM_SHA384" です。
03/04/24 23:00:21 Downloading Signature...
03/04/24 23:00:21 ProcessSstpHttps Start.
03/04/24 23:00:21 SSTP Control Packet Recv: Msg = 1, Num = 1
03/04/24 23:00:21 SSTP Control Packet Send: Msg = 2, Num = 1
03/04/24 23:00:52 SSTP Control Packet Send: Msg = 5, Num = 0
03/04/24 23:00:52 ProcessSstpHttps End.
03/04/24 23:00:52 LOG: コネクション "CID-1" は理由 "接続が切断されました。" (コード 3) で終了しました。
03/04/24 23:00:52 ServerAccept Failed. Err = 3
03/04/24 23:00:52 ConnectionAccept() Error.
03/04/24 23:00:52 Connection CID-1 Deleted from Cedar.
03/04/24 23:00:52 LOG: コネクション "CID-1" が終了しました。
03/04/24 23:00:52 src/Cedar/Listener.c 284 flag1 == false
03/04/24 23:00:52 LOG: クライアント (IP アドレス 100.200.100.228, ポート番号 7241) との間のコネクションは切断されました。
実行モードでのログ
vpnserver start
tail -f /usr/local/libexec/softether/vpnserver/server_log/vpn_20240304.log

Code: Select all

2024-03-04 23:06:22.684 TCP リスナー (ポート 0) にクライアント (IP アドレス 100.200.100.228, ホスト名 "oki-100-200-100-228.jptransit.net", ポート番号 3888) が接続しました。
2024-03-04 23:06:22.684 クライアント (IP アドレス 100.200.100.228, ホスト名 "oki-100-200-100-228.jptransit.net", ポート番号 3888) に対応するコネクション "CID-2" が作成されました。
2024-03-04 23:06:22.684 コネクション "CID-2" に対する SSL 通信が開始されました。プロトコルバージョンは TLSv1.3 です。暗号化アルゴリズム名は "TLS_AES_256_GCM_SHA384" です。
2024-03-04 23:06:22.684 [SSTP] 100.200.100.228:3888 -> 172.30.31.253:58204 (TCP): Session created.
2024-03-04 23:06:43.721 [SSTP] 100.200.100.228:3888 -> 172.30.31.253:58204 (TCP): Session deleted.
2024-03-04 23:06:43.741 コネクション "CID-2" は理由 "接続が切断されました。" (コード 3) で終了しました。
2024-03-04 23:06:43.741 コネクション "CID-2" が終了しました。
2024-03-04 23:06:43.741 クライアント (IP アドレス 100.200.100.228, ポート番号 3888) との間のコネクションは切断されました。
cedar wrote:
Mon Mar 04, 2024 10:17 am
TCP の切断など、他の条件で切断されている可能性もあるかと思います。
debugモードと実行モード時の使うものが違うことは考えにくいと思いますが。

cedar
Site Admin
Posts: 2081
Joined: Sat Mar 09, 2013 5:37 am

Re: makeの後のbin実行とmake install後の実行ファイルの動きが違う

Post by cedar » Mon Mar 04, 2024 11:46 pm

実際にそのタイムアウトの判定で切断されているかどうかを確認するために、タイムアウトで切断する処理に
ログの出力を追加してみるのはいかがでしょうか。

rokmn3309
Posts: 5
Joined: Wed Aug 11, 2021 3:00 pm

Re: makeの後のbin実行とmake install後の実行ファイルの動きが違う

Post by rokmn3309 » Tue Mar 05, 2024 2:10 am

cedar wrote:
Mon Mar 04, 2024 11:46 pm
実際にそのタイムアウトの判定で切断されているかどうかを確認するために、タイムアウトで切断する処理に
ログの出力を追加してみるのはいかがでしょうか。
コメントありがとうございます。

ログ中、以下が実行モード時にのみ出るので、SSTP文字列を宣言しているSSTP_IPC_POSTFIXを少し変えて試しても変わった無かったので、元々ソースコードをmake installした場所と違うものではないかと疑い、既存のsoftether関連を削除して、再度make installしてみたら問題なく動きました。
恐らく、他の方と一緒に同じサーバーでテストしたので、その時にごちゃごちゃになったのではないかと思います。

Code: Select all

2024-03-04 23:06:22.684 [SSTP] 100.200.100.228:3888 -> 172.30.31.253:58204 (TCP): Session created.
2024-03-04 23:06:43.721 [SSTP] 100.200.100.228:3888 -> 172.30.31.253:58204 (TCP): Session deleted.

Post Reply