コマンドラインで接続を閉じようとしています。たとえば、次のNmapコマンドを使用してSSH接続を閉じようとしています。
$ sudo nmap -p 22 --scanflags RST <mySSHServerPublicIP>
$ sudo nmap -p 22 --scanflags FIN <mySSHServerPublicIP>
TCPハンドシェイクが完了し(SYN、SYN-ACK、ACKシーケンスが完了)、接続が確立されると、サーバーまたはクライアントはFINを送信してこの接続を正常に閉じるか、またはRST。
また、サーバーのなりすましでクライアントの接続を閉じようとしました。
$ sudo nmap -p 23926 --scanflags FIN -S <mySSHServerPublicIP> <MyLocalIP> -Pn -n -e <interface>
これらのコマンドは効果がありません、なぜ接続を閉じないのか誰にもわかりますか?
まあ、最初に実際にTCP接続をハイジャックしてFINまたはRSTを挿入する必要があります。デバイスがパケットから正しいSYNおよびACK値を取得しない場合、デバイスはそれを無視します。最新のIPスタックのほとんどは、論理接続の一部としてパケットを処理できる値を予測するには高度すぎます。さらに、TCPは両端でFINを確認する必要があるため、クライアントFIN、ACKでのサーバー応答、および別のFINにより、両端で接続が閉じられたことに同意します。
—
フランクトーマス
しかし、FINを送信した後、Close_Waitが表示されることを期待していますが、これは起こりません。TCPViewはどうして接続を閉じることができますか?接続をハイジャックしますか?これはtcpvconまたはhpingで可能ですか?
—
フロリアンビダベ
簡単に言えば、あなたはおそらくあなたが望むことをすることができないでしょう。コンピューターエンジニアと科学者は、あなたがやろうとしていることを行うことを明示的に禁止するシステムの開発に数十年を費やしました。
—
フランクトーマス
答えてくれてありがとう、これは広すぎます。誰かがテクニカル分析をすることができることを願っています。ネットワークトレースを作成し、TCPViewとの接続を閉じることと、このnmapコマンドが行うことを比較します。
—
フロリアンビダベ
ぜひ。接続の作成方法については、TCP 3ウェイハンドシェイクを参照することをお勧めします。これは、論理接続の外部からのパケットが無視される理由と、その識別方法(無効なSYNおよびACK値など)を理解するのに役立ちます。ところで、tcpviewは、ポートを閉じるようにOSに指示するだけです。パケットを送信しません。
—
フランクトーマス