GNU/Linux >> Belajar Linux >  >> Linux

Tutorial Perintah tcpdump Linux untuk Pemula (8 Contoh)

Setiap kali Anda membuka halaman web di komputer Anda, paket data dikirim dan diterima di antarmuka jaringan Anda. Terkadang, menganalisis paket-paket ini menjadi penting karena berbagai alasan. Untungnya, Linux menawarkan utilitas baris perintah yang membuang informasi yang terkait dengan paket data ini di output.

Dalam artikel ini, kita akan membahas dasar-dasar alat yang dimaksud - tcpdump . Namun sebelum kita melakukannya, perlu disebutkan bahwa semua contoh di sini telah diuji pada mesin Ubuntu 18.04 LTS dan pada Debian 10, tetapi ini akan bekerja pada distribusi Linux lain seperti CentOS, Fedora, Gentoo dan Arch Linux juga.

Perintah tcpdump Linux

Perintah tcpdump di Linux memungkinkan Anda membuang lalu lintas di jaringan. Berikut sintaks singkatnya:

tcpdump [OPTIONS]

Berikut sintaks detailnya:

tcpdump [ -AbdDefhHIJKlLnNOpqStuUvxX# ] [ -B buffer_size ]
               [ -c count ]
               [ -C file_size ] [ -G rotate_seconds ] [ -F file ]
               [ -i interface ] [ -j tstamp_type ] [ -m module ] [ -M secret ]
               [ --number ] [ -Q in|out|inout ]
               [ -r file ] [ -V file ] [ -s snaplen ] [ -T type ] [ -w file ]
               [ -W filecount ]
               [ -E [email protected] algo:secret,...  ]
               [ -y datalinktype ] [ -z postrotate-command ] [ -Z user ]
               [ --time-stamp-precision=tstamp_precision ]
               [ --immediate-mode ] [ --version ]
               [ expression ]

Dan inilah cara halaman manual alat menjelaskannya:

Tcpdump prints out a description of the contents of packets on a network interface that match the 
boolean expression; the description is preceded by a time stamp, printed, by default, as hours,
minutes, seconds, and fractions of a second  since  midnight.  

It can  also  be  run with the -w flag, which causes it to save the packet data to a file for
later analysis, and/or with the -r flag, which causes it to read from a saved packet file rather
than to read packets from a network interface.  It can also be run with the -V  flag,  which causes
it to read a list of saved packet files.

In all cases, only packets that match expression will be processed by tcpdump.

Berikut adalah beberapa contoh gaya Tanya Jawab yang akan memberi Anda gambaran yang lebih baik tentang cara kerja perintah tcpdump.

Q1. Bagaimana cara menggunakan tcpdump?

Sebelum menggunakan tcpdump untuk mengendus paket data, idealnya Anda harus mengetahui antarmuka jaringan mana yang Anda inginkan untuk digunakan oleh alat tersebut. Untuk daftar antarmuka jaringan yang tersedia di sistem, gunakan opsi baris perintah -D dengan tcpdump.

tcpdump -D

Begini cara halaman manual menjelaskan opsi ini:

Print the list of the network interfaces available on the system and on which tcpdump can capture 
packets. For each network interface, a number and an interface name, possibly followed by a text
description of the interface, is printed. The interface name or the number can be supplied to the
-i flag to specify an interface on which to capture.

This can be useful on systems that don't have a command to list them (e.g., Windows systems, or
UNIX systems lacking  ifconfig -a); the number can be useful on Windows 2000 and later systems,
where the interface name is a somewhat complex string.

The  -D  flag  will not be supported if tcpdump was built with an older version of libpcap that
lacks the pcap_findalldevs() function.

Misalnya, dalam kasus saya, output berikut dihasilkan:

1.wlx18a6f713679b [Up, Running]
2.any (Pseudo-device that captures on all interfaces) [Up, Running]
3.lo [Up, Running, Loopback]
4.enp3s0 [Up]
5.nflog (Linux netfilter log (NFLOG) interface)
6.nfqueue (Linux netfilter queue (NFQUEUE) interface)
7.usbmon1 (USB bus number 1)
8.usbmon2 (USB bus number 2)
9.usbmon3 (USB bus number 3)
10.usbmon4 (USB bus number 4)

Sekarang setelah Anda memiliki daftar antarmuka, Anda dapat memilih satu, dan meneruskan namanya sebagai input ke opsi baris perintah -i dari tcpdump. Misalnya:

tcpdump -i wlx18a6f713679b

