TCPDump Kullanımı
Tags: tcpdump, tcp, sniffing, linux
Published: 2023-07-12 07:55:38

#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'
```