İçeriğe atla

Tcpdump

tcpdump
tcpdump ekran görüntüsü
Geliştirici(ler)The Tcpdump team
Güncel sürüm4.9.3 / 30.09.2019[1]
İşletim sistemiUnix, *NIX systems
TürBilgisayar güvenliği
LisansBSD
Resmî sitesitcpdump.org
Kod deposu Bunu Vikiveri'de düzenleyin

tcpdump, komut satırından çalışan genel bir paket analizcisidir, bilgisayara gelen veri paketlerini kaydetmeye, incelemeye, filtrelemeye yardımcı bir sistemdir. Kullanıcıya bağlı bulunduğu bir ağ üzerinden iletilen veya alınan TCP/IP paketlerini veya diğer paketleri yakalama ve gözlemleme olanağı sunar. BSD lisansı altında dağıtılan tcpdump lisans ücreti olmayan bir açık kaynak yazılımdır.

Tcpdump Unix benzeri işletim sistemleri üzerinde çalışır (Linux, Solaris, BSD, Mac OS X, HP-UX ve AIX gibi). Bu sistemlerde tcpdump paket yakalamak için libpcap kütüphanesini kullanır. Tcpdump'ın Windows için olanı WinDump o larak adlandırılır ve libpcap in Windows'a port edilmiş hali olan WinPcap kullanır.

Tarihi

O ilk olarak Van Jacobson, Craig Leres ve Steven McCanne tarafından 1987 yılında Lawrence Berkeley Laboratory Network Research Group da çalışırlarken yazıldı. 1990'ların sonuna doğru çeşitli işletim sistemlerinin bir parçası olarak çok sayıda tcpdump versiyonu ve iyi düzenlenmemiş birçok yaması dağıtıldı. Michael Richardson ve Bill Fenner 1999 yılında tcpdump.org'u oluşturdu.

Genel kullanım

Tcpdump ağ davranışını, performans ve ağ trafiği oluşturan uygulamaları analiz eder. Aynı zamanda, tüm gerekli yönlendirmelerin doğru oluşup oluşmadığını ve kullanıcının problemin kaynağından izole edilip edilmediğini belirleyerek kendi başına ağ altyapısını analiz etmekte kullanılabilir. Başka bir bilgisayar kullanıcısının iletişimini yakalayıp dinlemek gibi özel bir amaç için kullanımı da mümkündür. Üzerinde Telnet ve HTTP gibi şifrelenmemiş trafik oluşan yönlendirici veya ağ geçidi gibi davranan bir sistem üzerinde gerekli yetkileri bulunan bir kullanıcı oturum kimlikleri, şifreler, URL'ler ve gezilen web sitelerin içerikleri ve daha başka şifrelenmemiş bilgileri görüntülemek için tcpdump kullanabilir. Kullanıcı isteğe bağlı olarak tcpdump tarafından görülen paketlerin sayısını sınırlandırmak için bir BPF tabanlı filtre uygulayabilir; bu trafik hacmi yüksek olan ağlarda daha kullanışlı çıktı verir.

Gerekli ayrıcalıklar

Bazı Unix benzeri işletim sistemlerinde, tcpdump kullanmak için yönetici ayrıcalıklarına sahip olmak gerekir, çünkü bu sistemlerdeki paket yakalama mekanizması yüksek ayrıcalık gerektirir. Bununla birlikte, -Z seçeneği yakalama ayarları yapıldıktan sonra belirli ayrıcalıksız kullanıcılara ayrıcalıklar verir. Diğer Unix benzeri işletim sistemlerinde, paket yakalama mekanizması ayrıcalıklı olmayan kullanıcıların kullanmasına izin vermek için yapılandırılabilir; eğer böyleyse yönetici yetkileri gerekmez.

Parametreler

Tcpdump ağ davranışını, performansı ve ağ trafiğini oluşturan uygulamaları analiz ederken, belli parametreler kullanabilir. Tüm özellikler, parametreler ile belirlenir. Komut parametresiz çalıştırıldığında, bulduğu ilk aktif ağ arabirimini dinlemeye alır. Bu işlem yalnızca, sisteme root olarak giriş yapıldığı takdirde gerçekleştirilebilir. Tcpdump komutunun pek çok parametresi bulunur ve bunları ezberlemek gereksizdir. Bir makine, kendisine gelmeyen paketleri, yalnızca promiscuous (karışık) moddayken alabilir. Tüm Snifferlar otomatik olarak ağ arabirimini bu moda geçirir ve Snifferlar durunca ağ arabirimini normal haline alır.