Berikut ini adalah bagian dari output yang dihasilkan oleh perintah ini dalam kasus saya:

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wlx18a6f713679b, link-type EN10MB (Ethernet), capture size 262144 bytes
11:53:11.408964 IP 192.168.2.132.52898 > 239.255.255.250.3702: UDP, length 656
11:53:11.409492 IP himanshu.57383 > one.one.one.one.domain: 8572+ [1au] PTR? 250.255.255.239.in-addr.arpa. (57)
11:53:11.409588 IP 192.168.2.140.49690 > 239.255.255.250.1900: UDP, length 174
11:53:11.409954 IP 192.168.2.147.mdns > 224.0.0.251.mdns: 1 [2q] PTR (QU)? _%9E5E7C8F47989526C9BCD95D24084F6F0B27C5ED._sub._googlecast._tcp.local. PTR (QU)? _googlecast._tcp.local. (94)
11:53:11.499220 IP one.one.one.one.domain > himanshu.57383: 8572 NXDomain 0/1/1 (114)
11:53:11.499950 IP himanshu.34201 > one.one.one.one.domain: 12068+ [1au] PTR? 132.2.168.192.in-addr.arpa. (55)
11:53:11.591291 IP one.one.one.one.domain > himanshu.34201: 12068 NXDomain* 0/1/2 (278)
11:53:11.592195 IP himanshu.55501 > one.one.one.one.domain: 31630+ [1au] PTR? 1.1.1.1.in-addr.arpa. (49)
11:53:11.842603 IP himanshu.57253 > one.one.one.one.domain: 16905+ [1au] PTR? 140.2.168.192.in-addr.arpa. (55)
11:53:11.951226 IP himanshu.52662 > one.one.one.one.domain: 52377+ [1au] PTR? 251.0.0.224.in-addr.arpa. (53)
11:53:12.428931 IP 192.168.2.140.49690 > 239.255.255.250.1900: UDP, length 174
11:53:12.437905 IP 192.168.2.147.mdns > 224.0.0.251.mdns: 2 [2q] PTR (QM)? _%9E5E7C8F47989526C9BCD95D24084F6F0B27C5ED._sub._googlecast._tcp.local. PTR (QM)? _googlecast._tcp.local. (94)
11:53:12.438730 IP6 fe80::eccc:59f2:fc78:9e07.52899 > ff02::c.3702: UDP, length 656
11:53:12.439017 IP himanshu.33194 > one.one.one.one.domain: 15679+ [1au] PTR? c.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.f.f.ip6.arpa. (101)
11:53:12.572386 IP one.one.one.one.domain > himanshu.33194: 15679 NXDomain 0/1/1 (165)
11:53:12.642129 IP 192.168.2.11.mdns > 224.0.0.251.mdns: 0*- [0q] 1/0/3 PTR Google-Home-Mini-e3a3ae72a03e3d1c60d24653d4666ca6._googlecast._tcp.local. (356)
...
...

Q2. Bagaimana cara membuat tcpdump keluar setelah menerima sejumlah paket?

Ini dapat dicapai dengan menggunakan opsi baris perintah -c. Misalnya, jika Anda ingin tcpdump hanya menampilkan informasi yang terkait dengan 10 paket, Anda dapat melakukannya dengan cara berikut:

tcpdump -c 10

Misalnya, dalam kasus saya, saya menjalankan perintah berikut:

tcpdump -c 10 -i wlx18a6f713679b

Berikut adalah output yang dihasilkan:

Jadi Anda dapat melihat 10 paket yang diambil.

Q3. Bagaimana cara membuat tcpdump menampilkan tajuk level tautan di output?

Ini dapat dilakukan dengan menggunakan opsi baris perintah -e. Misalnya:

tcpdump -e -i wlx18a6f713679b

Dan inilah output yang dihasilkan:

listening on wlx18a6f713679b, link-type EN10MB (Ethernet), capture size 262144 bytes
12:14:07.951396 3c:a8:2a:a7:7b:c1 (oui Unknown) > Broadcast, ethertype IPv4 (0x0800), length 197: 192.168.2.55.17500 > 255.255.255.255.17500: UDP, length 155
12:14:07.952111 3c:a8:2a:a7:7b:c1 (oui Unknown) > Broadcast, ethertype IPv4 (0x0800), length 197: 192.168.2.55.17500 > 192.168.2.255.17500: UDP, length 155
...
...

Jadi Anda dapat melihat bahwa tajuk tingkat tautan diproduksi di output.

Q4. Bagaimana cara membuat tcpdump menampilkan alamat IP asing secara numerik?

Ini dapat dicapai dengan menggunakan opsi baris perintah -f.

tcpdump -f -i [INTERFACE]

