web-dev-qa-db-ja.com

tcpdumpを使用して、ルーターサーバーを通過するすべてのネットワークアクティビティをログに記録します

自宅のデバイス(ラップトップ、電話など)と外界との間のすべてのネットワーク通信のログを次の形式で収集したいと思います。

Timestamp / Device MAC Address / Source IP:Port / Destination IP:Port / Protocol (Internet/Transport Layers) / Amount of data in bytes

アイデアは、ロギング専用の物理Linuxボックス(「ロギングサーバー」)をセットアップし、その上でtcpdumpを実行することです。

Internet ⟺ Logging Server ⟺ Wi-Fi/Ethernet Switch ⟺ Devices

(ボックスには、インターネット接続用とローカルスイッチ用の2つのイーサネットインターフェイスがあります)。

ログファイルの処理(ローテーション、解析、レポートツールへのフィード)を担当していると仮定すると、tcpdumpコマンドはどのようになりますか?

明確にするために、この質問はmanページを掘り下げることで回答できる可能性が最も高いことを知っています。 tcpdumpに関する誰かの豊富な経験を利用して、時間を節約し、よくある間違いなどを回避したいと思います。

P. S.これの主な目的は、潜在的に存在するバックドアまたはその他の望ましくない/予期しないネットワークアクティビティを監視/調査することです。

2
Greendrake

tcpdump -n -e -q -i any

と:

  • -n:アドレスを名前に変換しません(これにより、tcpdumpがDNSの逆ルックアップを実行するのを防ぐことができます)
  • -e:各ダンプ行(特にMACアドレス)にリンクレベルのヘッダーを出力します。これを-i anyと組み合わせて使用​​します。これは、着信/発信ネットワークインターフェイスを再決定するために必要になります。
  • -q:出力行が短くなるように、出力するプロトコル情報が少なくなります
  • -i anyanyキーワードを使用して、すべてのインターフェースからパケットをキャプチャできます

上記のコマンドで指定された長さはペイロードの長さであることに注意してください。パケット長も必要な場合は、「-q」オプションを削除してください。

3
Gohu