tcpdump
ユーティリティは、ネットワークトラフィックをキャプチャして分析するために使用されます。システム管理者はこれを使用して、リアルタイムトラフィックを表示したり、出力をファイルに保存して後で分析したりできます。この3部構成の記事では、tcpdump
を使用して日常業務で使用する可能性のあるいくつかの一般的なオプションを示します。 。
パート1は、インターフェースに関する情報を収集し、キャプチャを開始するためのいくつかの基本的なトリックから始まります。
[次のこともお勧めします:Nmapを使用してネットワーク内の不正なデバイスを見つける]
1。オプション-D
tcpdump
-D
を使用 トラフィックをキャプチャできるデバイスのリストを提供します。このオプションは、どのデバイスをtcpdump
するかを識別します 知っている。このリストが表示されたら、トラフィックをキャプチャするインターフェイスを決定できます。また、以下に示すように、インターフェイスが稼働中かどうか、およびループバックインターフェイスかどうかも示されます。
# tcpdump -D
1.tun0 [Up, Running]
2.wlp0s20f3 [Up, Running]
3.lo [Up, Running, Loopback]
4.any (Pseudo-device that captures on all interfaces) [Up, Running]
5.virbr0 [Up]
6.docker0 [Up]
7.enp0s31f6 [Up]
2。オプション-cX
-c
オプションはXをキャプチャします パケットの数と停止します。それ以外の場合は、tcpdump
無期限に実行し続けます。したがって、パケットの小さなサンプルセットのみをキャプチャする場合は、このオプションを使用できます。ただし、インターフェースにアクティビティがない場合は、tcpdump
待ち続けます。
# tcpdump -c 5 -i any
dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked v1), capture size 262144 bytes
16:19:22.128996 ARP, Request who-has _gateway tell 192.168.86.81, length 28
16:19:22.130560 IP 172.217.222.189.https > kkulkarni.58810: Flags [P.], seq 3506342975:3506343029, ack 2537104576, win 377, options [nop,nop,TS val 4137065873 ecr 75405758], length 54
16:19:22.130642 IP kkulkarni.58810 > 172.217.222.189.https: Flags [.], ack 54, win 501, options [nop,nop,TS val 75422756 ecr 4137065873], length 0
16:19:22.131198 IP ovpn-3-80.rdu2.redhat.com.36380 > infoblox-trust01.intranet.prod.int.rdu2.redhat.com.domain: 53320+ PTR? 1.86.168.192.in-addr.arpa. (43)
16:19:22.131395 IP kkulkarni.53013 > ovpn-rdu2-alt.redhat.com.https: UDP, length 95
5 packets captured
49 packets received by filter
37 packets dropped by kernel
3。オプション-n
通常、名前の代わりにIPアドレスを使用すると、作業が簡単になります( kkulkarni.53013 など)。 上記の出力に示されているように。 -n
を使用できます このために。
# tcpdump -c 5 -i any -n
dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked v1), capture size 262144 bytes
16:20:21.523375 IP 172.217.9.206.https > 192.168.86.31.34288: Flags [P.], seq 723352132:723352349, ack 2124268216, win 1059, options [nop,nop,TS val 2934032467 ecr 824781066], length 217
16:20:21.563992 IP 192.168.86.31.34288 > 172.217.9.206.https: Flags [.], ack 217, win 12654, options [nop,nop,TS val 824783221 ecr 2934032467], length 0
16:20:22.956717 IP 192.168.86.83.mdns > 224.0.0.251.mdns: 0 [2q] [1au] PTR (QU)? _companion-link._tcp.local. PTR (QU)? _homekit._tcp.local. (88)
16:20:22.956839 IP 192.168.86.83.mdns > 224.0.0.251.mdns: 0*- [0q] 2/0/3 (Cache flush)
16:20:22.956932 IP6 fe80::2:8c40:fdea:5a16.mdns > ff02::fb.mdns: 0*- [0q] 2/0/3 (Cache flush) PTR local., (Cache flush) PTR local. (214)
5 packets captured
5 packets received by filter
0 packets dropped by kernel
4。オプション-s
tcpdump
-sXXX
を使用 キャプチャサイズを制御するのに役立ちます。前の出力の2行目には、キャプチャサイズが262144バイトであり、パケットよりもはるかに大きいことがわかります。 -s
を使用できます キャプチャサイズを変更します。パケットヘッダーを検査するだけの場合は、キャプチャに小さいサイズを使用できます。以下の例を参照してください:
# tcpdump -c 5 -i any -n -s64
dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked v1), capture size 64 bytes
16:24:39.909994 IP 10.22.3.80.46368 > 10.11.200.20.ldap: Flags [.], ack 2583785634, win 502, options [nop,nop,TS[|tcp]>
16:24:39.910118 IP 192.168.86.31.53013 > 66.187.232.72.https: UDP, length 76
16:24:39.981646 IP 192.168.86.111.mdns > 224.0.0.251.mdns: 0 [5a] [28q] [1n] [1au][|domain]
16:24:39.983954 IP 192.168.86.111.mdns > 224.0.0.251.mdns: 0*- [0q] 2/0/1[|domain]
16:24:40.186150 IP 192.168.86.111.mdns > 224.0.0.251.mdns: 0 [1n] [1au][|domain]
5 packets captured
6 packets received by filter
0 packets dropped by kernel
5。ポートキャプチャ
tcpdump
一部のポートXを使用しているネットワークパケットを指定できます ソースまたは宛先として。たとえば、DNSトラフィックをキャプチャするには、port 53
を使用できます。 。 ポートのプレフィックスを付けることができます srcを含むキーワード / dst src port 53
として またはdst port 53
さらにフィルタリングします。
# tcpdump -i any port 53 -n
16:49:58.979410 IP 10.22.3.80.46391 > 10.11.5.19.domain: 31741+ A? youtube.com. (29)
16:49:58.979450 IP 10.22.3.80.46391 > 10.11.5.19.domain: 4579+ AAAA? youtube.com. (29)
16:49:58.985835 IP 10.11.5.19.domain > 10.22.3.80.44202: 8898 NXDomain 0/1/0 (154)
16:49:58.986761 IP 10.22.3.80.38074 > 10.11.5.19.domain: 43241+ PTR? 31.86.168.192.in-addr.arpa. (44)
16:49:59.015164 IP 10.11.5.19.domain > 10.22.3.80.38074: 43241 NXDomain 0/1/0 (122)
16:49:59.015209 IP 10.11.5.19.domain > 10.22.3.80.46391: 4579 1/0/0 AAAA 2607:f8b0:4004:810::200e (57)
16:49:59.015231 IP 10.11.5.19.domain > 10.22.3.80.46391: 31741 1/0/0 A 172.217.15.78 (45)
16:49:59.015831 IP 10.22.3.80.51955 > 10.11.5.19.domain: 2503+ PTR? 1.122.168.192.in-addr.arpa. (44)
16:49:59.041490 IP 10.11.5.19.domain > 10.22.3.80.51955: 2503 NXDomain 0/1/0 (122)
6。オプション-w
tcpdump
の出力を書き込みたい場合 ファイルにするには、オプション-w
ファイルに書き込む。書き込まれたパッケージの数を確認する場合は、-v
を追加できます。 。
# tcpdump -c 4 -i any port 53 -w dns.pcap -v
tcpdump: data link type LINUX_SLL2
dropped privs to tcpdump
tcpdump: listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
4 packets captured
24 packets received by filter
0 packets dropped by kernel
[無料のチートシート:サーバーとネットワークを管理するためのLinuxユーティリティとコマンドのリストを入手してください。 ]
まとめ
ご覧のとおり、tcpdump
は、ネットワークトラフィックに関するデータを収集するための優れたツールです。パケットキャプチャは、トラブルシューティングとセキュリティ分析に役立つ情報を提供します。
このシリーズのパート2では、さらに6つのtcpdump
について説明します。 キャプチャされたデータの読み取り方法を含む、機能とフラグ。最後に、パート3では、情報収集のためのさらに多くのオプションを提供します。