TCPDump Nedir?
TCPDump, Unix ve Linux tabanlı sistemlerde ağ analizi ve ağ güvenlik denetimi için kullanılan komut satırı tabanlı bir paket analiz aracıdır. OSI modelinin neredeyse tüm katmanlarından trafiği izlemenizi sağlar, bu sayede yakaladığınız paketlerle istediğiniz gibi çalışabilirsiniz. Yakalanan paketleri saklayabilir ve daha sonra Wireshark veya başka bir analiz aracıyla analiz edebilirsiniz.
TCPDump'ın Özellikleri ve Avantajları
TCPDump, ağ trafiğini yakalama, analiz etme ve ayrıntılı bir şekilde raporlama yeteneği olan güçlü bir araçtır. Farklı paket türlerini, belirli portları, IP adreslerini ve daha fazlasını filtrelemek için kullanılabilir. TCPDump'ın en büyük avantajlarından biri, geniş özelleştirilebilirlik ve sağladığı çok çeşitli seçenek ve filtrelerdir. Küçük boyutu ve düşük sistem gereksinimleri, ayrıca aracın hızlı ve verimli çalışmasını sağlar.
TCPDump Kurulumu
TCPDump çoğu Linux dağıtımında varsayılan olarak gelir. Ancak kurulu olmadığını kontrol etmek veya en yeni sürümüne yükseltmek için terminali açın ve aşağıdaki komutları kullanın:
Debian tabanlı dağıtımlar (Ubuntu, Mint vb.) için:
sudo apt-get update
sudo apt-get install tcpdump
Red Hat tabanlı dağıtımlar (CentOS, Fedora vb.) için:
sudo yum install tcpdump
Temel TCPDump Komutları
Genel Sözdizimi
TCPDump komutunun temel sözdizimi şu şekildedir:
tcpdump [seçenekler] [filtre]
Birçok seçenek ve filtre ifadesi bulunur ve bu seçeneklerin her biri TCPDump'ın hangi trafik türlerini yakalayacağını ve sonuçların nasıl görüntüleneceğini belirler.
Arabirimleri Listeleme
tcpdump -D
komutu, kullanılabilir ağ arabirimlerini listeler.
Örnek:
tcpdump -D
Belirli Bir Arabirimdeki Trafik Yakalama
tcpdump -i [arabirim]
Bir arabirimdeki tüm trafiği yakalamak için '-i' seçeneği ve arabirimin adı kullanılır.
Örnek:
tcpdump -i eth0
Host Filtreleme
tcpdump -i [arabirim] host [ip_adresi]
Belirli bir hostla ilgili trafiği izlemek için 'host' filtresi kullanılır.
Örnek:
tcpdump -i eth0 host 192.168.1.108
Protokol Filtreleme
Belirli bir protokolü (TCP, UDP, ICMP vb.) filtrelemek için doğrudan protokol adı kullanılır.
TCP trafiğini yakalamak için:
tcpdump -i eth0 tcp
Port Filtreleme
Belirli bir port üzerindeki trafiği yakalamak için 'port' filtresi kullanılır.
Port 80'deki trafiği yakalamak için:
tcpdump -i eth0 port 80
Kaynak ve Hedef IP Filtreleme
Kaynak ve/veya hedef IP adresine sahip paketleri yakalamak için 'src' (source/kaynak) ve 'dst' (destination/hedef) filtreleri kullanılır.
Örnek:
Kaynak IP adresi 192.168.1.108 olan trafiği yakalamak için:
tcpdump -i eth0 src 192.168.1.108
Hedef IP adresi 192.168.1.108 olan trafiği yakalamak için:
tcpdump -i eth0 dst 192.168.1.108
Belirli bir kaynak ve hedef adresi arasında gerçekleşen iletişimi yakalamak için:
tcpdump -i eth0 src 192.168.1.108 and dst 192.168.1.1
Ağ Filtreleme
Belirli bir IP ağındaki trafiği yakalamak için 'net' filtresi kullanılır.
Örnek:
192.168.1.0/24 ağındaki tüm trafiği yakalamak için:
tcpdump -i eth0 net 192.168.1.0/24
Paketlerin Yönünü Filtreleme
Paketlerin yönünü filtrelemek için 'src' ve 'dst' ifadeleri ve 'net' filtresi birlikte kullanılır.
Belirli bir ağdan gelen trafiği yakalamak için:
tcpdump -i eth0 src net 192.168.1.0/24
Belirli bir ağa giden trafiği yakalamak için:
tcpdump -i eth0 dst net 192.168.1.0/24
Çıktıyı Dosyaya Yazma ve Dosyadan Okuma
TCPDump çıktısını bir dosyaya yazmak için '-w' seçeneği ve dosyanın adı kullanılır. Bu, daha sonraki analizler için çok kullanışlıdır.
Örnek:
tcpdump -i eth0 -w output.pcap
Daha önce kaydedilmiş bir TCPDump çıktısını okumak için '-r' seçeneği ve dosyanın adı kullanılır:
tcpdump -r output.pcap
TCPDump ile Ağ Trafiğini Anlık İzleme
tcpdump komutu, belirli bir paket sayısına ulaşıldığında durmak üzere -c parametresini alabilir. Örneğin, yalnızca ilk 10 paketi yakalamak ve sonrasında durmak isterseniz aşağıdaki komutu kullanabilirsiniz:
Örnek:
sudo tcpdump -c 10 -i eth0 -v
TCPDump Filtreleri
TCPDump, çeşitli filtrelerle belirli özelliklere sahip paketleri yakalamak için çok yönlüdür.
IP Adresi veya Aralığı Filtreleme
Belirli bir IP adresi veya ağı filtrelemek için 'host', 'src', 'dst' ve 'net' filtreleri kullanılır.
Port Filtreleme
Belirli bir portu filtrelemek için 'port', 'src port', 'dst port' filtreleri kullanılır.
Protokol Filtreleme
Belirli bir protokolü filtrelemek için doğrudan protokol adı kullanılır (örn. 'tcp', 'udp', 'icmp').
Paket Boyutu Filtreleme
Belirli bir boyuttaki paketleri filtrelemek için 'less', 'greater' ve 'len' filtreleri kullanılır.
Belirli Paketlerin Yakalanması
Özellikle belirli paket türlerini yakalamak için TCPDump filtre ifadeleri kullanılır. Örneğin, SYN bayrağına sahip tüm TCP paketlerini yakalamak için aşağıdaki filtre kullanılabilir:
tcpdump 'tcp[13] & 2 != 0'