Tutorial ini menjelaskan beberapa skenario praktis dan berguna dalam menggunakan perintah tshark.
Anda akan memahami cara menyimpan rekaman secara otomatis ke beberapa file, menyimpan rekaman secara otomatis berdasarkan batas waktu, menentukan ukuran buffer Anda sendiri untuk pengambilan, mengekstrak bidang tertentu dari pengambilan, dan menampilkan statistik untuk protokol tertentu dari pengambilan.
1. Simpan Otomatis Tangkapan ke Beberapa File
Misalnya di server produksi Anda, Anda ingin menangkap data lalu lintas untuk jangka waktu yang lama. Anda suka menggunakan tangkapan ini nanti untuk menganalisis data.
Dalam situasi itu, alih-alih menyimpan semua output dalam satu file, Anda mungkin ingin secara otomatis memecah tangkapan menjadi beberapa file berdasarkan ukuran yang Anda tentukan.
Contoh berikut akan menangkap lalu lintas jaringan menjadi 20 file, masing-masing berukuran 100 KB, dan kemudian pengambilan akan berhenti secara otomatis.
# tshark -b filesize:100 -a files:20 -w temp.pcap Running as user "root" and group "root". This could be dangerous. Capturing on eth0 28 # ls -lrt total 12 -rw------- 1 root root 1088 Apr 10 16:02 capture_00001_20140410160213.pcap -rw------- 1 root root 1088 Apr 10 16:02 capture_00002_20140410160215.pcap
Di atas:
- -b adalah opsi penyangga dering
- filesize:100 menunjukkan bahwa ukuran maksimum file tangkapan keluaran adalah 100 KB
- files:20 menunjukkan bahwa jumlah total file output yang harus dibuat adalah 20
- -a menunjukkan berhenti otomatis
2. Simpan Otomatis Pengambilan Berdasarkan Batas Waktu
Contoh berikut akan menangkap lalu lintas jaringan ke beberapa file. Tapi, itu akan beralih ke file baru ketika ukuran file mencapai 10240 KB atau ketika 1 detik telah berlalu. Anda dapat menggunakan kondisi auto-stop yang sesuai.
# tshark -b filesize:10240 -b duration:1 -w temp.pcap Running as user "root" and group "root". This could be dangerous. Capturing on eth0 34 # ls -lrt -rw------- 1 root root 1863 Apr 10 16:13 temp_00001_20140410161312.pcap -rw------- 1 root root 1357 Apr 10 16:13 temp_00002_20140410161313.pcap -rw------- 1 root root 1476 Apr 10 16:13 temp_00003_20140410161314.pcap -rw------- 1 root root 1216 Apr 10 16:13 temp_00004_20140410161315.pcap
3. Tentukan Ukuran Buffer Tangkap
Skenario ini berguna saat Anda menghadapi paket yang jatuh selama pengambilan.
Dalam situasi tersebut, Anda dapat menentukan ukuran buffer pengambilan dalam MB menggunakan opsi -B. Ukuran tangkapan default adalah 1MB.
Ini digunakan oleh driver penangkap untuk menyangga data paket hingga data tersebut dapat ditulis ke disk. Jika Anda mengalami penurunan paket saat merekam, coba tambah ukuran ini.
# tshark -B 2 2. Running as user "root" and group "root". This could be dangerous. 3. Capturing on eth0 4. 0.000000 LannerEl_24:eb:40 -> Broadcast ARP 60 Who has 10.30.59.101? Tell 10.30.32.1 5. 0.064507 LannerEl_24:eb:40 -> Broadcast ARP 60 Who has 10.70.11.143? Tell 10.70.0.1 6. 0.067515 LannerEl_24:eb:40 -> Broadcast ARP 60 Who has 10.70.11.143? Tell 10.70.0.1 7. 0.089554 LannerEl_24:eb:40 -> Broadcast ARP 60 Who has 10.30.50.212? Tell 10.30.32.1 8. 0.183726 LannerEl_24:eb:40 -> Broadcast ARP 60 Who has 10.30.36.86? Tell 10.30.32.1
4. Tangkap Menggunakan opsi “decode as”
Skenario ini berguna ketika Anda perlu menentukan bagaimana tipe lapisan harus dibedah.
Ini sama dengan opsi "decode as" wireshark, tetapi terkadang nilai pemilih yang ditentukan berbeda dari nilai yang ada dalam paket. Misalnya, sebuah paket diameter memiliki nomor port sumber dan tujuan yang berbeda dari 3868 (nomor port default), maka Anda perlu menentukan nilai ini ke tshark agar dapat membedahnya dengan benar.
# tshark -r capture.pcap -d sctp.port==3869,diameter 82 212.059173 192.168.105.20 -> 192.168.105.30 DIAMETER 262 cmd=Capabilities-ExchangeRequest(257) flags=R--- appl=Diameter Common Messages(0) h2h=204a16 e2e=67700000 83 212.059330 192.168.105.30 -> 192.168.105.20 SCTP 62 SACK 84 212.078804 192.168.105.30 -> 192.168.105.20 DIAMETER 294 cmd=Capabilities-ExchangeAnswer(257) flags=---- appl=Diameter Common Messages(0) h2h=204a16 e2e=67700000 85 212.080569 192.168.105.30 -> 192.168.105.20 DIAMETER 146 cmd=Device-WatchdogRequest(280) flags=R--- appl=Diameter Common Messages(0) h2h=5542a29 e2e=63d00002 86 212.084960 192.168.105.20 -> 192.168.105.30 SCTP 62 SACK 87 212.084998 192.168.105.20 -> 192.168.105.30 DIAMETER 178 SACK cmd=Device-WatchdogAnswer(280) flags=---- appl=Diameter Common Messages(0) h2h=5542a29 e2e=63d00002 88 212.100324 192.168.105.30 -> 192.168.105.20 DIAMETER 146 cmd=Device-WatchdogRequest(280) flags=R--- appl=Diameter Common Messages(0) h2h=5542a2a e2e=63d00003 89 212.101629 192.168.105.20 -> 192.168.105.30 DIAMETER 178 SACK cmd=Device-WatchdogAnswer(280) flags=---- appl=Diameter Common Messages(0) h2h=5542a2a e2e=63d00003 90 212.110997 192.168.105.30 -> 192.168.105.20 SCTP 62 SACK 91 212.119855 192.168.105.30 -> 192.168.105.20 DIAMETER 146 cmd=Device-WatchdogRequest(280) flags=R--- appl=Diameter Common Messages(0) h2h=5542a2b e2e=63d00004
5. Ekstrak Bidang Tertentu
Misalnya, skenario ini berguna saat Anda ingin mengekstrak bidang tertentu dari paket protokol diameter.
Anda sudah tahu cara mengambil data untuk layanan yang berjalan pada port non-standar menggunakan perintah tshark.
Saat ini tshark mendukung opsi ini untuk beberapa set protokol.
Anda juga dapat melakukan hal yang sama menggunakan opsi -V, dan menggabungkan dengan skrip cepat atau perintah grep. Namun, metode yang ditunjukkan di bawah ini lebih cepat untuk file yang sangat besar.
# tshark -q -r capture.pcap -R diameter -z diameter,avp,257,Origin-Host Running as user "root" and group "root". This could be dangerous. frame='82' time='212.059176' src='192.168.105.20' srcport='35132' dst='192.168.105.30' dstport='3868' proto='diameter' msgnr='0' is_request='1' cmd='257' req_frame='82' ans_frame='0' resp_time='0.000000' Origin-Host='backend.eap.testbed.aaa' frame='84' time='212.078807' src='192.168.105.30' srcport='3868' dst='192.168.105.20' dstport='35132' proto='diameter' msgnr='0' is_request='0' cmd='257' req_frame='82' ans_frame='84' resp_time='0.019631' Origin-Host='gw.eap.testbed.aaa' frame='126' time='225.283773' src='192.168.105.40' srcport='2844' dst='192.168.105.30' dstport='3868' proto='diameter' msgnr='0' is_request='1' cmd='257' req_frame='126' ans_frame='0' resp_time='0.000000' Origin-Host='opendiam.eap.testbed.aaa' frame='130' time='225.295815' src='192.168.105.30' srcport='3868' dst='192.168.105.40' dstport='2844' proto='diameter' msgnr='0' is_request='0' cmd='257' req_frame='126' ans_frame='130' resp_time='0.012042' Origin-Host='gw.eap.testbed.aaa' === Diameter Summary === requset count: 2 answer count: 2 req/ans pairs: 2
6. Tampilkan Statistik untuk Protokol Tertentu
Anda juga dapat menampilkan statistik dari file yang dibuat untuk protokol tertentu.
Misalnya, berikut ini mencetak statistik dari file yang diambil untuk protokol HTTP
# tshark -q -r a.pcap -R http -z http,tree Running as user "root" and group "root". This could be dangerous. =================================================================== HTTP/Packet Counter value rate percent ------------------------------------------------------------------- Total HTTP Packets 7 0.000375 HTTP Request Packets 4 0.000214 57.14% GET 4 0.000214 100.00% HTTP Response Packets 3 0.000161 42.86% 2xx: Success 2 0.000107 66.67% 200 OK 2 0.000107 100.00% 3xx: Redirection 1 0.000054 33.33% 302 Found 1 0.000054 100.00% 5xx: Server Error 0 0.000000 0.00% Other HTTP Packets 0 0.000000 0.00%