私が使用している1台のサーバーのグラフは、数日前に開始された7.5 kb/sの発信ネットワークトラフィックの一貫性を示しています。
このトラフィックを監視/ログ/キャプチャ/分析して、それが何であるか、どこから来てどこに行くのかを確認するにはどうすればよいですか?
サーバーは、Linux Debian Lennyを実行するLinode(linode.comでホスト)です。
Linux用のコマンドラインhttpスニファーはありますか?
tshark
をご覧ください。
それはwiresharkに似ていますが、コマンドライン用です。 apt-getでインストールしてください。
使い方のチュートリアルは here にあります。これを使用すると、httpを簡単にフィルタリングできます。
Httpトラフィックをキャプチャするには:
tshark -R "tcp.port == 80" -r /tmp/capture.cap
ポート80がhttpポートの場合。ポートがわからない場合は、すべてをキャプチャするだけで、後でhttp用にフィルタリングできます。キャプチャ中のhttpのフィルタリングはできません。
justniffer を使用できます。これは、Apacheログ形式でネットワークトラフィックを記録するクールなhttpスニファーです。
スニファー
コマンドラインスニファの場合は、 tcpdump を実行します。これは、サーバー自体または同じネットワークセグメント内の別のコンピューターから実行できます。
パケットをキャプチャします。 Ctrl-Cでキャプチャを停止します(ある時点でキャプチャを停止することを忘れないでください...):
tcpdump -w test.pcap -i eth0
次に、ファイルを読み取ります。
tcpdump -r test.pcap
Wireshark は、素晴らしいGUIとより多くの分析ツールを提供しますが、tcpdumpのように機能します。
データを送信するプログラム
また、netstatまたはlsofを実行して、サーバーがアクティブに接続しているもの、および接続を開始したローカルプロセスを確認することもできます。
それらを開いたプログラム名を含むすべてのTCPポート:
netstat -pat
開いているすべてのインターネットポートを一覧表示します。
lsof -i
Bro 非標準ポート上のトラフィックを検出します。他のツールとは異なり、ネットワークのアドレス空間を指定すると、受信トラフィックと送信トラフィックの概念が含まれます。
bro -r trace.pcap local "Site::local_nets += { 1.2.3.0/24, 5.6.7.0/24 }"
開始方法の詳細については クイックスタートガイド を参照してください。デフォルトの引数でBroを実行する、つまり、
bro -i <interface>
現在のディレクトリにすでにさまざまなログファイルを作成します。接続ログ(conn.log
)、たとえば次の行に沿ったエントリが含まれています。
# ts uid orig_h orig_p resp_h resp_p
1311627961.8 HSH4uV8KVJg 192.168.1.100 52303 192.150.187.43 80
これらは、使用可能な列のサブセットにすぎません。ログファイルは、awk
や友達と簡単に処理できるように設計されています。たとえば、サービスごとの接続の内訳を確認するには:
bro-cut service < conn.log | sort | uniq -c
これやその他の迅速な分析により、ネットワークで何が起こっているのかがすぐにわかります。
別のオプションはiptrafツールです-それは素晴らしいです。すばやく簡単。
%sudo iptraf
Dsniffパッケージには多くのツールがあります( http://www.monkey.org/~dugsong/dsniff/ )urlsnarfなどを参照してください。