SSH接続とTCPパケット

SSH接続とTCPパケット

IP YY.YY.YY.YY に SSH サーバーがあり、ポート 5022 でリッスンしており、TCPDUMP を使用して次のトラフィックを表示します。ここで、XX.XX.XX.XX は不明な外部 IP です。

10:34:58.879055 XX.XX.XX.XX.59800 >  YY.YY.YY.YY.5022: S 1093512123:1093512123(0) win 29200 <mss 1460,sackOK,timestamp 4152861140 0,nop,wscale 7> (DF) [tos 0x68]
10:34:58.879222  YY.YY.YY.YY.5022 > XX.XX.XX.XX.59800: S 1017497190:1017497190(0) ack 1093512124 win 16384 <mss 1460,nop,nop,sackOK,nop,wscale 6,nop,nop,timestamp 4107297338 4152861140> (DF)
10:34:58.902942 XX.XX.XX.XX.59800 >  YY.YY.YY.YY.5022: . ack 1 win 229 <nop,nop,timestamp 4152861164 4107297338> (DF) [tos 0x68]
10:34:58.902980 XX.XX.XX.XX.59800 >  YY.YY.YY.YY.5022: P 1:24(23) ack 1 win 229 <nop,nop,timestamp 4152861164 4107297338> (DF) [tos 0x68]
10:34:58.916629  YY.YY.YY.YY.5022 > XX.XX.XX.XX.59800: P 1:22(21) ack 24 win 271 <nop,nop,timestamp 4107297338 4152861164> (DF)
10:34:58.939061 XX.XX.XX.XX.59800 >  YY.YY.YY.YY.5022: . ack 22 win 229 <nop,nop,timestamp 4152861201 4107297338> (DF) [tos 0x68]
10:34:58.939120  YY.YY.YY.YY.5022 > XX.XX.XX.XX.59800: P 22:1054(1032) ack 24 win 271 <nop,nop,timestamp 4107297338 4152861201> (DF)
10:34:58.939603 XX.XX.XX.XX.59800 >  YY.YY.YY.YY.5022: P 24:672(648) ack 22 win 229 <nop,nop,timestamp 4152861201 4107297338> (DF) [tos 0x68]
10:34:58.941607  YY.YY.YY.YY.5022 > XX.XX.XX.XX.59800: F 1054:1054(0) ack 672 win 271 <nop,nop,timestamp 4107297338 4152861201> (DF)
10:34:58.961672 XX.XX.XX.XX.59800 >  YY.YY.YY.YY.5022: F 672:672(0) ack 1054 win 245 <nop,nop,timestamp 4152861223 4107297338> (DF) [tos 0x68]
10:34:58.961721  YY.YY.YY.YY.5022 > XX.XX.XX.XX.59800: F 1054:1054(0) ack 673 win 271 <nop,nop,timestamp 4107297338 4152861223> (DF)
10:34:58.963932 XX.XX.XX.XX.59800 >  YY.YY.YY.YY.5022: . ack 1055 win 245 <nop,nop,timestamp 4152861226 4107297338> (DF) [tos 0x68]

私が気にするのは、同期、プッシュ、完了を意味するフラグS、P、Fです。

私はネットワーキングに精通していませんが、この接続によって私のサーバーが破損したと仮定できますか?このIPと私のサーバーの間にトラフィック全体がありますか、それとも接続しようとしていますか?

ベストアンサー1

Syn、Push、Fin は TCP パケットの一般的な信号です。彼らはあなたのサーバーが破損しているかどうかを自分で言うことはありません。

  • Syn は新しい接続を開始したいことを示します。
  • プッシュは、接続に関するデータを送信することを意味します。
  • ピンが切断するように言った。

トラフィックを見ると、サーバーへの認証を試みる前に失敗したようです。

