Tcpdumpでパケットキャプチャします。
記事の目次
Tcpdumpコマンドをインストールする!
tcpdumpコマンドは、通常インストールされていますが、インストールされていない場合は、標準のリポジトリからインストールします。
RHELにtcpdumpをインストールする!
RHELの標準のリポジトリからtcpdumpをインストールします。
$ apt install tcpdump -y
Ubuntuにtcpdumpをインストールする!
Ubuntuの標準のリポジトリからtcpdumpをインストールします。
$ sudo dnf install tcpdump -y
オプション無しでパケットキャプチャする!
オプション無しで実行するとパケットキャプチャが開始されます。
$ sudo tcpdump -c 3 dropped privs to tcpdump tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on enp0s3, link-type EN10MB (Ethernet), capture size 262144 bytes 23:34:52.240086 IP vmsrhe11.loc.lab4ict.com.ssh > dpc001p1.loc.lab4ict.com.42458: Flags [P.], seq 3300802189:3300802409, ack 3425287912, win 341, options [nop,nop,TS val 3589715395 ecr 864891819], length 220 23:34:52.240288 IP dpc001p1.loc.lab4ict.com.42458 > vmsrhe11.loc.lab4ict.com.ssh: Flags [.], ack 220, win 12379, options [nop,nop,TS val 864891842 ecr 3589715395], length 0 23:34:52.240798 IP vmsrhe11.loc.lab4ict.com.ssh > dpc001p1.loc.lab4ict.com.42458: Flags [P.], seq 220:640, ack 1, win 34 ...
パケット数を指定してキャプチャする!
「-c」オプションでキャプチャするパケット数を指定できます。
$ sudo tcpdump -c 3 dropped privs to tcpdump tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on enp0s3, link-type EN10MB (Ethernet), capture size 262144 bytes 23:37:11.857975 IP vmsrhe11.loc.lab4ict.com.ssh > dpc001p1.loc.lab4ict.com.42458: Flags [P.], seq 3300803665:3300803885, ack 3425288668, win 341, options [nop,nop,TS val 3589855013 ecr 865031439], length 220 23:37:11.858197 IP dpc001p1.loc.lab4ict.com.42458 > vmsrhe11.loc.lab4ict.com.ssh: Flags [.], ack 220, win 12379, options [nop,nop,TS val 865031464 ecr 3589855013], length 0 23:37:11.858888 IP vmsrhe11.loc.lab4ict.com.ssh > dpc001p1.loc.lab4ict.com.42458: Flags [P.], seq 220:640, ack 1, win 341, options [nop,nop,TS val 3589855014 ecr 865031464], length 420 3 packets captured 4 packets received by filter 0 packets dropped by kernel
パケットの内容をASCII表示します!
「-A」オプションを使用すると、パケットの内容がASCIIで表示されます。
$ sudo tcpdump -c 3 -A dropped privs to tcpdump tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on enp0s3, link-type EN10MB (Ethernet), capture size 262144 bytes 23:38:34.058142 IP vmsrhe11.loc.lab4ict.com.ssh > dpc001p1.loc.lab4ict.com.42458: Flags [P.], seq 3300805169:3300805389, ack 3425289300, win 341, options [nop,nop,TS val 3589937213 ecr 865113641], length 220 EH....@.@.M. ... .........J1.).T...U"...... ...=3..).8FB.3.]~C.....|~........V..5....|%..Sc......:M....yya.YO..j..:q...3j#7....J.b...<..3..iU.B{.{s ....d9+[.%$~#..0.2...A......XHR....)..]....c}5..m|....T_.l...q.\..A<zu...x.Q..',7.z......N.]..l)*...Gb..;......|..S]2.."..|> 23:38:34.058302 IP dpc001p1.loc.lab4ict.com.42458 > vmsrhe11.loc.lab4ict.com.ssh: Flags [.], ack 220, win 12379, options [nop,nop,TS val 865113666 ecr 3589937213], length 0 E..4j.@.@... ... ........).T..K...0['...... 3..B...= 23:38:34.058896 IP vmsrhe11.loc.lab4ict.com.ssh > dpc001p1.loc.lab4ict.com.42458: Flags [P.], seq 220:976, ack 1, win 341, options [nop,nop,TS val 3589937214 ecr 865113666], length 756 EH.(..@.@.K. ... .........K..).T...U$(..... ...>3..BW....h..N......:.....!y..1.h...... .1.~@..S...h0.....i..:G._......H.........m.q..]J....J.L.+.....D. ..}........w.0.."...B..........I.....S.r$......&..0..1..........^......%...g.1V...V....F...!..Nk%..X.h_/$.......6A....D)...7]s_:p...U..,....8F.....................rwGPR.<#...(.U..Yq.8...r. .....w......tr"...k~;.tC..I|..:.....E..].I^..}.....$.l....v7."D.x.b.....>>d.D.D..v.V.....0.d...\......O.G...u..5...K. ~ni......j...V..r..C.[...._..:..n.4...bF.W.$.....i...)h.A...($......{.^..I..JJp........L!C....jpT0Rq...2...tRVYa.XX...Y>u0"....o....l......I..EX1\...yK.+.A..\z..f"..%<.zz..U....S.p<.Q..... .(>.s;;......V..y..=..4q...!.(i.n.... *R.....CW d.. .x....E..S..9...*......6..`M...... :u.....o.~.."\...5a#1......i...C5..UIK...[.Z..!m2....m,....-KZ..u==..S6(k 3 packets captured 4 packets received by filter 0 packets dropped by kernel
パケットの内容をHEX表示する!
「-x」オプションを使用すると、パケットの内容がHEXで表示されます。
$ sudo tcpdump -c 3 -x dropped privs to tcpdump tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on enp0s3, link-type EN10MB (Ethernet), capture size 262144 bytes 23:40:14.700071 IP vmsrhe11.loc.lab4ict.com.ssh > dpc001p1.loc.lab4ict.com.42458: Flags [P.], seq 3300807773:3300807993, ack 3425289920, win 341, options [nop,nop,TS val 3590037855 ecr 865214282], length 220 0x0000: 4548 0110 cab6 4000 4006 4ddc 0a01 0c0b 0x0010: 0a01 0101 0016 a5da c4be 545d cc29 c6c0 0x0020: 8018 0155 2210 0000 0101 080a d5fb a15f 0x0030: 3392 1f4a 43c4 92b2 6a37 aec3 9edb c69b 0x0040: fcee d1ea 8b35 673c 71c2 f500 22d3 9133 ...
名前解決をしないようにする!
「-n」オプションを使用すると名前解決がされず、ホスト名が必ずIPアドレスで表示されいます。
$ sudo tcpdump -c 3 -n dropped privs to tcpdump tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on enp0s3, link-type EN10MB (Ethernet), capture size 262144 bytes 23:43:28.337891 IP 10.1.12.11.ssh > 10.1.1.1.42458: Flags [P.], seq 3300815385:3300815605, ack 3425291008, win 341, options [nop,nop,TS val 3590231493 ecr 865407922], length 220 23:43:28.338105 IP 10.1.1.1.42458 > 10.1.12.11.ssh: Flags [.], ack 220, win 12470, options [nop,nop,TS val 865407947 ecr 3590231493], length 0 23:43:28.338598 IP 10.1.12.11.ssh > 10.1.1.1.42458: Flags [P.], seq 220:584, ack 1, win 341, options [nop,nop,TS val 3590231493 ecr 865407947], length 364 3 packets captured 3 packets received by filter 0 packets dropped by kernel
名前解決をしないようにする!
「-nn」オプションを使用すると、ポート番号がサービス名ではなく必ず数字で表示されます。
$ sudo tcpdump -c 3 -nn dropped privs to tcpdump tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on enp0s3, link-type EN10MB (Ethernet), capture size 262144 bytes 23:44:35.883274 IP 10.1.12.11.22 > 10.1.1.1.42458: Flags [P.], seq 3300817001:3300817221, ack 3425291568, win 341, options [nop,nop,TS val 3590299038 ecr 865475474], length 220 23:44:35.883515 IP 10.1.1.1.42458 > 10.1.12.11.22: Flags [.], ack 220, win 12470, options [nop,nop,TS val 865475492 ecr 3590299038], length 0 23:44:35.883961 IP 10.1.12.11.22 > 10.1.1.1.42458: Flags [P.], seq 220:576, ack 1, win 341, options [nop,nop,TS val 3590299039 ecr 865475492], length 356 3 packets captured 4 packets received by filter 0 packets dropped by kernel
詳細を表示する!
「-v」オプションを使用すると、省略されていた情報が表示されるようになります。
$ sudo tcpdump -c 3 -nn -v dropped privs to tcpdump tcpdump: listening on enp0s3, link-type EN10MB (Ethernet), capture size 262144 bytes 23:47:21.740595 IP (tos 0x48, ttl 64, id 51967, offset 0, flags [DF], proto TCP (6), length 200) 10.1.12.11.22 > 10.1.1.1.42458: Flags [P.], cksum 0x21c8 (incorrect -> 0xac9f), seq 3300818581:3300818729, ack 3425292588, win 341, options [nop,nop,TS val 3590464895 ecr 865641328], length 148 23:47:21.740784 IP (tos 0x10, ttl 64, id 27494, offset 0, flags [DF], proto TCP (6), length 52) 10.1.1.1.42458 > 10.1.12.11.22: Flags [.], cksum 0xcb2c (correct), ack 148, win 12470, options [nop,nop,TS val 865641347 ecr 3590464895], length 0 23:47:21.741340 IP (tos 0x48, ttl 64, id 51968, offset 0, flags [DF], proto TCP (6), length 632) 10.1.12.11.22 > 10.1.1.1.42458: Flags [P.], cksum 0x2378 (incorrect -> 0x7ad5), seq 148:728, ack 1, win 341, options [nop,nop,TS val 3590464896 ecr 865641347], length 580 3 packets captured 4 packets received by filter 0 packets dropped by kernel
「-vv」オプションを使用すると、さらに詳細な情報が表示されるようになります。
$ sudo tcpdump -c 3 -nn -vv dropped privs to tcpdump tcpdump: listening on enp0s3, link-type EN10MB (Ethernet), capture size 262144 bytes 23:48:08.587880 IP (tos 0x48, ttl 64, id 51980, offset 0, flags [DF], proto TCP (6), length 200) 10.1.12.11.22 > 10.1.1.1.42458: Flags [P.], cksum 0x21c8 (incorrect -> 0x0c27), seq 3300820105:3300820253, ack 3425293000, win 341, options [nop,nop,TS val 3590511743 ecr 865688176], length 148 23:48:08.588021 IP (tos 0x10, ttl 64, id 27516, offset 0, flags [DF], proto TCP (6), length 52) 10.1.1.1.42458 > 10.1.12.11.22: Flags [.], cksum 0x559c (correct), seq 1, ack 148, win 12470, options [nop,nop,TS val 865688194 ecr 3590511743], length 0 23:48:08.588507 IP (tos 0x48, ttl 64, id 51981, offset 0, flags [DF], proto TCP (6), length 640) 10.1.12.11.22 > 10.1.1.1.42458: Flags [P.], cksum 0x2380 (incorrect -> 0xa5ab), seq 148:736, ack 1, win 341, options [nop,nop,TS val 3590511743 ecr 865688194], length 588 3 packets captured 4 packets received by filter 0 packets dropped by kernel
おわりに
tcpdumpでは、様々な表示形式が指定できるので、必要なオプションをあらかじめ整理しておきましょう。
関連記事