私のサーバーはトークンを使用して特定のAPIに対してカールコマンドを発行します。たとえば、
curl --header "Private-Token: aaaaaaaaaaaaaa" http://mysite.example.com/api/v4/any
tcpdump
特定のトークンを使用してこのAPIに対するすべてのリクエストをキャプチャできますか?それでは、どうすればいいですか?他のアイデアも素晴らしいです。
ベストアンサー1
HTTP トラフィックを聞き、tcpdump
実際のパケットの内容を表示するには、次のコマンドを使用できます。
sudo tcpdump -X -s 1500 "port 80 and host mysite.example.com"
ただし、データフィルタリングは特定のパケット位置でのみ実行できtcpdump
、この場合は不可能です。
したがって、次のようにngrep
聞くこともできます。ワイヤーネットワークインタフェースの特定の文字列データを使用します。
sudo ngrep -q "Private-Token: aaaaaaaaaaaaaa" "port 80 and host mysite.example.com"
実際のホスト/ポートフィルタについては、tcpdump
/ BPFフィルタの簡単な概要を参照してください。TCPDUMP式
また、wireshark
@StephenHarrisの推薦はグラフィカルなインターフェースを持っているので素晴らしいです。tcpdump
後で使用できるようにファイルに生データを書き込むには、wireshark
次のようにします。
sudo tcpdump -X -s 1500 "port 80 and host mysite.example.com" -w mycapture.pcap
キャプチャーアプリケーションレベルのパケット要求を使用することもできますsysdig
。 (テストなしで答えを確信できない)
sudo sysdig -s 2000 -A -c echo_fds fd.port=80 and evt.buffer contains "Private-Token: aaaaaaaaaaaaaa"