ifconfig: Ethernet kartının (ağ arabiriminin) ayarlarını ve hangi modda olduğunu görüntüler. Yetkili kişinin, ayarları değiştirebilmesine imkân verir.

promisc: Hedef IP adresi olmadığı halde, gelen paketleri almayı sağlar.

Hangi ağ arabiriminin dinlenmesi gerektiğini belirtmez isek, numarası en düşük olan arabirim dinlenmeye başlanır. Örneğin, ağımızda aktif olarak bulunan, 3 tane ağ olsun ve isimleri eth0, eth1, eth2 şeklinde belirtilmiş olsun. Bu durumda, en düşük ağ numaralı olan eth0 yani, 1. ağ dinlenir.

==> Hangi ağın dinlenmesi gerektiğini -i parametresi ile belirtiriz.

#tcpdump -i eth2 (3. ethernet kartı dinlenir)

==> Sistemde bulunan ve dinlenebilecek durumda olan arabirimlerin listesini -D parametresi ile belirtiriz.

#tcpdump -D

==> Yakalanan paketlerin DNS isimleri çözülmesin istiyorsak, -n parametresini kullanırız.

#tcpdump -n

* Dezavantajı: İsimlerin çözülmesi için belli bir zaman gerekir ve bu yoğun ağlarda işlemin yavaşlamasına sebep olur.

==> Yakalanan paketlerde DNS isim bilgisinin yanında, protocol ve port numaraları da çözülmesin istiyorsak, -nn parametresini kullanırız.

#tcpdump -nn

* Örneğin, ilk kullanımda ayrıntılı olarak, telnet şeklinde belirtilen alanda herhangi bir çözümleme yapılmaksızın 23 yazacaktır.

==> Yakalanan paketlerde daha sade bir görünüm arıyor ve zaman çıktısı (timestamp) vermesin istiyorsak, -t parametresini kullanırız.

#tcpdump -t

==> Yakalanan paketler ekranda görüntülenmesin istiyor olabiliriz. Bu durumda, elde edilen bilgiyi cap uyumlu başka bir dosyaya yazabiliriz.

#tcpdump -w dosya_adi

* -w ile kaydedilen paketler -r parametresi kullanılarak okunabilir.-w ile herhangi bir dosyaya kaydederken filtreleme yapabiliriz .Aynı şekilde -r ile paketleri okurken filtre belirtebiliriz.Bu filtre -w ile belirlediğimiz filtre ile aynı olmak zorunda değildir.

==> Okuma işlemi şu şekilde gerçekleştirilir.

#tcpdump -r dosya_adı

* Dosya kaydedilirken ya da okunurken, filtreleme yapılabilir. Mesela sadece şu tip paketleri kaydet ya da timestampleri kaydetme gibi.

* Aynı şekilde -r ile paketleri okurken filtre belirtebiliriz. Ayrıca bu filtrenin -w ile belirtilen filtre ile aynı olma zorunluluğu yoktur.

==> Ne kadar paket yakalanıp, durulacağını belirtmek istiyorsak, -c parametresini kullanırız.

#tcpdump -i eth0 -c 5 TCP

* 1. porttan 5 tane TCP paketi yakalar ve durur.

==> Yakalanacak paketlerin boyutunu byte olarak belirtmek istiyorsak, -s parametresini kullanırız.

#tcpdump -s 1500

==> Detaylı loglama yapmak istiyorsak, -v parametresini kullanırız.

#tcpdump -i eth0 -n -c 5 -v

* Bu komut, TTL ve ID değerlerini de döndürür.

==> Promisc moddan kaçmak istiyorsak, -p parametresini kullanırız.

#tcpdump -p - i eth0

* Yararları: Bu moddan çıkarsak, sadece o birime gelen ve o birimi ilgilendiren paketler işlenir. Ki bu, gelen paketlerin Broadcast ya da direkt o arabirimin adresi olması demektir.

* Bu komutu, genellikle kendi makinemizde işlem yapacağımız zaman kullanırız.

