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

CentOS 7de Tavşan Kümesini Kümeleme

CentOS 7de Tavşan Kümesini Kümeleme

RabbitMQ, AMQP, STOMP ve diğer iletişim teknolojilerini destekleyen açık kaynaklı bir mesaj aracısıdır. Kurumsal uygulamalarda yaygın olarak kullanılan bir

Debianda NFS Paylaşımı Ayarla

Debianda NFS Paylaşımı Ayarla

NFS, bilgisayarların bilgisayar ağı üzerindeki dosyalara erişmesine izin veren ağ tabanlı bir dosya sistemidir. Bu kılavuz, klasörleri NF üzerinden nasıl açığa çıkarabileceğinizi açıklar

GitBucket Ubuntu 16.04 Kurulumu

GitBucket Ubuntu 16.04 Kurulumu

Bu kılavuz, Ubuntu 16.04 çalıştıran bir Vultr örneği için GitBucketin temel kurulumunu ve kurulumunu kapsar ve komutları şu şekilde yürüttüğünüzü varsayar:

Bir Fedora 26 LAMP VPSye Directus 6.4 CMS Yükleme

Bir Fedora 26 LAMP VPSye Directus 6.4 CMS Yükleme

Farklı Bir Sistem mi Kullanıyorsunuz? Directus 6.4 CMS, geliştirici sağlayan güçlü ve esnek, ücretsiz ve açık kaynaklı Başsız İçerik Yönetim Sistemidir (CMS)

Ubuntu 16.04 Üzerine Mattermost 5.2 Kurulumu

Ubuntu 16.04 Üzerine Mattermost 5.2 Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Mattermost, Slack SAAS mesajlaşma servisine açık kaynaklı, kendi kendine barındırılan bir alternatiftir. Başka bir deyişle, Mattermost ile,

Linuxta TeamTalk Sunucusu Kurma

Linuxta TeamTalk Sunucusu Kurma

TeamTalk, kullanıcıların yüksek kaliteli sesli / görüntülü konuşmalara, metin sohbetine, dosya aktarımına ve ekranları paylaşmasına olanak tanıyan bir konferans sistemidir. Ben

Pagekit CMSyi CentOS 7ye Yükleme

Pagekit CMSyi CentOS 7ye Yükleme

Farklı Bir Sistem mi Kullanıyorsunuz? Pagekit PHP ile yazılmış açık kaynaklı bir CMSdir. Pagekit kaynak kodu GitHubda herkese açık olarak barındırılıyor. Bu kılavuz size

Kök olmayan kullanıcılara giriş yapmak için SSH anahtarınızı kullanma

Kök olmayan kullanıcılara giriş yapmak için SSH anahtarınızı kullanma

Vultr, yeni bir örnek oluşturduktan sonra SSH anahtarlarını önceden yüklemenizi sağlayan bir özellik sağlar. Bu, sunucu kök kullanıcısına erişmenizi sağlar, ancak

Debian 9da Diaspora ile Sosyal Ağınızı Kurun

Debian 9da Diaspora ile Sosyal Ağınızı Kurun

Farklı Bir Sistem mi Kullanıyorsunuz? Diaspora gizliliğe duyarlı, açık kaynaklı bir sosyal ağdır. Bu derste, bir Diaspora posının nasıl kurulacağını ve yapılandırılacağını öğreneceksiniz

Debian 9 Üzerinde Yakıt CMS Kurulumu

Debian 9 Üzerinde Yakıt CMS Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Fuel CMS, CodeIgniter tabanlı bir içerik yönetim sistemidir. Kaynak kodu GitHubda barındırılmaktadır. Bu kılavuz size

Arch Linux Üzerinde PostgreSQL 11.1 Kurulumu

Arch Linux Üzerinde PostgreSQL 11.1 Kurulumu

Önkoşullar Güncel Arch Linux çalıştıran bir Vultr sunucusu (bu makaleye bakın.) Sudo erişimi. Kök olarak çalıştırılması gereken komutların önüne # ve bir

Ubuntu 16.10 Üzerinde Snipe-IT Kurulumu