Membuat tcpdump menampilkan alamat IPv4 `asing'  secara numerik daripada simbolis memiliki keuntungan dalam situasi tertentu. Salah satu contohnya disebutkan di halaman manual alat:

this option is intended to get around serious brain damage in Sun's NIS server — usually it hangs 
forever translating non-local internet numbers

Q5. Bagaimana membuat tcpdump menghasilkan nomor paket dalam output?

Untuk membuat tcpdump menghasilkan nomor paket dalam output, gunakan --number opsi baris perintah.

Misalnya, saya menjalankan perintah berikut:

tcpdump --number -i wlx18a6f713679b

Dan inilah bagian dari output yang dihasilkan:

listening on wlx18a6f713679b, link-type EN10MB (Ethernet), capture size 262144 bytes
    1  12:38:35.522944 ARP, Request who-has 192.168.2.196 tell _gateway, length 46
    2  12:38:35.523265 IP6 fe80::8ab4:a6ff:fe9d:a6bb > ff02::16: HBH ICMP6, multicast listener report v2, 1 group record(s), length 28
    3  12:38:35.523578 IP6 fe80::8ab4:a6ff:fe9d:a6bb > ip6-allrouters: ICMP6, router solicitation, length 16
    4  12:38:35.523861 ARP, Request who-has 192.168.2.15 tell 192.168.2.170, length 28
...
...
...

Jadi Anda bisa melihat setiap baris sekarang dimulai dengan angka.

Q6. Bagaimana cara membuat hasil cetak tcpdump lebih pendek?

Ini dapat dilakukan dengan menggunakan opsi baris perintah -q. Begini cara halaman manual alat menjelaskannya:

Quick (quiet?) output.  Print less protocol information so output lines are shorter.

Berikut adalah contoh opsi ini:

Jadi Anda dapat melihat lebih sedikit informasi yang dihasilkan dalam output kali ini.

Q7. Bagaimana cara menghilangkan info cap waktu dari keluaran tcpdump?

Gunakan opsi baris perintah -t untuk ini. Berikut contoh perintahnya:

tcpdump -t -i wlx18a6f713679b

Dan berikut adalah outputnya:

listening on wlx18a6f713679b, link-type EN10MB (Ethernet), capture size 262144 bytes
IP himanshu.56992 > mails11.telegram.org.https: Flags [.], ack 3090054317, win 965, options [nop,nop,TS val 226976758 ecr 3781653930], length 0
IP himanshu.41122 > one.one.one.one.domain: 12755+ [1au] PTR? 22.171.154.149.in-addr.arpa. (56)
IP mails11.telegram.org.https > himanshu.56824: Flags [.], ack 273652159, win 1001, options [nop,nop,TS val 3781656472 ecr 226966324], length 0
ARP, Request who-has 192.168.2.48 tell _gateway, length 46
ARP, Request who-has 192.168.2.135 tell _gateway, length 46
...
...

Jadi Anda dapat melihat informasi stempel waktu (yang umumnya di awal setiap baris) tidak ada di keluaran sekarang.

Q8. Bagaimana membuat tcpdump menghasilkan output yang detail?

Anda dapat menggunakan opsi baris perintah -v dalam kasus ini. Berikut adalah cara halaman manual alat menjelaskan opsi ini:

tcpdump -v -i [INTERFACE]
When parsing and printing, produce (slightly more) verbose output. For example, the time to live,
identification, total length and options in an IP packet are printed. Also enables additional
packet integrity checks such as verifying the IP and ICMP header checksum.

When writing to a file with the -w option, report, every 10 seconds, the number of packets captured

Kesimpulan

Kami baru saja menggores permukaan di sini karena perintah tcpdump menawarkan banyak opsi baris perintah. Setelah selesai mempraktikkannya, Anda dapat menuju ke halaman manual alat untuk mempelajari lebih lanjut tentangnya.


Linux
  1. Tutorial perintah cd Linux untuk pemula (8 Contoh)

  2. Tutorial Perintah Tanggal Linux untuk Pemula (8 Contoh)

  3. Tutorial Perintah Hostname Linux untuk Pemula (5 Contoh)

  1. Tutorial perintah comm Linux untuk pemula (5 contoh)

  2. Tutorial Perintah Linux df untuk Pemula (8 Contoh)

  3. Tutorial Perintah Linux du untuk Pemula (10 Contoh)

  1. Tutorial Perintah gema Linux untuk Pemula (5 Contoh)

  2. Tutorial Perintah Linux env Untuk Pemula (5 Contoh)

  3. Tutorial Perintah ukuran Linux untuk Pemula (6 Contoh)