==> Ethernet başlık bilgisini yakalamak istersek, -e parametresini kullanırız.

#tcpdump -e

* Bu komut bize, MAC bilgisini verir.

#tcpdump greator 42 > dosya.txt = paket bilgilerini dosya isimli dosyaya yazar.

#tcpdump -c 42 greator 42 -w ozlem.dump = 42'den büyük olan ilk 42 paketi kaydeder.

#tcpdump -r ozlem.dump

==> Hedef host olarak belli bir adresi kullanmak istersek, dst host parametresini kullanırız.

#tcpdump -i eth0 dst host 10.0.0.1

==> Kaynak host olarak belli bir adresi kullanmak istersek, src host parametresini kullanırız.

#tcpdump -i eth0 src host 10.1.0.59

* dst ve src i aynı komutta kullanabiliriz.

#tcpdump -i eth0 src host 10.1.0.59 and dst host 10.0.0.1

==> Kaynak veya hedef port bilgisini belirtmek istiyorsak, port parametresini kullanırız.

#tcpdump port 23

* Kaynak veya Hedef portu 23 olan paketler.

#tcpdump src port 23

* Kaynak portu 23 olan paketler.

-X : Paketin içeriğini hem hex hem de ascii olarak görünmesini sağlayan bir parametredir.

-XX : Paketin içeriğini hem hex hem de ascii olarak görünmesini sağlayan bir parametredir ve ethernet başlığını da gösterir.

-nS : Çok fazla seçenek olmadan paket analizi yapar

-nnvvXS : Trafikte çok detaylı bir incelemedir.

-E : Bu protokol ile bir şifreleme anahtarı tarafından IPSEC trafiği şifrelenir.

Kaynakça

  1. ^ "tcpdump and libpcap latest release". tcpdump & libpcap. 20 Şubat 2005. 21 Haziran 2000 tarihinde kaynağından arşivlendi. Erişim tarihi: 13 Nisan 2012.  |yayıncı= dış bağlantı (yardım)

Ayrıca bakınız

Dış bağlantılar

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">Bilgisayar ağı</span> kaynaklarını paylaşmak üzere birbirine bağlanmış iki veya daha fazla bilgisayarın oluşturduğu yapı

Bilgisayar ağı, küçük bir alan içerisindeki veya uzak mesafelerdeki bilgisayarların ve/veya iletişim cihazını iletişim hatları aracılığıyla birbirine bağlandığı, dolayısıyla bilgi ve sistem kaynaklarının farklı kullanıcılar tarafından paylaşıldığı, bir yerden başka bir yere veri aktarımının mümkün olduğu iletişim sistemidir. En az iki bilgisayarı birbirine bağlayarak bir ağ oluşturulur. 1980'li yıllarla birlikte, Ethernet ve LAN teknolojisinin gelişmesiyle, kişisel bilgisayarlar ve ofisler bilgisayar ağlarına kavuşmuştur. En bilinen ve en büyük bilgisayar ağı, İnternettir.

<span class="mw-page-title-main">VoIP</span>

VoIP, IP üzerinden ses, video veya mesaj gönderilmesidir. İnternet veya bilgisayar ağları üzerinden çalıştığı için genellikle daha ucuz, bazen bedavadır. Bu nedenle günümüzden en çok tercih edilen telekomünikasyon iletişim yönetimidir. Analog hatları VoIP'e dönüştürmek için VoIP Gateway cihazları kullanılır.

<span class="mw-page-title-main">UDP</span>

UDP, TCP/IP protokol takımının iki aktarım katmanı protokolünden birisidir. Verileri bağlantı kurmadan yollar.

<span class="mw-page-title-main">Ethernet</span> Bilgisayar ağı teknolojisi

Ethernet, Yerel ağlar için kullanılan Veri Çerçevesi tabanlı bilgisayar ağı teknolojileri ailesi. Kelimenin kökeni etherden gelmektedir. OSI ağ modelinin Fiziksel katmanı için Veri bağlantısı katmanı/ Ortam erişim kontrolü üzerinden ağ erişimi yoluyla bir dizi kablolama ve sinyalleşme standardı ve ortak bir adresleme formatı tanımlar.

