tcpdump コマンド

LINUX よく使うサーバー管理コマンド

tcpdump コマンド パケットをキャプチャする
書式
tcpdump   [オプション]
tcpdump コマンドはLinux でパケットをキャプチャする時に利用します。
tcpdump のみを実行するだけで、キャプチャされたパケットが表示されます。
tcpdump コマンドを終了するには、「Ctrl」+「c」キーを入力します
よく使うオプション
-l    ファイルの詳細を表示する
-t    ファイルをタイムスタンプ順にソート(昇順)する
-lt   ファイルの詳細をタイムスタンプ順にソートして表示する
-lrt  ファイルの詳細をタイムスタンプ順に逆ソートして表示する
使用例・・・”eno1″というNICを指定してキャプチャ
$ su –  ← スーパーユーザーrootになる
Password:  rootパスワード入力
#  tcpdump -i eno1

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eno1, link-type EN10MB (Ethernet), capture size 65535 bytes
12:42:23.855066 IP host1 > centos7: ICMP echo request, id 1, seq 4799, length 40
12:42:23.855102 IP centos7 > host1: ICMP echo reply, id 1, seq 4799, length 40
使用例・・・インターフェイス指定せず、全インターフェイスでキャプチャ : -i any
どこのインターフェイスに来るかわからないような場面で使います。
$ su –  ← スーパーユーザーrootになる
Password:  rootパスワード入力
#  tcpdump -i any

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
12:21:52.503097 IP centos7.ssh > host1.53698: Flags [P.], seq 21799904:21800144, ack 3372923732, win 162, length 240
12:21:52.504631 IP host1.53698 > centos7.ssh: Flags [.], ack 240, win 251, length 0
使用例・・・ホスト名ではなくIPアドレスで表示 : -n
192.168.0.2のSSHサーバへのパケットキャプチャ
$ su –  ← スーパーユーザーrootになる
Password:  rootパスワード入力
# tcpdump -i eno1 -n

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eno1, link-type EN10MB (Ethernet), capture size 65535 bytes
12:44:36.104944 IP 192.168.0.1.59616 > 192.168.0.2.ssh: Flags [S], seq 1255080635, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
12:44:36.104978 IP 192.168.0.2.ssh > 192.168.0.1.59616: Flags [R.], seq 0, ack 1255080636, win 0, length 0
使用例・・・MACアドレスを表示 : -e
パケットの中身を16進数のビット列で表示
$ su –  ← スーパーユーザーrootになる
Password:  rootパスワード入力
# tcpdump -i eno1 -x

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on en01, link-type EN10MB (Ethernet), capture size 65535 bytes
12:32:24.299568 IP centos7.ssh > host1.53698: Flags [P.], seq 22627408:22627648, ack 3372954644, win 162, length 240
        0x0000:  4510 0118 99a2 4000 4006 def8 0afe a12d
        0x0010:  0ae9 0a21 0390 d1c2 0159 4450 c90b 3414
        0x0020:  5018 00a2 c23f 0000 111b 62b5 2365 8eb8
        0x0030:  2622 4c74 6f48 7378 b9e2 1914 1e89 9275
        0x0040:  259b bb94 366f 31d6 14db 55c6 350e b056
        0x0050:  10e5 0f93 2816 c9b9 e710 52d8 9fc9 0aaf
使用例・・・プロトコルを指定 : -p “プロトコル名”
表示したいプロトコルを指定します。プロトコル名には ip/arp/icmp/tcp/udp などが指定できます。
$ su –  ← スーパーユーザーrootになる
Password:  rootパスワード入力
#  tcpdump -i eno1 -p icmp

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eno1, link-type EN10MB (Ethernet), capture size 65535 bytes
12:36:27.355676 IP  host1 > centos7: ICMP echo request, id 2, seq 24653, length 40
12:36:27.355754 IP centos7 >  host1: ICMP echo reply, id 2, seq 24653, length 40
使用例・・・IPアドレスを指定 : host “IPアドレス”
表示したいIPアドレスを指定します。hostで指定した場合、送信元/宛先のどちらかに指定ホストが入れば表示されます
$ su –  ← スーパーユーザーrootになる
Password:  rootパスワード入力
#  tcpdump -i eno1 host 192.168.0.2

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eno1, link-type EN10MB (Ethernet), capture size 65535 bytes
12:40:32.324676 IP 192.168.0.2 > centos7: ICMP echo request, id 2, seq 24653, length 40
12:40:32.367754 IP centos7 > 192.168.0.2: ICMP echo reply, id 2, seq 24653, length 40
使用例・・・宛先IPアドレスを指定 : dst “IPアドレス”
表示したいIPアドレスを指定します。宛先のみに指定ホストが入れば表示されます。
$ su –  ← スーパーユーザーrootになる
Password:  rootパスワード入力
#  tcpdump -i eno1 dst 192.168.0.2

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eno1, link-type EN10MB (Ethernet), capture size 65535 bytes
12:40:32.367754 IP centos7 > 192.168.0.2: ICMP echo reply, id 2, seq 24653, length 40
使用例・・・ポート番号を指定 : port “ポート番号”
表示したいポート番号を指定します。デフォルトではtcp、udp共通です。また送信元/宛先も両方共表示されます。またウェルノウンなポート番号(SSHなら22、HTTPなら80など)ならプロトコル名でもOKです。
$ su –  ← スーパーユーザーrootになる
Password:  rootパスワード入力
#  tcpdump -i eno1 port 22

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eno1, link-type EN10MB (Ethernet), capture size 65535 bytes
12:51:51.475653 IP centos7.ssh > host1.53698: Flags [P.], seq 23108672:23108912, ack 3372973860, win 162, length 240
12:51:51.476882 IP host1.53698 > centos7.ssh: Flags [.], ack 240, win 254, length 0
# tcpdump -i eno1 port ssh
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eno1, link-type EN10MB (Ethernet), capture size 65535 bytes
12:51:55.193812 IP centos7.ssh > host1.53698: Flags [P.], seq 23108692:23109912, ack 3372973811, win 162, length 240
12:51:55.193832 IP host1.53698 > centos7.ssh: Flags [.], ack 240, win 254, length 0
タイトルとURLをコピーしました