10:34:58.879055 XX.XX.XX.XX.59800 >  YY.YY.YY.YY.5022: S 1093512123:1093512123(0) win 29200 <mss 1460,sackOK,timestamp 4152861140 0,nop,wscale 7> (DF) [tos 0x68]
10:34:58.879222  YY.YY.YY.YY.5022 > XX.XX.XX.XX.59800: S 1017497190:1017497190(0) ack 1093512124 win 16384 <mss 1460,nop,nop,sackOK,nop,wscale 6,nop,nop,timestamp 4107297338 4152861140> (DF)
10:34:58.902942 XX.XX.XX.XX.59800 >  YY.YY.YY.YY.5022: . ack 1 win 229 <nop,nop,timestamp 4152861164 4107297338> (DF) [tos 0x68]

これは、YY.YY.YY.YYに接続したいXX.XX.XX.XXによって開始された3方向TCPハンドシェイクです。 Syn フラグは、これが新しい接続の開始であることを示します。

10:34:58.902980 XX.XX.XX.XX.59800 >  YY.YY.YY.YY.5022: P 1:24(23) ack 1 win 229 <nop,nop,timestamp 4152861164 4107297338> (DF) [tos 0x68]
10:34:58.916629  YY.YY.YY.YY.5022 > XX.XX.XX.XX.59800: P 1:22(21) ack 24 win 271 <nop,nop,timestamp 4107297338 4152861164> (DF)
10:34:58.939061 XX.XX.XX.XX.59800 >  YY.YY.YY.YY.5022: . ack 22 win 229 <nop,nop,timestamp 4152861201 4107297338> (DF) [tos 0x68]

すべてのSSH接続が開始されると、両当事者は使用中のSSHソフトウェアを説明する短いテキスト「バナー」を送信します。これらのパケットは、XX.XX.XX.XXがバナーをYY.YY.YY.YYに送信し、YY.YY.YY.YYがこれを確認し、バナーをXX.XX.XX.XXに送信し、XX.XXのように見えます。 .XX.XXをチェックしてください。

10:34:58.939120  YY.YY.YY.YY.5022 > XX.XX.XX.XX.59800: P 22:1054(1032) ack 24 win 271 <nop,nop,timestamp 4107297338 4152861201> (DF)
10:34:58.939603 XX.XX.XX.XX.59800 >  YY.YY.YY.YY.5022: P 24:672(648) ack 22 win 229 <nop,nop,timestamp 4152861201 4107297338> (DF) [tos 0x68]

SSHプロトコルによれば、バナーを送信した後、両当事者は、サポートされている暗号化アルゴリズム、サポートされている鍵交換プロトコルなどを示すメッセージを送信して、両当事者が接続を暗号化するために使用する暗号化鍵をネゴシエートできます。

10:34:58.941607  YY.YY.YY.YY.5022 > XX.XX.XX.XX.59800: F 1054:1054(0) ack 672 win 271 <nop,nop,timestamp 4107297338 4152861201> (DF)
10:34:58.961672 XX.XX.XX.XX.59800 >  YY.YY.YY.YY.5022: F 672:672(0) ack 1054 win 245 <nop,nop,timestamp 4152861223 4107297338> (DF) [tos 0x68]
10:34:58.961721  YY.YY.YY.YY.5022 > XX.XX.XX.XX.59800: F 1054:1054(0) ack 673 win 271 <nop,nop,timestamp 4107297338 4152861223> (DF)
10:34:58.963932 XX.XX.XX.XX.59800 >  YY.YY.YY.YY.5022: . ack 1055 win 245 <nop,nop,timestamp 4152861226 4107297338> (DF) [tos 0x68]

明らかに、YY.YY.YY.YYはXX.XX.XX.XXが送信したものが好きではありませんでした(どちらもサポートするアルゴリズムがありませんか?またはXX.XX.XX.XXが間違った形式のパケットを送信しましたか?) 。続行する代わりに、キー交換のために接続を継続しなくても接続を閉じようとするために、XX.XX.XX.XX(Finフラグを使用して)に通知することにします。 XX.XX.XX.XXはまた、Finフラグを使用して接続を閉じます(キーの交換が不可能であると判断したか、YY.YY.YY.YYのFinを取得したため)。

理論的には、XX.XX.XX.XXを使用している人は、XX.XX.XX.XXを変更してより多くのアルゴリズムをサポートすることで、鍵交換および無差別ログイン試行を正常に完了できます。

おすすめ記事