<span class="mw-page-title-main">İnternet iletişim kuralları dizisi</span>

İnternet protokol takımı, bilgisayarlar ve ağ cihazları arasında iletişimi sağlamak amacıyla standart olarak kabul edilmiş kurallar dizisidir. Bu kurallar dizisi temel olarak verinin ağ üzerinden ne şekilde paketleneceğini ve iletilen veride hata olup olmadığının nasıl denetleneceğini belirlemektedir.

<span class="mw-page-title-main">Güvenlik duvarı</span>

Güvenlik duvarı veya ateş duvarı,, güvenlik duvarı yazılımı, bir kural kümesi temelinde ağa gelen giden paket trafiğini kontrol eden donanım tabanlı ağ güvenliği sistemidir. Birçok farklı filtreleme özelliği ile bilgisayar ve ağın gelen ve giden paketler olmak üzere İnternet trafiğini kontrol altında tutar. IP filtreleme, port filtreleme, Web filtreleme, içerik filtreleme bunlardan birkaçıdır.

Internet Control Message Protocol (ICMP), hata mesajları ve TCP/IP yazılımının bir takım kendi mesaj trafiği amaçları için kullanılır. ICMP RFC 792'de tanımlanmış ve RFC 950'de revize edilmiştir. Hataları raporlamak için kullanılan, kontrol amaçlı bir protokoldür. Bu şekilde normal kullanımının yanında, uzak sistem hakkında bilgi toplamak için sıkça kullanıldığından çok önemlidir. Genel olarak sistemler arası kontrol mesajları IP yerine ICMP üzerinden aktarılır. ICMP, IP ile aynı düzeyde olmasına karşın aslında kendisi de IP’yi kullanır. ICMP' nin hata raporlamak için kullanılması, IP'yi güvenli yaptığı anlamına gelmez. Datagram, yerine ulaşmayabilir ve bununla ilgili bir hata mesajı da gelmeyebilir. ICMP mesajlarındaki hataları raporlamak için ICMP kullanılmaz. ICMP, TCP/IP' nin işlemesine yardımcı olan bir protokoldür. Her hostta mutlaka ICMP protokolü çalışır. Hata durumunda host tarafından geri bilgilendirmeyi sağlar.

<span class="mw-page-title-main">DHCP</span>

DHCP, ağda bulunan her bir bilgisayarın IP adresi, alt ağ maskesi, varsayılan ağ geçidi ve DNS sunucuları gibi ağ bağlantısı ayarlarının otomatik olarak atamasını sağlar. Bu sayede ağ yöneticileri, ağdaki her bir bilgisayarın IP adresi ve diğer ağ bağlantısı ayarlarını elle girerek zaman kaybetmek yerine, DHCP sunucusu üzerinden bu bilgileri otomatik olarak atayarak daha verimli ve güvenilir bir ağ yönetimi yapabilirler. Bu sayede sistem yönetim işlemi de kolaylaşmış olur. Ayrıca UDP, TCP'ye dayalı herhangi bir iletişim protokolünün ve DNS, NTP gibi ağ hizmetlerinin kullanımına olanak sağlar.

<span class="mw-page-title-main">Wireshark</span>

Wireshark, özgür ve açık kaynaklı bir paket çözümleyicisidir. Ağ sorunlarını giderme, çözümleme, yazılım ve iletişim protokolü geliştirme ve eğitim amaçlı olarak kullanılır. Esas olarak Ethereal adıyla başlayan proje, ticari marka sorunları nedeniyle Mayıs 2006'da Wireshark olarak yeniden adlandırıldı.

Berkeley r-komutları, bir Unix sisteminin kullanıcılarının TCP/IP bilgisayar ağı üzerinden başka bir Unix bilgisayarında oturum açmasını veya komutlar vermesini sağlamak için tasarlanmış bir bilgisayar programları paketidir. Berkeley r-komutları, 1982'de Berkeley'deki Kaliforniya Üniversitesi'ndeki Computer Systems Research Group (CSRG) tarafından, TCP/IP'nin erken uygulanmasına dayanarak geliştirildi.

Trivial File Transfer Protocol (TFTP) 1980 yılında tanımlanmış, FTP' nin temel fonksiyonel şekli olarak ifade edilen basit bir dosya transfer protokolüdür.