Ubuntu 16.10 Üzerinde Snipe-IT Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Snipe-IT, BT varlık yönetimi için ücretsiz ve açık kaynaklı bir web uygulamasıdır. Laravel 5.2 çerçevesi ve kullanımı üzerine yazılmıştır.

SSL / TLS ile vsFTPd Nasıl Güvenli Hale Getirilir

SSL / TLS ile vsFTPd Nasıl Güvenli Hale Getirilir

Çok Güvenli FTP arka plan programı, ya da sadece vsFTPd, özelleştirme yeteneği olan hafif bir yazılım parçasıdır. Bu derste bir müttefikimiz olacak

Linuxta Ranger Terminal Dosya Yöneticisini Yükleme

Linuxta Ranger Terminal Dosya Yöneticisini Yükleme

Ranger, VI anahtar bağlamaları olan komut satırı tabanlı bir dosya yöneticisidir. Dizin hiyerarşisi manzaralı minimalist ve hoş bir curses arayüzü sağlar

Ubuntu 18.04 LTS Kaynaktan Brotli Nasıl Yapılır

Ubuntu 18.04 LTS Kaynaktan Brotli Nasıl Yapılır

Farklı Bir Sistem mi Kullanıyorsunuz? Brotli, GZIPden daha iyi bir sıkıştırma oranına sahip yeni bir sıkıştırma yöntemidir. Kaynak kodu bu Githuda herkese açık olarak barındırılıyor

CentOS 7de Yalnızca SFTP Kullanıcı Hesaplarını Kurma

CentOS 7de Yalnızca SFTP Kullanıcı Hesaplarını Kurma

Belirli durumlarda, Sistem Yöneticisinin bir kullanıcı hesabı oluşturması ve yalnızca kendi dosyalarını sFTP yoluyla yönetmek için erişimini kısıtlaması gerekebilir, ancak b

Ubuntu 16.04 LAMBA VPS Üzerine Omeka Classic 2.4 CMS Kurulumu

Ubuntu 16.04 LAMBA VPS Üzerine Omeka Classic 2.4 CMS Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Omeka Classic 2.4 CMS, digita paylaşımı için ücretsiz ve açık kaynaklı bir dijital yayıncılık platformu ve İçerik Yönetim Sistemidir (CMS)

Arch Linux Üzerinde Nginx 1.14 Kurulumu

Arch Linux Üzerinde Nginx 1.14 Kurulumu

Önkoşullar Güncel Arch Linux çalıştıran bir Vultr sunucusu (bu makaleye bakın.) Sudo erişimi. Kök olarak çalıştırılması gereken komutların başına # işareti gelir. th

Linuxta SSH ile Kök Girişini Devre Dışı Bırakma veya Kısıtlama

Linuxta SSH ile Kök Girişini Devre Dışı Bırakma veya Kısıtlama

SSH üzerinden kök girişine izin vermek, teknoloji endüstrisinde genellikle zayıf bir güvenlik uygulaması olarak kabul edilir. Bunun yerine, hassas yönetim gerçekleştirebilirsiniz

Ubuntu 16.04 Üzerine RabbitMQ Kurulumu

Ubuntu 16.04 Üzerine RabbitMQ Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? RabbitMQ, Erlang programlama dilinde yazılmış, yaygın olarak kullanılan açık kaynaklı bir mesaj aracısıdır. Mesaj odaklı bir ara katman yazılımı olarak

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7 üzerinde LibreNMS kullanarak ağ cihazlarınızı etkili bir şekilde izleyin. Ağ izleme için gerekli adımları ve yapılandırmaları öğrenin.

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive sunucusu kurmak için gerekli adımlar. Gerekli araçlar ve yükleme süreci hakkında bilgi.

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

OpenNMS, çok sayıda cihazı izlemek ve yönetmek için kullanılabilen bir açık kaynak ağ yönetim platformudur. Ubuntu 16.04 LTS üzerinde OpenNMS kurulumu için tüm adımları keşfedin.

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Farklı Bir Sistem mi Kullanıyorsunuz? LibreNMS tam özellikli bir açık kaynak ağ izleme sistemidir.

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?