Tcpdumpa Giriş

Bir sunucu çalıştırırsanız, şüphesiz ağla ilgili bazı problemleri çözmeniz gereken bir noktaya geleceksiniz. Tabii ki sadece destek bölümüne bir posta çekmek kolay olurdu, ancak bazen ellerinizi kirletmeniz gerekir. Bu durumda, tcpdumpo iş için bir araçtır. Tcpdump, komut satırı altında çalışan bir ağ paket analizörüdür.

Bu makale üç bölüme ayrılacaktır:

  • Temel özellikler.
  • Belirli trafik özelliklerine göre filtreleme.
  • Daha gelişmiş özelliklerin kısa bir snippet'i (mantıksal ifadeler, TCP bayraklarına göre filtreleme gibi).

Tcpdump çoğu temel sisteme dahil olmadığından, yüklemeniz gerekir. Ancak, hemen hemen tüm Linux dağıtımlarının çekirdek depolarında tcpdump vardır. Debian tabanlı dağıtımlar için, tcpdump yükleme komutu:

apt-get install tcpdump

CentOS / RedHat için aşağıdaki komutu kullanın:

yum install tcpdump

FreeBSD, aşağıdakileri yaparak kurulabilen önceden oluşturulmuş bir paket sunar:

pkg install tcpdump

Ayrıca net/tcpdumpşu şekilde kurulabilen bir bağlantı noktası vardır :

cd /usr/ports/net/tcpdump
make install clean

Herhangi tcpdumpbir argüman olmadan koşarsanız, sonuçlarla çarpılacaksınız. Vultr'da burada yeni döndürülmüş bir örnek üzerinde beş saniyeden daha az bir süre çalıştırılması aşağıdaki sonuçları verir:

2661 packets captured
2663 packets received by filter
0 packets dropped by kernel

Girişin nasıl filtreleneceğiyle ilgili daha fazla ayrıntıya girmeden önce, tcpdump'a geçirilebilecek bazı parametrelere göz atmalısınız:

  • -i- belirtir, örneğin, dinlemek istediğiniz arayüzü: tcpdump -i eth0.
  • -n- IP adreslerinde ters arama yapmaya çalışmayın, örneğin: tcpdump -n(başka bir ntcpdump eklerseniz , adlar yerine bağlantı noktası numaralarını gösterecektir).
  • -X- Toplanan paket içeriğini göster: tcpdump -X.
  • -c- Sadece yakalama xpaketleri, xörnek için rastgele sayı olmak tcpdump -c 10yakalamaları tam 10 paket.
  • -v- Gösterilen paket bilgisi miktarını artırın, daha vfazla ayrıntı daha fazla ekleyin.

Burada bahsedilen parametrelerin her biri birlikte kombine edilebilir. 100 paketi yakalamak istiyorsanız, ancak yalnızca VPN arabirimi tun0'da, tcpdump komutu şöyle görünecektir:

tcpdump -i tun0 -c 100 -X

Bunlara ek olarak düzinelerce (yüzlerce olmasa da) seçenek var, ancak bunlar en yaygın olanları. Sisteminizdeki tcpdump'ın sayfasını okumaktan çekinmeyin.

Artık tcpdump hakkında temel bir anlayışa sahip olduğunuza göre, tcpdump'ın en harika özelliklerinden birine bakmanın zamanı geldi: ifadeler. İfadeler hayatınızı daha kolay hale getirecektir. BPF veya Berkeley Paket Filtreleri olarak da bilinirler. İfadeleri kullanmak, paketleri başlangıç, hedef, boyut ve hatta TCP sıra numarası gibi belirli özelliklere göre seçerek görüntülemenizi (veya yok saymanızı) sağlar.

Şimdiye kadar, aramanızı belirli bir arayüzde belirli bir paketle sınırlamayı başardınız, ancak burada dürüst olalım: toplanan verilerle etkili bir şekilde çalışmak için hala çok fazla arka plan gürültüsü bırakıyor. İşte ifadeler devreye giriyor. Konsept oldukça basittir, bu yüzden kuru teoriyi burada bırakacağız ve bazı pratik örneklerle anlayışı destekleyeceğiz.

Muhtemelen en çok kullanacağınız ifadeler şunlardır:

  • host - Ana bilgisayar adlarına veya IP adreslerine dayalı trafik arayın.
  • srcveya dst- Belirli bir ana bilgisayardan veya belirli bir ana makineye gelen trafiği arayın.
  • proto- Belirli bir protokolün trafiğini arayın. Tcp, udp, icmp ve diğerleri için çalışır. protoAnahtar kelimeyi atlamak da mümkündür.
  • net - Belirli bir IP adresi aralığına / aralığından gelen trafiği arayın.
  • port - Belirli bir limana / limandan trafik arayın.
  • greaterveya less- Belirli bir bayttan daha büyük veya daha küçük trafik arayın.

For manpage tcpdumpsadece birkaç örnek içermekle birlikte, for manpage, pcap-filterher filtrenin nasıl çalıştığı ve nasıl uygulanabileceği konusunda çok ayrıntılı açıklamalara sahiptir.