Nmap, bilgisayar ağları uzmanı Gordon Lyon (Fyodor) tarafından geliştirilmiş bir güvenlik tarayıcısıdır. Taranan ağın haritasını çıkarabilir ve ağ makinalarında çalışan servislerin durumlarını, işletim sistemlerini, portların durumlarını gözlemleyebilir.

<span class="mw-page-title-main">Saldırı tespit sistemleri</span>

Saldırı Tespit Sistemleri (STS) (İngilizce: Intrusion Detection Systems (IDS)), ağlara veya sistemlere karşı yapılan kötü niyetli aktiviteleri ya da politika ihlallerini izlemeye yarayan cihaz ya da yazılımlardır. Tespit edilen herhangi bir aktivite veya ihlal, ya bir yöneticiye bildirilir ya da bir güvenlik bilgi ve olay yönetimi (SIEM) sistemi kullanılarak merkezi olarak toplanır. SIEM sistemi, çeşitli kaynaklardan gelen çıktıları birleştirir ve kötü niyetli alarmı yanlış alarmlardan ayırmak için alarm filtreleme teknikleri kullanır.

<span class="mw-page-title-main">İfconfig</span>

Ifconfig Unix benzeri işletim sistemlerinde komut satırından yapılandırma, kontrol ve TCP/IP ağ arabirim parametreleriyle sistem yapılandırma betiğidir. Ifconfig aslında BSD'nin TCP/IP paketinin bir parçası olarak BSD4.2 de ortaya çıktı.

netstat

netstat ağ bağlantıları, yönlendirme tabloları ve ağ arayüzü istatistiklerini görüntüleyen bir komut satırı aracıdır. netstat komutu UNIX, Linux ve Windows NT tabanlı işletim sistemlerinde kullanılabilir.

<span class="mw-page-title-main">Paket çözümleyicisi</span>

Paket çözümleyici, Paket koklayıcı, protokol analizörü, ağ analizörü olarak da bilinen bir paket analizörü, bir bilgisayar programı veya paket yakalama cihazı gibi bir bilgisayar donanımı olup analiz ve günlük kaydı (loglama) trafiğini bir bilgisayar ağı veya bir ağın bir parçası üzerinden geçirebilir. Paket yakalama trafiği durdurma ve günlüğe kaydetme işlemidir. Veri akışı veya veri katarları ağ üzerinden akarken, analizör her paketi yakalar ve gerekirse paketin ham verilerinin kodunu çözerek paketteki çeşitli alanların değerlerini gösterir, ayrıca içeriğini uygun RFC veya diğer özelliklere göre analiz eder.

Promiscuous mode ağ teknik cihazları için özel bir alım modunu ifade eder.

Bit-Twist, libpcap tabanlı bir paket oluşturucu, paket yakalama dosyası değiştirici ve paket tekrarlayıcıdır. Paket yakalama motoru libpcap üzerine inşa edilmiş bir paket yakalama aracı olan tcpdump'ı tamamlar. Bit-Twist, bir veya daha fazla pcap dosyasından paketleri yeniden oluşturmanıza olanak tanır. Ayrıca, paketleri ağ üzerinde yeniden oluşturmadan önce Ethernet, ARP, IP, ICMP, TCP ve UDP başlıklarındaki alanlar gibi paket bilgilerinin önceden manipüle edilmesini sağlayan kapsamlı bir pcap dosya düzenleyicisi ile birlikte gelir.

<span class="mw-page-title-main">Ngrep</span> Özgür bir ağ paket çözümleyicisi

ngrep, Jordan Ritter tarafından yazılmış bir ağ paket çözümleyicisidir. Bir komut satırı arayüzüne sahiptir, pcap kütüphanesine ve GNU regex kütüphanesine dayanır.

Bilgisayar ağ yönetimi alanında, pcap ağ trafiğini yakalama için bir API'dir. Bu isim packet capture kelimesinin kısaltması olsa da, API'nin özel ismi bu değildir. Unix benzeri sistemler pcap'i libpcap kütüphanesinde uygular; Windows için, libpcap'in artık desteklenmeyen veya geliştirilmeyen WinPcap adlı bir uyarlaması ve Windows 7 ve sonrası için hala desteklenen Npcap adlı bir uyarlaması vardır.