共有できる物理サーバーの詳細と構成は非常に制限されていますが、問題と私がやろうとしていることを説明するために最善を尽くします。
私が直面した問題は次のとおりです。 Centos 7を実行しているSFTPサーバーがあり、SFTP用のデフォルトのsshdサービスを使用しており、すべてハードウェアファイアウォールの背後にあります。サーバーは2年以上うまく機能しましたが、最近接続が失われました。 。私はこれらの問題がサーバーとまったく直接的な関係ではないと思いますが、それをチームに証明するか、少なくとも私の信念が本当であるかどうかを確認する必要があります。
そのような水滴がどのように現れるかについての例は次のとおりです。クライアントは3つの別々の接続を作成し、最初の接続は成功し、ファイルのアップロード中に残りの2つの接続は失敗します。ハードウェアファイアウォールのロギングには3つの接続がすべて開いて閉じていることが示されていますが、最後の2つの接続にはサーバーが接続をリセットしたというメッセージが表示されます。サーバーを見ると/var/ログ/セキュリティそして/var/log/メッセージログファイルで最初の接続成功履歴が見つかりましたが、2番目の接続失敗履歴はまったく見つかりませんでした。
サーバーにFail2banがあり、私も確認しましたが、何もブロックされませんでした。実際、問題は複数のIPアドレスで発生し、その一部はFail2banによって完全に無視されるように設定されています。
サーバーにはSELinuxが有効になっており、auditdが有効になっていますが、ログは読みにくく非常にうるさいです(これらのログを見るためのきちんとした方法がある場合は教えてください)。
問題は1時間以内に何度も散発的に発生しますが、2〜3時間の間問題は発生しません。
私はさまざまなクライアントのためにかなり多くのサーバーを設定し、過去にこの種の問題が発生したときに私がしなければならなかったことはそのログを見るだけでしたが、今回は2つの別々のシステム(ファイアウォールとサーバー)があり、クラッシュする声明を得ましたです。今どのように進むべきかわかりません。
ネットワークトラフィックを監視し、失敗したトラフィックがサーバーに到達することを確認するために表示またはインストールできる追加のログ記録はありますか?
回答
tsharkを使用してネットワークトラフィックを監視するのはうまくいきます。
以下のコマンドを使用して、問題があることがわかっているホストからのトラフィックをフィルタリングしてキャプチャを保存しました。
tshark -i eth0 -f "host x.x.x.x" -w "capture.pcap" -F pcap
問題が再発するという報告を受け取ったら、キャプチャを停止し、結果ファイルをデスクトップに送信してWiresharkで開きます。キャプチャは、サーバーが接続をリセットしていることを示しています。次の例のキャプチャに示すように、サーバーは[RST、ACK](リセット、承認)を発行します。
2467 4501.231127 <CLEINT_IP> <SERVER_IP> TCP 66 58274 → 22 [SYN, ECE, CWR] Seq=0 Win=65535 Len=0 MSS=1460 WS=128
2468 4501.231178 <SERVER_IP> <CLEINT_IP> TCP 62 22 → 58274 [SYN, ACK] Seq=0 Ack=1 Win=29200 Len=0 MSS=1460 WS=128
2469 4501.231646 <CLEINT_IP> <SERVER_IP> TCP 60 58274 → 22 [ACK] Seq=1 Ack=1 Win=4194304 Len=0
2470 4501.231737 <CLEINT_IP> <SERVER_IP> SSHv2 85 Client: Protocol (SSH-2.0-WinSCP_release_5.15.3)
2471 4501.231750 <SERVER_IP> <CLEINT_IP> TCP 54 22 → 58274 [ACK] Seq=1 Ack=32 Win=29312 Len=0
2472 4501.232298 <SERVER_IP> <CLEINT_IP> TCP 54 22 → 58274 [RST, ACK] Seq=1 Ack=32 Win=29312 Len=0
ベストアンサー1
調査する必要がある問題の1つは、ファイアウォールがクライアントのSSHサーバーエンドポイントとして機能するのか、トラフィックを物理サーバーに透過的に転送するのかということです。
サーバーtshark
(またはグラフ)で実行し、特に失敗したセッションを参照して、クライアントおよび/またはファイアウォールで開始された接続を見つけます。wireshark
失敗したセッションへのインバウンドトラフィックが表示されない場合、ファイアウォールはそのセッションを通過できず、これが障害点です。その場合は、サーバーに問題がある可能性があります。