SSH経由のtcpdumpトラフィック - しかし、ルートSSHアクセスはありません

SSH経由のtcpdumpトラフィック - しかし、ルートSSHアクセスはありません

状態

Wiresharkを使用してサーバーの1つのトラフィックを分析したいのですが、サーバー自体にWiresharkをインストールしたくありません。理解できます。パイプ tcpdump トラフィックWiresharkがインストールされているローカルコンピュータ(Ubuntu)にSSH経由で接続します。

質問

ルートアカウントが無効になっているため、サーバーにログインできません。 sudo権限があり、sudo tcpdumpサーバーにログインした後、コマンドは機能しません。次のコマンド(sudoを含むまたは除く)は機能しません。

$ ssh [email protected] "sudo tcpdump -s 0 -U -n -w - -i eth0 not port 22" > /tmp/remote

質問

動作させる方法はありますか?それでは、どうすればいいですか?

答え1

このコマンドがないと、sudoデバイスをキャプチャする権限がありません。

tcpdump: eth0: このデバイスでキャプチャする権限がありません。

ただし、sudoこれを使用して後で実行すると、リモートサーバーからパスワード入力を取得できないため、解決ssh策は()を使用して次のようにパスワードをパイプすることです。sudo-Sman sudosudo

ssh [email protected] "echo sudo_password | sudo -S tcpdump -s 0 -U -n -w - -i eth0 not port 22" > /tmp/remote"

一方、これは自動化に適しており、sudoパスワードプロンプトを受け取る必要はなく、完全に自動化されたコード/スクリプトを追加できますsshpass -p password ssh...

ただし、サーバーでは、sshセッション中に公開テキストとして提供されるsudoパスワードを他の人が簡単に読み取ることができるため、セキュリティの面ではお勧めできません。それでは、必ず持ってsudo安全にssh使用してくださいssh -t

たとえば、-tパイピングはできませんが、-Sを使用してパスワードをエコーすることは可能です。ssh "sudo command"| commandssh -t server "cd path/to/directory && sudo"|grep "text"ssh server 'echo password | sudo -S ls -l'| grep 'a'

答え2

サーバーでsudoを介してこのコマンドを実行して、最初にデータをキャプチャしてから、結果ファイルをワークステーションに戻してデータを表示できます。

sudo tcpdump -i eth0 -s 65535 -w /tmp/wireshark

関連情報