tcpdump
tcpdump
, ağ arayüzleri üzerinden geçen paketleri yakalamak, görüntülemek ve analiz etmek için kullanılan güçlü bir komut satırı paket çözümleyicisidir (packet sniffer/analyzer). Ağ sorunlarını giderme, protokol davranışlarını anlama ve güvenlik analizi gibi birçok amaçla kullanılır.
tcpdump
, yakaladığı paketleri genellikle libpcap kütüphanesi formatında işler ve bu format, Wireshark gibi diğer birçok ağ analiz aracı tarafından da okunabilir.
Yetki: Ağ arayüzlerinden ham paketleri yakalamak genellikle root ayrıcalıkları gerektirir, bu nedenle tcpdump
komutları sıklıkla sudo
ile çalıştırılır.
Temel Kullanım
Arayüzleri Listeleme: Sistemdeki kullanılabilir ağ arayüzlerini listelemek için:
Belirli Bir Arayüzü Dinleme: Belirtilen arayüzdeki tüm trafiği yakalar ve özetini ekrana basar.
Ctrl+C
ile durdurulur.-i <arayüz>
: Dinlenecek ağ arayüzünü belirtir (örn.eth0
,wlan0
).any
değeri tüm arayüzleri dinler (promiscuous mod destekleniyorsa).
Temel Çıktı Formatı: Varsayılan çıktı genellikle şöyledir:
[ZamanDamgası] [Protokol] ([Kaynak IP].[Kaynak Port] > [Hedef IP].[Hedef Port]): [Bayraklar], [Seq/Ack Numaraları], [Diğer Bilgiler], [Veri Uzunluğu]
Yaygın Seçenekler
-n
: IP adresleri için ana bilgisayar adı çözümlemesi yapma. Çıktıyı daha hızlı ve okunabilir hale getirebilir.-nn
: Hem IP adresleri hem de port numaraları için isim çözümlemesi yapma (örn. port 80 yerine 'http' yazmaz).-v
,-vv
,-vvv
: Çıktının detay seviyesini artırır (daha fazla protokol bilgisi gösterir).-c <sayı>
: Belirtilen sayıda paketi yakaladıktan sonra durur.-s <snaplen>
(Snapshot Length): Her paketin ne kadarının yakalanacağını belirtir (bayt cinsinden).-s 0
genellikle paketin tamamını yakalamak için kullanılır (bazı eski sürümlerde farklı olabilir). Varsayılan değer genellikle paketin tamamını yakalamak için yeterlidir, ancak bazen özellikle sadece başlık bilgileriyle ilgileniliyorsa daha küçük bir değer kullanılabilir.-A
: Paket içeriğini ASCII olarak yazdırır.-X
: Paket içeriğini hem Hex hem de ASCII olarak yazdırır.-w <dosya.pcap>
: Yakalanan ham paketleri belirtilen dosyaya pcap formatında yazar. Bu dosya daha sonratcpdump -r
veya Wireshark gibi araçlarla analiz edilebilir.-r <dosya.pcap>
: Canlı yakalama yapmak yerine, daha önce-w
ile kaydedilmiş bir pcap dosyasını okur ve analiz eder.
Filtreleme (BPF - Berkeley Packet Filter)
tcpdump
'ın en güçlü özelliklerinden biri, yakalanacak paketleri belirli kriterlere göre filtreleyebilmesidir. Bu filtreler, komutun sonuna eklenen BPF ifadeleri ile tanımlanır.
Filtre Primitifleri:
host <ip_veya_hostname>
: Belirtilen IP veya ana bilgisayar adını kaynak veya hedef olarak içeren paketler.net <ağ/maske>
: Belirtilen ağa ait paketler (örn.net 192.168.1.0/24
).port <port_no>
: Belirtilen port numarasını kaynak veya hedef olarak içeren TCP veya UDP paketleri.portrange <port1>-<port2>
: Belirtilen port aralığındaki paketler.proto <protokol>
: Belirtilen protokolü kullanan paketler. Yaygın protokoller doğrudan yazılabilir:tcp
,udp
,icmp
,icmp6
,arp
,rarp
.
Yön Belirteçleri:
src
: Sadece kaynak adres/port ile eşleşir (örn.src host 10.0.0.5
,src port 80
).dst
: Sadece hedef adres/port ile eşleşir (örn.dst net 192.168.0.0/16
,dst port 443
).
Birleştirme Operatörleri:
and
veya&&
: İki koşul da doğru olmalı.or
veya||
: Koşullardan en az biri doğru olmalı.not
veya!
: Koşul yanlış olmalı.()
: Operatör önceliğini değiştirmek için parantezler kullanılır (kabuk tarafından yorumlanmaması için genellikle tırnak içine alınır).
Filtre Örnekleri:
Wireshark ile İlişkisi
tcpdump
, komut satırı için güçlü bir yakalama ve temel analiz aracıdır. Yakalanan paketlerin daha detaylı ve görsel olarak incelenmesi için genellikle Wireshark kullanılır. tcpdump
ile -w
seçeneği kullanılarak kaydedilen .pcap
dosyaları doğrudan Wireshark ile açılabilir ve analiz edilebilir.
tcpdump
, ağ trafiğini anlamak ve sorunları gidermek için vazgeçilmez bir araçtır. Filtreleme yetenekleri sayesinde sadece ilgilenilen trafiği yakalamak mümkündür.
Last updated