Belirli bir sunucu ile iletişiminizin nasıl gittiğini görmek istiyorsanız, hostanahtar kelimeyi kullanabilirsiniz, örneğin (yukarıdan bazı parametreler dahil):

tcpdump -i eth0 host vultr.com

Bazen ağda MTU'yu onurlandırmayan veya büyük paketlerle spam yapan bilgisayarlar olabilir; onları filtrelemek bazen zor olabilir. İfadeler, belirli bir bayttan daha büyük veya daha küçük paketleri filtrelemenize olanak tanır:

tcpdump -i eth0 -nn greater 128
or
tcpdump -i eth0 -nn less 32

Belki sadece belirli bir liman sizin için ilgi çekicidir. Bu durumda, şu portifadeyi kullanın :

tcpdump -i eth0 -X port 21

Bağlantı noktası aralıklarına da bakabilirsiniz:

tcdump -i eth0 -X portrange 22-25

NAT ağ geçitleri oldukça yaygın olduğundan, yalnızca hedef bağlantı noktalarını arayabilirsiniz:

tcpdump dst port 80

Web sunucunuza trafik izliyorsanız, yalnızca 80 numaralı bağlantı noktasına giden TCP trafiğine bakmak isteyebilirsiniz:

tcpdump tcp and dst port 80

Muhtemelen kendinize anahtar kelimenin andorada ne yaptığını soruyorsunuz . İyi soru. Bu bizi bu makalenin son bölümüne getiriyor.

tcpdump mantıklı ifadeler için temel destek sunar, daha spesifik olarak:

  • and/ &&- Mantıksal "ve".
  • or/ ||- Mantıksal "veya".
  • not/ !- Mantıksal "değil".

İfadeleri birlikte gruplama yeteneği ile birlikte, gelen ve giden trafik için çok güçlü aramalar oluşturmanıza olanak tanır. Öyleyse 22 veya 443 numaralı bağlantı noktasında vultr.com adresinden gelen trafiği filtreleyelim:

tcpdump -i eth0 src host vultr.com and (dst port 22 or 443)

Bunu komut satırında çalıştırmak size aşağıdaki hatayı verecektir:

bash: syntax error near unexpected token `('

Çünkü bir uyarı var: bashyapabildiği her karakteri değerlendirmeye çalışıyor. Buna (ve )karakterleri dahildir . Bu hatayı önlemek için, birleştirilmiş ifadenin çevresinde tek tırnak kullanmalısınız:

tcpdump -i eth0 'src host vultr.com and (dst port 22 or 443)'

Başka bir yararlı örnek: Kullanıcılarınızdan biriyle SSH sorunlarında hata ayıklarken, SSH oturumunuzla ilgili her şeyi göz ardı etmek isteyebilirsiniz:

tcpdump '!(host $youripaddress) && port 22)'

Yine, kullanım senaryoları sonsuzdur ve ne tür bir trafik görmek istediğinizi aşırı derinliklere belirtebilirsiniz. Aşağıdaki komut size yalnızca bir TCP el sıkışmasının SYNACK paketlerini gösterir:

tcpdump -i eth0 'tcp[13]=18'

Bu, TCP başlığının onüçüncü ofsetine ve içindeki on sekizinci bayta bakarak çalışır.

Burada sonuna kadar yaptıysanız, ortaya çıkacak çoğu kullanım için hazırsınız demektir. Çok fazla ayrıntıya girmeden yüzeye zar zor dokunabiliyorum. Farklı seçenekleri ve ifadeleri biraz daha denemenizi önemle tavsiye ederim; ve her zamanki gibi: kaybolduğunuzda manpage'e bakın.

Son fakat en az değil - hızlı bir bakış. Bu makalenin başlangıcını hatırlıyor musunuz? Saniyeler içinde yakalanan binlerce paketle? Gücü, tcpdumpbunu bir sürü kesebilir:

tcpdump -i eth0 tcp port 22

Sonuç şimdi:

81 packets captured
114 packets received by filter
0 packets dropped by kerne

Bu daha akılcı ve hata ayıklamak daha kolaydır. Mutlu ağlar!



Leave a Comment

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Bilim hızla gelişip birçok çabamızı üstlendikçe, kendimizi açıklanamaz bir Tekilliğe maruz bırakmanın riskleri de artıyor. Okuyun, tekillik bizim için ne anlama gelebilir.

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp, uzaktan sağlık hizmetleri ve gelecek nesiller üzerindeki etkisi nedir? Pandemi durumunda iyi bir yer mi değil mi? Bir görünüm bulmak için blogu okuyun!

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Bilgisayar korsanlarının çok para kazandığını duymuş olabilirsiniz, ancak bu kadar parayı nasıl kazandıklarını hiç merak ettiniz mi? Hadi tartışalım.

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

Son zamanlarda Apple, sorunları gidermek için macOS Catalina 10.15.4'ü ek bir güncelleme yayınladı, ancak güncelleme, mac makinelerinde tuğla oluşmasına neden olan daha fazla soruna neden oluyor gibi görünüyor. Daha fazla bilgi edinmek için bu makaleyi okuyun