1. #!trpst#trp-gettext data-...
  2. #!trpst#trp-gettext data-...
  3. Linux
  4. Ağ ve Güvenlik
  5. tcpdump ile Terminalde Ağ Paketlerini Yakalama ve İnceleme

tcpdump ile Terminalde Ağ Paketlerini Yakalama ve İnceleme

Print

Ağ seviyesindeki paket kayıpları, yavaş yanıt veren API çağrıları veya nedeni anlaşılamayan TCP bağlantı kopmaları karşılaşıldığında, en net teşhis doğrudan kablodan (arayüzden) geçen ham paketleri dinlemektir. Linux dünyasında tcpdump ile paket yakalama ve analizi, komut satırından çalışan en güçlü ve vazgeçilmez ağ dinleme (packet sniffing) yöntemidir.

Bu rehberde; tcpdump komutunun temel parametrelerini, BPF (Berkeley Packet Filter) filtreleme sözdizimini, paket yüklerini (payload) incelemeyi ve yakalanan paketleri Wireshark ile görsel olarak analiz etmek için .pcap formatında kaydetmeyi ele alacağız.


tcpdump Nasıl Çalışır?

tcpdump, Linux çekirdeğindeki libpcap kütüphanesini kullanarak ağ arayüzünü “promiscuous mode” (rastgele dinleme modu) durumuna getirir. Böylece o arayüzden geçen tüm paket kopyaları kullanıcı alanına aktarılır. Bu işlem ağ kartının derinliklerine indiği için sudo yetkisi gerektirir.

Dinlenebilir Arayüzleri Listelemek

Hangi ağ kartlarının mevcut olduğunu görmek için:

sudo tcpdump -D

Örnek Çıktı:

1.eth0 [Up, Running]
2.wlan0 [Up, Running]
3.any (Pseudo-device that captures on all interfaces)
4.lo [Up, Running, Loopback]

Temel tcpdump Parametreleri

tcpdump komutunu filtresiz çalıştırmak terminali binlerce satırla doldurabilir. Bu yüzden temel bayrakları iyi bilmek gerekir:

  • -i <arayuz> : Dinlenecek ağ kartını seçer (örn: eth0, any).
  • -n : IP adreslerini alan adlarına çevirmez (DNS sorgusu yapmaz, gecikmeyi önler).
  • -nn : Hem IP’leri hem de port numaralarını sayısal gösterir (80 yerine http yazmaz).
  • -c <sayi> : Belirtilen sayıda paket yakaladıktan sonra otomatik durur.
  • -v, -vv, -vvv : Paket detay seviyesini (ayrıntı) artırır (TTL, IP ID, bayraklar).
  • -X : Paket içeriğini hem HEX hem ASCII olarak ekrana basar.
  • -w <dosya.pcap> : Yakalanan paketleri ekrana basmak yerine dosyaya yazar.
  • -r <dosya.pcap> : Önceden kaydedilmiş .pcap dosyasını terminalde okur.

Pratik Filtreleme Senaryoları (BPF)

tcpdump’ın gerçek gücü, esnek filtreleme ifadelerinden (Berkeley Packet Filter) gelir.

1. Belirli Bir Host / IP Adresini Dinlemek

# Sadece 192.168.1.50 ile haberleşen paketleri yakala
sudo tcpdump -i eth0 -nn host 192.168.1.50

# Sadece hedef IP (destination) 8.8.8.8 olan paketler
sudo tcpdump -i eth0 -nn dst host 8.8.8.8

# Sadece kaynak IP (source) 10.0.0.1 olan paketler
sudo tcpdump -i eth0 -nn src host 10.0.0.1

2. Port ve Protokol Bazlı Filtreleme

# Sadece DNS (Port 53 UDP) sorgularını izle
sudo tcpdump -i eth0 -nn udp port 53

# Sadece HTTP (80) ve HTTPS (443) web trafiğini yakala
sudo tcpdump -i eth0 -nn 'tcp port 80 or tcp port 443'

# SSH (Port 22) trafiği HARİÇ tüm TCP trafiğini yakala (Terminal kilitlenmesini önler!)
sudo tcpdump -i eth0 -nn 'tcp and not port 22'

3. Mantıksal Operatörler (and, or, not)

Birden fazla koşulu parantez ve mantıksal bağlaçlarla birleştirebilirsiniz:

# 192.168.1.10 IP'sine giden VE 3306 (MySQL) portunu hedefleyen paketler
sudo tcpdump -i eth0 -nn 'dst host 192.168.1.10 and tcp port 3306'

Paket Yükünü (Payload) İncelemek: HTTP GET/POST İsteklerini Görmek

Şifrelenmemiş HTTP trafiğindeki istek başlıklarını veya JSON gövdelerini doğrudan terminalde görmek için -A (ASCII) veya -X bayrağını kullanabilirsiniz:

# 80 portundan geçen metin tabanlı paketleri ekranda ASCII olarak göster
sudo tcpdump -i eth0 -nn -A -s 0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'

Not: -s 0 bayrağı “snapshot length” değerini sınırsız yaparak paketin kesilmesini (truncate) önler ve tüm içeriği yakalar.


Paketleri PCAP Olarak Kaydetmek ve Wireshark ile Açmak

Canlı ortamdaki karmaşık bir sorunu sunucu başında terminalde incelemek yerine, paketleri kaydedip yerel bilgisayarınızdaki Wireshark uygulamasında renkli grafiklerle incelemek en profesyonel yaklaşımdır.

# eth0 arayüzünden 1000 adet paket yakala ve capture.pcap dosyasına yaz
sudo tcpdump -i eth0 -nn -w /tmp/capture.pcap -c 1000 'not port 22'

Oluşan dosyayı yerel bilgisayarınıza indirdikten sonra Wireshark ile açabilir; TCP stream reassembly (akış birleştirme), TLS el sıkışma süreleri veya HTTP yanıt kodlarını görsel filtrelerle inceleyebilirsiniz.


Özet Karşılaştırma Tablosu

İhtiyaçKomut Örneği
Hızlı Port İzlemesudo tcpdump -i eth0 -nn port 80
DNS Sorun Gidermesudo tcpdump -i any -nn udp port 53
Wireshark İçin Kayıtsudo tcpdump -i eth0 -w dump.pcap -c 500
ASCII İçerik İncelemesudo tcpdump -i eth0 -nn -A port 8080
SSH Trafiğini Gizlemesudo tcpdump -i eth0 -nn not port 22

Özet

tcpdump, ağ katmanındaki sorunların kök nedenini belirlemek için en doğrudan araçtır. BPF filtreleri ile hedef odaklı paket dinleme yapabilir, kayıtları .pcap dosyasına aktararak derinlemesine güvenlik ve performans incelemeleri gerçekleştirebilirsiniz.

Tags , , , , ,

How can we help?