Yayını filtreleyin! tcpdump kullanarak ağ trafiğini denetliyoruz. Tcpdump - dosyaya Tcpdump çıktısı örnekleriyle yardımcı öğretici

Oldukça sık, sistem yönetiminde, ağ üzerinden veri aktarımı ile neler olduğuna dair ayrıntılı bir "resmi" görmenin gerekli olduğu durumlar ortaya çıkar. Paket sniffer yardımcı programları, trafiği izleyebilir ve bu gibi durumlarda sorunları tespit edebilir. Bunlardan biri (ve en yaygın olanı), Linux sistemleri için standart bir paket dinleyicisi olan tcpdump'tır.

tcpdump'a ek olarak, örneğin Wireshark ve Tshark gibi ağ trafiğini analiz etmek için tcpdump'ın geliştirilmiş sürümleri olan başka araçlar da vardır, ancak tcpdump yardımcı programı standart kalır ve hala etkilidir. Yardımı ile araya girebilir, belirli bir kritere göre filtreleyebilir ve ayrıca paketlerin çıktısını alabilirsiniz. Paketlere tam erişim için, paketlerin kendileri sistemin düşük seviyeli nesneleri olduğundan, süper kullanıcı olarak tcpdump çalıştırmanız gerektiğine dikkat edilmelidir. Ek olarak, ağ ekipmanına bağlı olarak, tüm veya yalnızca belirli paketlerin kesilmesine izin veren (veya izin vermeyen) veya bunlar hakkında yalnızca belirli bilgileri sağlayan belirli koşullar vardır. Ağ donanımı ( LAN kartı, yönlendirici vb.) paketlere erişimi desteklemeli / izin vermelidir, yani paketler hakkındaki bilgileri daha yüksek bir yazılım düzeyine aktarmak için bir mekanizmaya sahip olmalıdır (veya sağlamalıdır) ve bu durumda diğer paket analizörleri gibi tcpdump olduğu ortaya çıkar. mümkün olduğunca etkili. Bu arada, donanım arayüzleri, eğer karışık modda çalışıyorlarsa, yani "rastgele" modda çalışıyorlarsa, sistem çekirdeğinin tüm paketleri, yani diğer bilgisayarlara gönderilenleri bile "görmesine" izin verir ve cihazlar.

tcpdump nasıl çalışır?

Belirtildiği gibi, tcpdump, ağ trafiğini analiz etmek için standart yardımcı programdır. Linux dağıtımları... Yardımcı program Van Jacobson tarafından yazılmıştır. Tarihi boyunca tcpdump çok etkili ve güvenilir bir araç olduğunu kanıtlamıştır. Bu nedenle, şu anda birçok analog, trafik izleme sonuçlarını okumak / yazmak için ana dosya formatı olarak tcpdump - libcap formatını kullanır.

tcpdump başladığında, otomatik olarak ağ arayüzlerini arar ve ilk bulunanı analiz için kullanır. Bu nedenle, doğru arayüzün ayrıştırıldığından emin olmak için çıktıya dikkat etmeniz gerekir. Aksi takdirde, istenen arayüzü kullanmak için manuel olarak ayarlamak kolaydır. Yardımcı program, DNS hizmeti çalışmadığında veya çok yavaş olduğunda, yani tcpdump bunları analiz etmeden önce paket kaybı riski olduğunda çok yararlı olan bir modda çalışabilir.

tcpdump seçenekleri

İstenen ağ arabirimini belirtmek için -i seçeneğini kullanın. Cihazların (bilgisayarlar, ekipman) adreslerini bilmeniz gerekiyorsa, -n seçeneğini belirtmeniz gerekir. DNS sorunları için de çok kullanışlıdır. -r seçeneği, bir dosyadan paket bilgilerini okur. Paketler hakkında daha ayrıntılı bilgi gerektiğinde -v seçeneği yardımcı olacaktır. Dosyaya bilgi işlemek için bir -w seçeneği de vardır. Unutulmamalıdır ki -w seçeneği kullanıldığında dosyaya sadece paket başlıkları ile ilgili bilgiler yazılır. 1056 değerine sahip -s seçeneği (bu değer MTU paket boyutuna bağlı olsa da) dosyaya ek bilgi yazılmasına (-w ile birlikte) izin verir. Veri hacimleri yapı olarak çok büyük ve karmaşık olabilir (metin olmasına rağmen) ve bu nedenle gelecekte örneğin işlenmesi için uygun yüksek performanslı yardımcı programların kullanılması önerilir.

tcpdump komutunun formatı aşağıdaki gibidir:

tcpdump[-seçenekler] [filtreler]

Resmi belgelerde (man tcpdump komutu), oldukça çeşitli ve karmaşık filtreler kullanarak bu yardımcı programı farklı durumlar için kullanmanın birkaç örneğini bulabilirsiniz.

Ayrıca, tcpdump'ın (ve aslında tüm paket analizörlerinin) çalışması sırasında büyük miktarda bilgi üretebileceğini ve operasyonundaki hatalar dahil olmak üzere ağı büyük ölçüde yükleyebileceğini not etmek de önemlidir. Bu nedenle, trafiği analiz ederken rasyonel bir yaklaşım kullanmalısınız - görevin (veya sorunun) durumuna ve koşullarına bağlı olarak, özellikle tcpdump işlevinin çok etkili bir parçası olduğu için filtreler kullanın.

tcpdump çalıştırırken en sık kullanılan anahtarlar tabloda gösterilmiştir.

anahtar

tanım

Ağ ve yayın adreslerini alan adlarına dönüştürür.

Bağlantı katmanı verilerini görüntüler (MAC adresi, protokol, paket uzunluğu). IP adreslerine ek olarak bilgisayarların MAC adresleri de görüntülenecektir.

Dosyada sağlanan filtreyi kullanın. Bu parametreyi kullanırsanız, komut satırındaki filtre yok sayılır.

Paketleri yakalamak için hangi ağ arabiriminin kullanılacağını gösterir. Tüm arayüzleri seçmek için varsayılan eth0'dır. Yerel ağ yoksa, arayüzü kullanabilirsiniz. geri bildirim lo.

Örneğin bir dosyaya yazmak için tcpdump'ın standart akış çıktısını (stdout) kullanın:

kabuk # tcpdump -l | tee out.log // tcpdump işlemini gösterecek ve sonucu out.log dosyasına kaydedecek

Ana bilgisayar adlarına alan adı uzantısı eklemez. Örneğin tcpdump, 'net.library.org' yerine 'net' gösterecektir.

Ana bilgisayar adı yerine IP adresini görüntüler.

Kullandığı protokol yerine bağlantı noktası numarasını görüntüler.

Arayüzü karışık moda sokmaz.

Minimum bilgi görüntüler. Genellikle bu, protokolün adı, paketin nereden geldiği, bağlantı noktaları ve aktarılan veri miktarıdır.

Bu seçenek, daha önce -w seçeneğiyle kaydedilmişse, tcpdump'ın bir dosyadan gelen trafiği okumasını sağlar.

Mutlak sıra numaralarını (ilk sıra numaraları - ISN) göreli sıra numaralarına işlemenize izin vermez.

tcpdump tarafından işlenecek paket bayt sayısı. Görüntülemek için çok sayıda bayt ayarlarsanız, bilgiler ekrana sığmayabilir ve çalışılması zor olabilir. Hangi hedefleri takip ettiğinize bağlı olarak ve bu parametrenin değerini seçmelisiniz. Varsayılan olarak, tcpdump ilk 68 baytı yakalar (SunOS için minimum 96 bayt), ancak tüm paketin içeriğini görmek istiyorsanız, 1514 bayt (Ethernet'teki maksimum çerçeve boyutu) kullanın.

Her satırda bir zaman damgası göstermez.

Belirli bir türdeki paketleri yorumlama. aodv, cnfp, rpc, rtp, rtcp, snmp, tftp, vat, wb türleri desteklenir.

Her satırda biçimlendirilmemiş bir zaman damgası görüntüler.

Tarihle birlikte saati gösterir.

Ayrıntılı bilgi çıktısı (TTL; ID; başlığın toplam uzunluğu ve parametreleri; IP ve ICMP başlıklarının sağlama toplamlarını kontrol eder)

Çıktı, özellikle NFS ve SMB için daha da eksiksiz.

En detaylı bilgilerin görüntülenmesi.

tcpdump verilerini ikili biçimde kaydeder. kullanmanın faydaları Bu method normal dosya yeniden yönlendirme ile karşılaştırıldığında yüksek hız yazma ve bu tür verileri snort gibi diğer programlar tarafından okuma yeteneği, ancak bu dosya insanlar tarafından okunamaz. Konsola ikili veri çıkışı yapmak mümkündür, bunun için -w - kullanmanız gerekir.

Paketin bir listesini onaltılık olarak yapar, paketi daha detaylı analiz etmek için kullanışlıdır. Görüntülenen veri miktarı -s seçeneğine bağlıdır

-x ancak bir bağlantı katmanı başlığı içerir

Paketi ASCII ve onaltılık formatta verir. Bağlantı sırasında hangi metin bilgilerinin iletildiğini görmenize izin verdiği için, bir bilgisayar korsanlığı olayının analiz edilmesi durumunda yararlıdır.

Önceki parametre ile aynı -X ancak bir bağlantı katmanı başlığı içerir.

tcpdump, belirtilen sayıda paketi aldıktan sonra çıkacaktır.

Toplanan paketler hemen bir dosyaya eklenecektir, aksi takdirde bitene kadar hafızada birikecektir.

Tcpdump filtreleri

Filtreler aşağıdaki sınıflandırmalara ayrılmıştır

ev sahibi- Host adresi

Liman- paketleri yakalamak istediğiniz bağlantı noktası

portrange - bağlantı noktası aralığı

- ağ

Tcpdump net 192.168.0.0/24

kaynak veya hedefin 192.168.0.0/24 ağından ip adresleri olduğu tüm trafiğin yakalanması

Tcpdump bağlantı noktası 80

80 numaralı bağlantı noktasındaki tüm trafik yakalanacak.

İzleme nesnesine göre trafik yönü

kaynak- gönderen

dst- alıcı

örneğin komut

Src ana bilgisayarı 172.31.25.200

Gönderici ip adresinin 172.31.25.200 olduğu trafiği yakalama

Protokol

eter- temel ağ teknolojisi Ethernet, genellikle filtrede donanım MAC adresinin kullanıldığını gösterir

ip- IPv4 protokolü

ip6- IPv6 protokolü

arp- ARP protokolü

tcp- TCP protokolü

udp- UDP protokolü

Herhangi bir protokol belirtilmezse, tüm protokoller için trafik yakalanır

Örneğin, komut

Udp bağlantı noktası 5060

udp protokolü bağlantı noktası 5060 aracılığıyla trafik yakalama

Kompozit Filtreler

Trafiği daha esnek bir şekilde filtrelemek için mantıksal işlemleri kullanabilirsiniz.

"Ve ve (&&)

"VEYA" - veya (||)

"DEĞİL" - değil (!) - değer inversiyonu

Ayrıca bu işlemlerin önceliği şu şekildedir:

en yüksek öncelik ters çevirme işlemidir

sonra mantıklı bir "VE"

en düşük öncelik OR işlemidir.

İşlemlerin önceliği parantez kullanılarak değiştirilebilir.

(net 172.16.0.0/24 veya ana bilgisayar 172.31.0.5) ve tcp bağlantı noktası 80

TCP trafiğini yakalama ve 172.16.0.0/24 ağına veya 172.31.0.5 ana bilgisayarına ait 80 numaralı bağlantı noktasını tek başına veya birlikte herhangi bir ana bilgisayara kullanma

(net 172.16.0.0/24 || ana bilgisayar 172.31.0.5) && tcp bağlantı noktası 80 değil

TCP trafiği dışında herhangi bir trafiğin yakalanması ve 172.16.0.0/24 ağına veya 172.31.0.5 ana bilgisayarına ait bağlantı noktası 80'i tek başına veya birlikte herhangi bir ana bilgisayar olarak kullanma

tcpdump linux örnekleri

Bir dosyaya çıktı yazma

$ sudo tcpdump -w sshtrace.tcpdump tcp bağlantı noktası 22

sshtrace.tcpdump dosyası, geçerli kullanıcının ana dizininde varsayılan olarak oluşturulacaktır. myrouter.tcpdump dosyasındaki bilgileri görüntülemek için -r seçeneğini kullanın:

$ tcpdump -r sshtrace.tcpdump

eth1 arayüzünden tüm trafiği kaldır

$ tcpdump –i eth1

eth1 arabirimindeki bir dizi bağlantı noktasından trafiği kaldırın

$ tcpdump -i eth1 port aralığı 100-200

ICMP olmayan 172.16.0.1'e giden tüm trafik.

tcpdump Rusça talimat ve örnekler.

-A her paketin çıktısını (bağlantı katmanı başlıkları olmadan) ASCII formatında ayarlar. Bu mod, HTTP trafiğini toplamak için kullanışlıdır.

-C <число пакетов>Belirtilen sayıda paket yakalandıktan sonra programın sonlandırılacağını belirtir.

-C<размер файла>her yeni paketi ona yazmadan önce yakalama dosyasının boyutunun kontrol edilip edilmeyeceğini belirtir. Dosya boyutu file_size parametresinin değerini aşarsa dosya kapatılır.
ve yaratıldı yeni dosya ona paketler yazmak için. Yakalama dosyaları için -w parametresiyle belirtilen ad kullanılır ve ikinci dosyadan başlayarak isme şu şekilde eklenir:
sonek dosya numarası. file_size değişkeni, dosya boyutunu milyonlarca bayt olarak belirtir (megabayt = 1.048.576 bayt olarak değil).

-NS derlenmiş paket eşleştirme kodunu insan tarafından okunabilir bir biçimde döker ve programdan çıkar.

-dd eşleşen kodu bir C program parçası olarak atar.

-ddd eşleşme kodunu ondalık değerlerden oluşan bir dize ve ardından sayaç değerine sahip bir dize olarak boşaltın.

-NS tcpdump'ın paket toplayabildiği sistemdeki ağ arayüzlerini listeler. Her ağ arayüzünün bir adı ve numarası vardır, ardından aşağıdakiler tarafından takip edilebilir:
arayüzün metinsel açıklaması. Arayüz adı ve numarası, paketlerin tek bir arayüzden toplandığını belirtmek için -i bayrağıyla birlikte kullanılabilir.

Bu seçenek, mevcut ağ arayüzleri hakkında bilgi sağlamayan sistemler için çok faydalı olabilir3.

-D bayrağı, tcpdump ile derlenmişse desteklenmez. eski versiyon pcap_findalldevs () işlevini desteklemeyen libpcap.

-e bağlantı katmanı başlığını her döküm satırına yazdırır.

-E bir algoritma ve bir sır kullanımını belirtir [e-posta korumalı] ipaddr'a yönlendirilen IPsec ESP paketlerinin şifresini çözmek ve Güvenlik Parametre Dizini alanında ve içerir
sp. spi ve adres kombinasyonu, sınırlayıcı olarak virgül veya yeni satır kullanılarak tekrarlanabilir. IPv4 ESP paketlerinin sırrının şurada ayarlandığını unutmayın:
şu anda destekleniyor.

Des-cbc, 3des-cbc, blowfish-cbc, rc3-cbc, cast128-cbc veya hiçbiri algoritma olarak kullanılabilir. Varsayılan değer des-cbc'dir. Şifre çözme yeteneği
paket, yalnızca tcpdump derlendiğinde şifreleme seçenekleri etkinleştirildiyse sağlanır.

Secret parametresi, ESP gizli anahtarının ASCII metnini içerir. Secret, 0x karakterle başlıyorsa, onaltılık bir değer okunur. Seçenek, aşağıdakilerin kullanıldığını varsayar:
ESP, RFC 1827'ye değil, RFC 2406'ya uygundur. Bu seçenek yalnızca hata ayıklama için desteklenir ve içinde tanıtıldığı gibi gerçek gizli anahtarlarla kullanılmamalıdır.
komut satırında, IPsec anahtarı diğer sistem kullanıcıları tarafından kullanılabilir

Seçenekleri komut satırında açıkça belirtmeye ek olarak, bunları tcpdump'ın ilk ESP paketini aldığında okuyacağı bir seçenekler dosyasında belirtebilirsiniz.

-F yabancı IPv4 adreslerinin sayısal biçimde görüntülenmesini belirtir. Bu seçeneği kullanmak, çeviri yapmaya çalışırken Sun NIS sunucularıyla ilgili sorunlardan kurtulmanızı sağlar.
yerel olmayan adresler IPv4 adresinin yabancılık kontrolü, paketi alan arayüzün adresi ve maskesi kullanılarak gerçekleştirilir. Adres ve arayüz maskesi mevcut değilse
(örneğin, numarasız arabirimler kullanırken veya kukla herhangi bir arabirimi kullanarak Linux'taki tüm adreslerden paketler yakalarken), bu seçenek işe yarayacaktır.
yanlış.

-F<файл> belirtilen dosyada bulunan filtrelerin kullanımını belirtir. Bu durumda komut satırında belirtilen filtreler yok sayılır.

-ben<интерфейс> belirtilen arabirimden paket koleksiyonunu ayarlar. Arayüz belirtilmemişse, tcpdump sistemi mevcut arayüzlerin bir listesini arar ve minimum aktif bir cihaz seçer.
sayı (geri döngü hariç).

İÇİNDE Linux sistemleriÇekirdek 2.2'den bu yana, sistemdeki tüm aktif arabirimlerden paketleri toplamak için any adlı yapay bir arabirim desteklenir. Dikkat edin, koleksiyon
herhangi bir cihazdan gelen paketler normal (rastgele değil) modda gerçekleştirilir.

Sistem -D bayrağını destekliyorsa, bu bayrağı argüman olarak kullanırken görüntülenecek arabirim numarasını belirtebilirsiniz.

-l stdout satırlarının arabelleğe alınmasını ayarlar. Bu seçenek, paketleri toplarken verileri görüntülemek istediğinizde kullanışlıdır. Örneğin, komutlar

tcpdump -l | tişört tarihi

tcpdump -l> veri ve kuyruk -f veri

dat dosyasına paket yazma ve eşzamanlı konsol çıktısı sağlar.

-L bilinen bağlantı katmanı türlerinin bir listesinin görüntülenmesini ve programın sonlandırılmasını belirtir.

-m<файл> belirtilen dosyadan SMI MIB tanım modülünü yükler. Bu seçenek, birden çok MIB modülünü yüklemek için tekrar tekrar kullanılabilir.

-n adreslerin ve bağlantı noktası numaralarının sembolik adlara çevrilmesini devre dışı bırakır.

-N tam etki alanı adlarının değil, yalnızca ana bilgisayar adlarının kullanıldığını belirtir. Örneğin bu seçeneği kullanırken lhotze.bilim-systems.net yerine benim iş istasyonu olacak
lhotze olarak gösterilir.

paketlerin filtreleme koşullarıyla eşleşip eşleşmediğini kontrol etmek için kod iyileştiriciyi devre dışı bırakır. Optimize edicinin düzgün çalışmadığını düşünüyorsanız bu seçeneği kullanın.

-P arayüzün yakalama moduna alınması gerekmediğini programa gösterir 5. -p seçeneği, ether ana bilgisayarı (local-hw-addr) veya ether yayın filtresi ile kullanılamaz.

-Q minimum bilgi miktarının çıktısını ayarlar.

-R bu bayrağın ayarlanması, ESP / AH paketlerinin eski belirtimi6 kullandığını ve tcpdump'ın yeniden oynatma önleme alanları çıkarmayacağı varsayılır.
Geri çalma). ESP/AH belirtimi sürüm alanlarını içermediğinden tcpdump, paket başlıklarından ESP/AH protokol sürümünü belirleyemez.

-r<файл> tcpdump -w komutu kullanılarak veya tcpdump biçimini destekleyen başka bir program (örneğin, Ethereal) kullanılarak daha önce oluşturulmuş bir dosyadan veri okunmasını belirtir. eğer
- karakteri dosya adı olarak belirtilir, standart giriş aygıtından (stdin) gelen veri akışı kullanılır.

-S göreli olanlar yerine mutlak TCP sıra numaralarının yazdırıldığını belirtir.

-s varsayılan 68 bayt7 yerine her snaplen paketinden bayt yakalamayı ayarlar. IP, ICMP, TCP ve UDP protokolleri için 68 değeri uygundur ancak
bazı DNS ve NFS paketleri için protokol bilgileri. Yakalama çerçevesinin (anlık görüntü) küçük boyutu nedeniyle bazı paketlerin kaybı, çıktı verilerinde form alanları tarafından belirtilir.
[| proto] ', burada proto, paketin parçasının kesildiği protokol katmanının adıdır8. Yakalama çerçevesini artırmanın ek geçici sonuçlarla sonuçlanacağını unutmayın.
paket işleme maliyeti ve arabelleğe alınan paket sayısında azalma, bazı paketlerin kaybolmasına neden olabilir. Kullanmak Minimum değer izin verecek olan snaplen
ilgilendiğiniz protokol hakkında bilgi kaybetmekten kaçının. snaplen = 0 ayarı tam paketleri yakalayacaktır.

-T<тип> filtre tarafından seçilen paketlerin, parametre tarafından belirtilen tipte paketler olarak yorumlanacağını belirtir. Şu anda desteklenen türler aodv9, cnfp10, rpc11, rtp12, rtcp13,
snmp14, tftp15, vat16 ve wb17.

-T her döküm satırında zaman damgalarının çıktısını devre dışı bırakır.

-tt her döküm satırında biçimlendirilmemiş zaman damgalarının çıktısını ayarlar.

-ttt her bir döküm satırındaki önceki ve mevcut paketlerin yakalanması arasındaki zaman aralıklarının (mikrosaniye cinsinden) çıktısını ayarlar.

-tttt her döküm satırı için zaman damgalarının varsayılan çıktısını belirtir.

-u kod çözme olmadan NFS tanıtıcılarının çıktısını belirtir.

-U-w seçeneğiyle kaydedilen dosyalar için "paket düzeyinde arabelleğe alma" modunu ayarlar. Bu modda, her paket yakalanır yakalanmaz çıktı dosyasına yazılır.
(çıktı arabelleğinin dolmasını beklemeden). -U bayrağı, tcpdump işlevi desteklemeyen eski bir libpcap seçeneğiyle derlenmişse desteklenmeyecektir.
pcap_dump_flush().

-v dosyaları yakalarken ek bilgilerin görüntülenmesini ayarlar. Bu bilgiler TTL (Yaşama Süresi), kimlik, toplam boyut, IP seçenekleri vb. içerebilir.
bu bayrağın kullanılması ayrıca sağlama toplamlarını kullanarak ek bir paket bütünlüğü denetimi gerçekleştirir (örneğin, IP ve ICMP protokolleri için).

-vv bilgi çıktı miktarında ek bir artışı belirtir (örneğin, SMB paketlerinin tam kodunun çözülmesi, ek NFS yanıt alanlarının çıktısı vb.).

-vvv görüntülenecek maksimum bilgi miktarını ayarlar (örneğin, telnet SB… SE seçenekleri tam olarak görüntülenir). -X anahtarıyla birlikte kullanıldığında, Telnet seçenekleri de görüntülenir.
onaltılık gösterim.

-w<файл> ham paketlerin kaydını belirtir. Bir dosyada toplanan paketler daha sonra -r bayrağı kullanılarak görüntülenebilir veya analiz için diğer programlara aktarılabilir.
(örn. Ethereal). Dosya adı olarak - karakteri belirtilirse, standart çıktı aygıtına (stdout) yazma yapılır.

-x yakalanan her paket için bir onaltılık dökümün çıktısını (bağlantı katmanı başlığı yok) ayarlar. Görüntülenen bilgi miktarı, iki değerden daha küçük olanı ile belirlenir -
paketin boyutu ve snaplen parametresinin değeri. Tam bağlantı katmanı çerçevelerini yakalarken, ağ katmanı paketi varsa, dökümün ayrıca doldurma baytları içerebileceğini unutmayın.
küçük bir boyutu var.

-xx Bağlantı katmanı başlıkları da dahil olmak üzere her paket için onaltılık bir dökümün çıktısını belirtir.

-X Bağlantı düzeyi üstbilgileri olmadan onaltılık ve ASCII biçiminde döküm çıktısını belirtir. Bu seçenek, yeni protokolleri analiz ederken çok kullanışlı olabilir.

-XX bağlantı düzeyi başlıklar dahil olmak üzere onaltılık ve ASCII biçiminde döküm çıktısını belirtir.

-y<тип> paketleri yakalarken kullanılan bağlantı katmanının türünü belirtir. Desteklenen değerler -L bayrağı kullanılarak görüntülenebilir.

Örnekler

  • Tüm giden trafiği yakalarız

tcpdump -i re0 -n -nn -ttt dst ana bilgisayarı 192.168.1.2

  • Çok büyük bir veri akışı elde edildiği için ssh oturumumuz dışında tüm giden trafiği yakalıyoruz.

tcpdump -i re0 -n -nn -ttt 'dst ana bilgisayar 192.168.1.110 ve değil (src ana bilgisayar 192.168.1.2 ve dst bağlantı noktası 22)'

  • dns sohbetini görüntüle

tcpdump -i re0 -n -nn -ttt 'host 192.168.1.110 ve port 53'

  • icmp paketlerini görüntüleme

tcpdump -i re0 -n -nn -ttt 'ip protokolü \ icmp'

  • 10.7.0 ağındaki bir hedefle 10.7.20 ağından geçen trafik. veya 10.7.24.:

tcpdump -nvX kaynak ağ 10.7.20.0.0 / 16 ve dst net 10.7.0.0/8 veya 10.7.24.0/16

  • 10.7.0.0 ağından 22 veya 4589 numaralı hedef bağlantı noktalarına gelen trafik:

tcpdump 'src 10.7.0.0 ve (dst bağlantı noktası 22 veya 4589)'

  • Arayüzdeki trafiği görüntüleyin:
  • bir ana bilgisayarın trafiğini görün:

tcpdump ana bilgisayarı 192.168.1.1

  • Bağlantı noktasındaki trafiği görüntüleyin:

tcpdump kaynak bağlantı noktası 80

  • Barındırılacak IP trafiğini görüntüleyin:

tcpdump ip ana bilgisayarı 192.168.1.2

  • Ana bilgisayara ARP trafiğini görüntüleyin:

tcpdump arp ana bilgisayarı 192.168.1.2

  • Ana bilgisayara giden RARP trafiğine bakıyoruz:

tcpdump rarp ana bilgisayarı 192.168.1.2

  • Ana bilgisayar pav253 dışındaki trafiğe bakıyoruz

tcpdump, pav253'ü barındırmıyor

  • Pav253 ve pav210 üzerindeki trafiğe bakıyoruz

tcpdump ana bilgisayar pav253 veya ana bilgisayar pav210

  • Host sitesine re0 arayüzündeki paketlerin içeriğine bakıyoruz

tcpdump -X -i re0 ana bilgisayar sitesi

  • icq trafiği

tcpdump -X -i re0 bağlantı noktası aol

  • Her paketten 1500 bayt okurken ve IP'yi ana bilgisayar adına dönüştürmeden tun0 arayüzündeki paketlerin içeriğine ya.ru ana bilgisayarına bakarız.

tcpdump -X -s 1500 -n -i re0 ana bilgisayar sitesi

  • En aktif etkileşimler

tcpdump -tn -c 10000 -i re0 tcp veya udp | awk -F "." '(1 $ ″ yazdırın." 2 $ ″. "3 $ ″." 4 $ '| \ sıralama | tek -c | sıralama -nr | awk '$ 1> 100'

  • Tüm TCP paketlerine SYN bayrağı (oturum başlangıcı) ile bakarız.

tcpdump -i eth0 -nn tcp == 2 ve src net 192.168.1.0/24

  • Syn ve fin paketlerini dışarıdan görüntüleyin

tcpdump 'tcp & (tcp-syn | tcp-fin)! = 0 ve src ve dst net 192.168.1.0' değil

  • 80 numaralı bağlantı noktasından syn / fin / ack verileri hariç tüm ipv4 http paketlerini görüntüleyin

tcpdump 'tcp bağlantı noktası 80 ve (((ip - ((ip & 0xf)<>2)) != 0)’

  • Yalnızca senkronizasyon paketlerini görüntüle

Tcpdump, hem ağ yöneticileri hem de güvenlik uzmanları için çok yararlı olan son derece kullanışlı bir ağ analiz aracıdır. Doğal olarak, tcpdump ile çalışırken maksimum bilgiyi elde etmek için TCP / IP protokol yığınını anlamanız yeterlidir. Kolaylık sağlamak için, örneğin daha kullanışlı ve akıllı programlar kullanabilirsiniz, ancak test edilen makineye ek hizmetler yüklemenin mümkün olmadığı durumlar genellikle ortaya çıkar ve ardından tcpdump basitçe yeri doldurulamaz, yönetici uğruna uyanmaz Bir unix sunucusuna X-Windows yüklemek için paketleri analiz etme, özellikle çoğu unix sisteminde tcpdump yardımcı programı varsayılan olarak dahil edildiğinden.

TCP / IP protokolünü anlamak, analizörü kullanmak ve paketleri ayrıştırarak ağdaki sorunları gidermek ve gidermek için size yeterli alan sağlar. Bu yardımcı programın optimal kullanımı, ağ protokollerinin ve bunların işleyişinin iyi anlaşılmasını gerektirdiğinden, bir mühendisin her durumda bir ağdaki veri iletim mekanizmalarını bilmesi ve anlaması gereken komik bir durum olduğu ortaya çıkıyor. dahil tcpdump, hem sorun giderme hem de kendi kendine eğitim olmak üzere her şekilde yararlıdır.

Aşağıda, özellikle tüm bu tuşlar ve tuşlar kolayca unutulduğundan, bu yardımcı programı en eksiksiz ve ayrıntılı olarak kullanmanıza yardımcı olacak birkaç seçenek bulunmaktadır ve bu örnekler hafızayı yenilemek için çok faydalıdır.

Kullanılan ilk anahtar, adresleri alan adlarına çevirme girişimlerini yasaklayan ve böylece bize bağlantı noktaları olan temiz IP adresleri veren -n'dir.

İkincisi -X, her pakete paketin hem onaltılı (onaltılı) hem de ASCII içeriğini çıkarmasını söyler.
Ve son seçenek, göreli TCP numaralandırmasının çıktısını mutlak olanla değiştiren -S'dir. Mesele şu ki, göreceli numaralandırma ile bazı problemler dikkatinizden gizlenebilir.

tcpdump'ın diğer yardımcı programlara göre ana avantajının, paketlerin ayrıntılı ve manuel olarak ayrıştırılmasına izin vermesi olduğu anlaşılmalıdır. Ayrıca, varsayılan olarak tcpdump'ın bir paketin yalnızca ilk 68 baytını kullandığını hatırlamanız gerekir. daha fazlasını görmeniz gerekiyorsa, sayının yakalanacak bayt sayısı olduğu -s sayı anahtarını kullanmalısınız. 0 sayısı belirtilirse, tam paket yakalama gerçekleşir, bu nedenle standardın tam olarak yakalanmasını sağlayacak olan 1514 değerini kullanmak daha iyidir. Ethernet ağları, paket.

En sık kullanılan anahtarların listesi:
-c: Yakalanan paketin sonraki her kaydından önce yakalama dosyasının boyutunu kontrol edin, boyut daha büyükse dosya kaydedilir ve kayıt yeni bir dosyaya gider
-e: ethernet başlığını (bağlantı katmanı) her döküm satırına yazdır
-i any: Tüm trafiğe ihtiyaç duymanız durumunda tüm arayüzleri dinleyin.
-n: adreslerin etki alanına veya sembolik adlara dönüştürülmesini yasaklar
-nn: adreslerin ve bağlantı noktalarının etki alanına veya sembolik adlara çevrilmesine izin vermez
-q: Protokolle ilgili bilgi çıktısını azaltarak kısa bilgi çıktısı.
-X: paketin hem hex hem de ASCII içeriğini verir
-v, -vv, -vvv: Yakalanan paketler hakkında ek bilgileri görüntüleyerek daha geniş analize olanak tanır.
Kullanılacak birkaç örnek:

# Standart paket çıkışı
tcpdump -nS
# Genişletilmiş standart çıktı
tcpdump -nnvvS
# Paketin derinlemesine ayrıştırılması
tcpdump -nnvvXS
#En detaylı bilgi trafik hakkında
tcpdump -nnvvXSs 1514

İfadeler, daha hedefli taramalara ve trafik türlerine izin verir. İfadeleri kullanmayı öğrenmek, tcpdump'ı bir sistem yöneticisinin elinde çok verimli bir araç haline getirir. Üç ana ifade türü vardır: type, dir ve proto.
Tür ifadesi için seçenekler ana bilgisayar, ağ ve bağlantı noktasıdır.
Dir tarafından verilen yönü ifade etmek için, mevcut seçenekler src, dst, src veya dst ve src ve dst.
Birkaç standart ifade:

ana bilgisayar // IP adresine dayalı trafik analizi ( -n belirtilmemişse sembolik adlarla da çalışır)
tcpdump ana bilgisayarı 1.2.3.4

src, dst // yalnızca belirli bir hedef veya verici için trafik analizi
tcpdump kaynağı 2.3.4.5
tcpdump dst 3.4.5.6

net // belirli bir ağa ait trafiği yakalar
tcpdump net 1.2.3.0/24

proto // tcp, udp ve icmp ile çalışır. Protodan bahsedilmediğini unutmayın.
tcpdump icmp

port // belirli bir porttan gelen trafiği analiz et (gelen veya giden)
tcpdump bağlantı noktası 3389

src, dst bağlantı noktası // gelen veya giden bağlantı noktasına göre filtre
tcpdump kaynak bağlantı noktası 1025
tcpdump dst bağlantı noktası 3389

Ancak en güçlü araç, analiz edilen trafik hakkında daha ayrıntılı bilgi yalıtımı için ifadeler ve seçenekler için koşullar belirlemenize izin veren işlenenlerdir.

VE
ve veya &&
VEYA
veya veya ||
HARİÇ
değil veya!

3379 numaralı hedef bağlantı noktasıyla 10.15.123.33 kaynağından gelen TCP trafiği:

# tcpdump -nnvvS tcp ve src 10.15.123.33 ve dst bağlantı noktası 3379

10 veya 172.16 ağlarına yönelik 192.168 ağından gelen trafik:

# tcpdump -nvX kaynak ağı 192.168.0.0/16 ve dst net 10.0.0.0/8 veya 172.16.0.0/16

192.168.0.2 hedefli ve 172.16 ağından gelen ICMP olmayan trafik:

# tcpdump -nvvXSs 1514 dst 192.168.0.2 ve src net 172.16.0.0/16 ve icmp değil

Eros veya Ares ana bilgisayarlarından gelen ancak standart SSH bağlantı noktasına gitmeyen trafik (için bu ifadenin ad çözümlemesi gerekli):

# tcpdump -vv src eros veya ares ve dst bağlantı noktası 22 değil

Yukarıdaki örneklerden de görebileceğiniz gibi, herhangi bir amaç için herhangi bir ifade oluşturabiliriz. Ayrıca, karmaşık bir sözdizimi kullanarak, her tür trafiği analizden hariç tutabiliriz.

Tek bir sorguda belirtilen seçenek gruplarını ve havuzlarını içeren sorgular oluşturabileceğimiz de unutulmamalıdır. Ancak tcpdump yardımcı programının bunlara dikkat etmesi için ifadeyi tek tırnak içine alarak parantez içine alınmaları gerekir:
Ana bilgisayar 10.0.2.4'ten 3379 veya 22 hedef bağlantı noktalarına trafik:
# tcpdump 'src 10.0.2.4 ve (dst bağlantı noktası 3379 veya 22)'

Örneğin SYN veya RST paketlerini çıkarmak için TCP bayraklarına dayalı filtreleme yapmak da mümkündür:

Tüm URG paketlerini analiz edin:
# tcpdump ‘tcp & 32! = 0 ′

Tüm ACK paketlerini analiz edin:
# tcpdump ‘tcp & 16! = 0 ′

Tüm PSH paketlerini analiz edin:
# tcpdump 'tcp & 8! = 0 ′

Tüm RST paketlerini analiz edin:
# tcpdump 'tcp & 4! = 0 ′

Tüm SYN paketlerini analiz edin:
# tcpdump 'tcp & 2! = 0 ′

tcpdump yardımcı programı, ağ paketlerini yakalamak ve analiz etmek için çok güçlü ve popüler bir araçtır. Belirli bir arayüzden gelen ve giden tüm paketleri görüntülemenizi sağlar ve komut satırından çalışır. Elbette, ağ paketlerini analiz etmek için Wirshark'ı kullanabilirsiniz, bu bir grafik yardımcı programdır, ancak bazen yalnızca terminalde çalışmanız gereken durumlar vardır.

Tcpdump, Wireshark'tan daha kötü değildir ve paket analizi için gerekli tüm yeteneklere sahiptir, ayrıca, aynı Wireshark'ı kullanarak daha sonra analiz etmek için tüm yakalanan paketleri bir dosyaya kaydedebilirsiniz. Bu yazıda, ağ paketlerini yakalamak için tcpdump'ın nasıl kullanılacağına bakacağız.

Birçok dağıtım, varsayılan olarak tcpdump komutuyla gelir, ancak dağıtımınızda yoksa, resmi depolardan çok kolay bir şekilde yükleyebilirsiniz. Örneğin, Ubuntu / Debian'da:

sudo apt tcpdum p'yi kurun

fötr / Kırmızı şapka/ CentOS:

sudo yum tcpdump'u kurun

Kurulum tamamlandığında işe gidebilirsiniz.

Tcpdump komutu

Yardımcı programla çalışma örneklerine geçmeden önce, sözdizimine ve temel seçeneklerine bakalım. Komut aşağıdaki sözdizimine sahiptir:

$ tcpdump seçenekleri -i arayüz filtreleri

Arama yaparken izleyeceğiniz arayüze geçtiğinizden emin olun. Arayüz belirtilmemişse, listedeki ilki kullanılacaktır. Seçenekler, yardımcı programın görüntülenmesini ve temel işlevlerini özelleştirir ve filtreler, istenmeyen paketleri filtrelemenize olanak tanır. Şimdi ana seçeneklere bir göz atalım:

  • -A- tüm paketleri ASCII formatında çıktılayın;
  • -C- n'inci paket sayısını yakaladıktan sonra programı kapatın;
  • -C- bir dosyaya paket yazarken dosya boyutunu kontrol edin ve belirtilenden büyükse yeni bir dosya oluşturun;
  • -NS- mevcut ağ arayüzlerinin bir listesini görüntüleyin;
  • -e- her paket için bağlantı düzeyi bilgilerini görüntüleyin, bu örneğin MAC adresini görüntülemek için yararlı olabilir;
  • -F- ip adresleri için alan adını görüntüleyin;
  • -F- paketleri bir arayüzden değil bir dosyadan okuyun;
  • -G- belirli bir süre sonra yeni bir günlük dosyası oluşturun;
  • -H- 802.11s başlıklarını algılamak;
  • -ben- paketleri yakalamak için arayüzün adı. Herhangi birini belirterek tüm arabirimlerden paketleri yakalayabilirsiniz;
  • -BEN- geçen tüm paketleri yakalamak için arayüzü izleme moduna geçirin;
  • -J- paketleri kaydetmek için Zaman Damgası biçimini ayarlayın;
  • -J- mevcut Zaman Damgasını görün;
  • -K- paketlerin sağlama toplamlarını kontrol etmeyin;
  • -l- çıktıya kaydırma desteği ekleyin;
  • -L- arayüz için desteklenen bağlantı protokollerini görüntüleyin;
  • -n- alan adlarını gösterme;
  • -r- -w ile oluşturulmuş bir dosyadan paketleri okuyun;
  • -v, -vv, -vvv- daha ayrıntılı çıktı;
  • -Q- minimum bilgi görüntülemek;
  • -w- çıktıyı bir dosyaya yazın;
  • -Z- adına dosyaların oluşturulacağı kullanıcı.

Bunların hepsi seçenekler değildir, ancak çoğu görev için sizin için yeterli olacaktır. Daha sık filtreler uygulayacağız. Filtreleri kullanarak yalnızca görmek istediğiniz paket türlerini filtreleyebilirsiniz. ip adresi, protokol, ağ, arayüz ve daha birçok parametreye göre filtreleme yapabilirsiniz. Ancak tcpdump filtrelerini örneklerle ele alacağız.

tcpdump nasıl kullanılır

tcpdump kullanmaya geçmeden önce, hangi ağ arayüzlerini kullanabileceğinize bakmanız gerekir. Bunu yapmak için komutu -D seçeneğiyle çalıştırın:

eth0 arayüzündeki trafiği yakalayarak tcpdump örneklerine bakmaya başlayalım, benim için bu internete bağlı ana arayüz. Programın çalışması için süper kullanıcı haklarına ihtiyacı var, bu nedenle sudo belirtmeyi unutmayın:

sudo tcpdump -i eth0

Komutu durdurmak için Ctrl + C tuşlarına basın. Çıktıda, yakalanan tüm paketleri hemen göreceksiniz. Her paket için kayıt formatı şöyle görünecektir:

13: 03: 41.795599 IP udp032919uds.hawaiiantel.net.6881> 192.168.1.2.52055: Bayraklar [.], Sıra 640160396: 640161844, ack 436677393, kazanma 2050, seçenekler, uzunluk 1448

Bu biçim veri paketleri için tipiktir, protokole bağlı olarak siyahla vurgulanan metin farklılık gösterecektir. Önce zaman damgası, ardından protokol gelir, ardından yeşil, gönderenin ip adresini işaretler ve mavi, muhatabın adresini işaretler. bu durum, bilgisayarımız. Sonra ek tcp parametreleri ve sonunda bayt cinsinden paket boyutu vardır. Çıktının ayrıntı düzeyi -v seçenekleriyle kontrol edilebilir, Örneğin:

sudo tcpdump -v -i eth0

Burada IP protokolü hakkında zaten bilgi var:

IP (tos 0x0, ttl 64, id 50309, ofset 0, bayraklar, proto TCP (6), uzunluk 64)

TTL paket ömrü, TCP versiyonu ve başlık alanının uzunluğu hakkında bilgi edinebiliriz. -vv seçeneği, bazı durumlarda paket sağlama toplamı denetimini ve içeriğini yazdıracaktır.

Seçeneklerden sonra paketler için filtreler belirleyebilirsiniz. Paketleri filtreleyebileceğiniz ana parametreler şunlardır:

  • ev sahibi- ana bilgisayar adı;
  • ip- IP adresi;
  • proto- protokol;
  • - ağ veya alt ağ adresi;
  • Liman- bağlantı noktası adresi;
  • kaynak- gönderen ile ilgili parametre;
  • dst- alıcı ile ilgili parametre;
  • Aşağıdaki protokoller mevcuttur: eter, fddi, tr, wlan, ip, ip6, arp, rarp, decnet, tcp ve udp.

İstediğiniz sonucu elde etmek için tüm bunları birbiriyle birleştirebilirsiniz. Örneklere daha yakından bakalım. Yalnızca bilgisayarımıza gönderilen paketleri filtreleyelim:

sudo tcpdump -i eth0 ip dst 192.168.1.2

Belirli bir düğüme gönderilen paketleri de seçebiliriz:

sudo tcpdump -i eth0 dst ana bilgisayarı google-public-dns-a.google.com

Gördüğünüz gibi, bunlar DNS paketleri ve burada TCP bayrakları yerine yararlı bilgiler var, ana bilgisayarın ip adresi için bir istek. Belirli bir ana bilgisayardan yanıt paketleri de seçebilirsiniz:

sudo tcpdump -i eth0 src ana bilgisayarı google-public-dns-a.google.com

Paketin tam içeriği burada değil, almak istiyorsanız -v veya -vv seçeneğini kullanmanız gerekir:

sudo tcpdump -vv -i eth0 ana bilgisayar dst google-public-dns-a.google.com

ve operatörüyle birden çok filtreyi tek bir filtrede birleştirebilirsiniz:

sudo tcpdump -i eth0 dst ana bilgisayarı google-public-dns-a.google.com ve src ana bilgisayarı google-public-dns-a.google.com

Hem ve ve veya birleştirme işlemlerinden kullanılabilir ve parantezler önceliği belirtmek için de kullanılabilir. Ana bilgisayar belirtmeniz gerekmez, çoğu durumda src veya dst yeterlidir, yardımcı programın kendisi ne demek istediğini anlayacaktır. Bağlantı noktaları için aynı tasarım kullanılabilir. Örneğin, DNS'ye yönelik tüm istekleri veya yanıtları filtreleyebiliriz (53 numaralı bağlantı noktasında):

sudo tcpdump -vv -i eth0 bağlantı noktası 53

Aynısı http (port 80) için de yapılabilir:

sudo tcpdump -vv -i eth0 bağlantı noktası 80

Doğal olarak, daha spesifik sonuçlar için burada dst ve src kullanabilirsiniz. Tek bir bağlantı noktasını değil, tüm bağlantı noktalarını filtreleyebilirsiniz:

sudo tcpdump port aralığı 21-23

Protokollerden birini belirtirseniz, yalnızca o protokolün paketlerini filtrelersiniz, örneğin tcp, udp veya arp:

sudo tcpdump -vv arp

Aynı şekilde, tüm udp paketlerini seçebilirsiniz:

sudo tcpdump -vv udp

Ağ atamasına göre bir filtre de mevcuttur:

sudo tcpdump ağı 129.168.1.1/24

Ek olarak, paketleri boyutlarına göre filtreleyebilirsiniz, örneğin 32 bayttan küçük:

sudo tcpdump daha az 32

Veya 128'den fazla:

tcpdump daha büyük 128

sudo tcpdump -i eth0 -w dosya.pcap

Bu dosya, bu tür dosyaları okumak için herhangi bir programla, örneğin Wireshark ile açılabilir. Bir dosyaya kaydedilen paketleri açmak için -r seçeneğini kullanın:

sudo tcpdump -r dosyası.pcap

Dikkat etmeye değer bir şey daha var. Bu, paketlerin içeriğini görüntüleme biçimidir. -A seçeneğini kullanarak bir paketin içeriğini ASCII formatında görüntüleyebilirsiniz:

sudo tcpdump -A -i eth0

Ayrıca içeriği HEX ve ASCII formatında görüntüleyebilirsiniz, bunun için -XX kullanın:

sudo tcpdump -XX -i eth0

sonuçlar

Bu yazıda, tcpdump'ın nasıl kullanılacağını ele aldık. Sadece çalışan çok güçlü bir ağ analizörüdür. Komut satırı... Umarım bu bilgi sizin için yararlı olmuştur ve şimdi tcpdump kullanmak çok daha kolay olacaktır, hala sorularınız varsa, yorumlarda sorun!

tcpdump ders videosunu tamamlamak için:

Linux'ta ağ paketlerini analiz etmeniz veya engellemeniz gerekiyorsa, bunun için konsol yardımcı programını kullanmak en iyisidir. tcpdump... Ancak sorun, oldukça karmaşık yönetiminde ortaya çıkıyor. Sıradan bir kullanıcı, yardımcı programla çalışmanın uygunsuz olduğunu düşünecektir, ancak bu yalnızca ilk bakışta. Makale size tcpdump'ın nasıl çalıştığını, hangi sözdizimine sahip olduğunu, nasıl kullanılacağını anlatacak ve ayrıca kullanımına dair sayısız örnek verecektir.

Ayrıca Okuyun: Ubuntu, Debian, Ubuntu Sunucusunda İnternet Bağlantısı Kurma Kılavuzları

Çoğu Linux tabanlı işletim sistemi geliştiricisi, tcpdump yardımcı programını önceden yüklenmiş olarak içerir, ancak herhangi bir nedenle dağıtımınızda yoksa, her zaman şu adresten indirebilir ve kurabilirsiniz: "Terminal"... İşletim sisteminiz Debian tabanlıysa ve bu Ubuntu ise, Linux Darphanesi, Kali Linux ve benzerleri için şu komutu çalıştırmanız gerekir:

sudo apt tcpdump'u kurun

Kurulum sırasında bir şifre girmeniz gerekir. Lütfen yazarken görüntülenmediğini unutmayın; ayrıca kurulumu onaylamak için sembolü de girmeniz gerekir. "NS" ve bas Girmek.

Red Hat, Fedora veya CentOS'unuz varsa kurulum komutu şöyle görünecektir:

sudo yam tcpdump'u kurun

Yardımcı program yüklendikten sonra hemen kullanabilirsiniz. Bu ve çok daha fazlası metinde daha fazla tartışılacaktır.

Sözdizimi

Diğer tüm komutlar gibi, tcpdump'ın da kendi sözdizimi vardır. Bunu bilerek, komutu yürütürken dikkate alınacak tüm gerekli parametreleri ayarlayabilirsiniz. Sözdizimi aşağıdaki gibidir:

tcpdump seçenekleri -i arayüz filtreleri

Komutu kullanırken, izleme için arayüzü belirttiğinizden emin olmalısınız. Filtreler ve seçenekler isteğe bağlı değişkenlerdir, ancak daha esnek özelleştirmeye izin verirler.

Seçenekler

Bir seçenek belirtmeniz gerekmese de, yine de mevcut olanları listelemeniz gerekir. Tablo, listenin tamamını değil, yalnızca en popüler olanları gösterir, ancak görevlerin çoğunu çözmek için fazlasıyla yeterlidir.

Seçenek Tanım
-A ASCII formatındaki paketleri sıralamaya izin verir
-l Bir kaydırma işlevi ekler
-ben Girdikten sonra izlenecek ağ arayüzünü belirtmeniz gerekir. Tüm arayüzleri izlemeye başlamak için seçenekten sonra "herhangi" kelimesini girin
-C Belirtilen paket sayısı kontrol edildikten sonra izleme işlemini sonlandırır
-w Doğrulama raporu içeren bir metin dosyası oluşturur
-e Veri paketinin internet bağlantı seviyesini gösterir
-L Yalnızca belirtilen ağ arabirimi tarafından desteklenen protokollerin çıktısını verir
-C Boyutu belirtilenden daha büyükse, toplu iş yazarken başka bir dosya oluşturur
-r -w seçeneğiyle oluşturulmuş okuma için bir dosya açar
-J Paketleri kaydetmek için Zaman Damgası formatı kullanılacak
-J Mevcut tüm Zaman Damgası biçimlerini görüntülemenizi sağlar
-G Günlükleri olan bir dosya oluşturmaya yarar. Seçenek ayrıca, yeni bir günlük oluşturulacak olan geçici bir değerin belirtilmesini gerektirir.
-v, -vv, -vvv Seçenekteki karakter sayısına bağlı olarak komut çıktısı daha detaylı hale gelecektir (karakter sayısı ile doğru orantılı olarak artar)
-F Çıktı, IP adreslerinin alan adını gösterir.
-F Bilgilerin ağ arayüzünden değil, belirtilen dosyadan okunmasına izin verir.
-NS Kullanılabilecek tüm ağ arayüzlerini gösterir
-n Alan adlarının görüntülenmesini devre dışı bırakır
-Z altındaki kullanıcıyı belirtir hesap hangi tüm dosyalar oluşturulacak
-K Sağlama toplamı analizini atlama
-Q Kısa bilgilerin gösterilmesi
-H 802.11s başlıklarını algılamaya izin verir
-BEN Paketleri monitör modunda yakalarken kullanılır

Seçenekleri analiz ettikten sonra, biraz aşağıda doğrudan uygulamalarına gideceğiz. Bu arada filtrelere de bakacağız.

Filtreler

Bu makalenin en başında belirtildiği gibi, tcpdump sözdizimine filtreler ekleyebilirsiniz. Bunların en popülerleri şimdi dikkate alınacaktır:

Yukarıdaki filtrelerin tümü birbiriyle birleştirilebilir, bu nedenle bir komut verirken sadece görmek istediğiniz bilgiyi gözlemleyeceksiniz. Yukarıdaki filtrelerin kullanımını daha ayrıntılı anlamak için örnekler vermeye değer.

kullanım örnekleri

Sık kullanılan tcpdump sözdizimi varyasyonları şimdi sunulacak. Sonsuz sayıda varyasyonları olabileceğinden, hepsini listelemek mümkün olmayacaktır.

Arayüzlerin listesini görüntüleme

Her kullanıcının başlangıçta izlenebilen tüm ağ arayüzlerinin listesini kontrol etmesi önerilir. Yukarıdaki tablodan, seçeneği kullanmayı biliyoruz -NS bu yüzden terminalde aşağıdaki komutu çalıştırın:

Gördüğünüz gibi, örnekte tcpdump komutu kullanılarak görüntülenebilecek sekiz arayüz var. Makale örnekler sunacak ppp0, başka birini kullanabilirsiniz.

Normal trafik yakalama

Bir ağ arayüzünü izlemeniz gerekiyorsa, bunu seçeneği kullanarak yapabilirsiniz. -ben... Arayüzün adını girdikten sonra belirtmeyi unutmayınız. İşte böyle bir komutu çalıştırmanın bir örneği:

sudo tcpdump -i ppp0

Lütfen dikkat: Komutun kendisinden önce, süper kullanıcı hakları gerektirdiğinden "sudo" girmeniz gerekir.

Not: Enter'a bastıktan sonra, "Terminal" yakalanan paketleri sürekli olarak görüntüler. Akışlarını durdurmak için Ctrl + C tuş bileşimine basmanız gerekir.

Komutu ek seçenekler ve filtreler olmadan çalıştırırsanız, izlenen paketleri görüntülemek için aşağıdaki biçimi görürsünüz:

22: 18: 52.597573 IP vrrp-topf2.p.mail.ru.https> 10.0.6.67.35482: Bayraklar, sıra 1: 595, ack 1118, 6494 kazan, seçenekler, uzunluk 594

Rengin vurgulandığı yer:

  • mavi - paketin alındığı saat;
  • yeşil - gönderenin adresi;
  • mor - alıcının adresi;
  • gri - tcp hakkında ek bilgi;
  • kırmızı - paket boyutu (bayt olarak gösterilir).

Bu sözdizimi, bir pencerede çıktı verme yeteneğine sahiptir. "Terminal" ek seçenekler kullanmadan.

-v seçeneğiyle trafik yakalama

Tablodan da bildiğiniz gibi, seçenek -v bilgi miktarını artırmanıza olanak tanır. Bir örnek alalım. Aynı arayüzü kontrol edelim:

sudo tcpdump -v -i ppp0

Burada göründüğünü görebilirsiniz Sonraki satırçıktıda:

IP (tos 0x0, ttl 58, id 30675, ofset 0, bayraklar, proto TCP (6), uzunluk 52

Rengin vurgulandığı yer:

  • turuncu - protokol versiyonu;
  • mavi - protokol ömrü;
  • yeşil - alan başlığının uzunluğu;
  • mor - tcp paket versiyonu;
  • kırmızı - paket boyutu.

Ayrıca komut sözdiziminde seçeneği yazabilirsiniz. -vv veya -vvv, ekranda görüntülenen bilgi miktarını daha da artıracaktır.

-w ve -r seçenekleri

Seçenekler tablosu, tüm çıktı verilerini daha sonra görüntüleyebilmeniz için ayrı bir dosyaya kaydetme yeteneğinden bahsetti. Seçenek bundan sorumludur. -w... Kullanımı oldukça basittir, sadece komutta belirtin ve ardından uzantılı gelecekteki dosyanın adını girin. ".Pcap"... Her şeyi bir örnekle ele alalım:

sudo tcpdump -i ppp0 -w dosya.pcap

Lütfen unutmayın: günlükleri bir dosyaya yazarken Terminal ekranında hiçbir metin görüntülenmez.

Kaydedilen çıktıyı görüntülemek istediğinizde, seçeneğini kullanmalısınız. -r, ardından önceden kaydedilmiş dosyanın adını yazın. Diğer seçenekler ve filtreler olmadan uygulanır:

sudo tcpdump -r dosyası.pcap

Bu seçeneklerin her ikisi de daha sonra ayrıştırmak için büyük miktarda metin kaydetmeniz gerektiğinde harikadır.

IP filtreleme

Filtre tablosundan biliyoruz ki dst konsol ekranında yalnızca komut söz diziminde belirtilen adres tarafından alınan paketleri görüntülemenize olanak tanır. Bu, bilgisayarınız tarafından alınan paketleri görüntülemeyi çok kolaylaştırır. Bunu yapmak için, komutta IP adresinizi belirtmeniz yeterlidir:

sudo tcpdump -i ppp0 ip dst 10.0.6.67

Ek olarak gördüğünüz gibi dst, komutta bir filtre de ekledik ip... Başka bir deyişle, bilgisayara paketleri seçerken diğer parametrelere değil, IP adreslerine dikkat etmesini söyledik.

Ayrıca giden paketleri IP'ye göre filtreleyebilirsiniz. Örnekte yine IP'mizi vereceğiz. Yani şimdi bilgisayarımızdan başka adreslere hangi paketlerin gönderildiğini izleyeceğiz. Bunu yapmak için aşağıdaki komutu çalıştırın:

sudo tcpdump -i ppp0 ip kaynağı 10.0.6.67

Gördüğünüz gibi komut sözdiziminde filtreyi değiştirdik dstüzerinde kaynak, böylece makineye göndereni IP ile aramasını söyler.

HOST'a göre filtreleme

Komuttaki IP ile benzetme yaparak bir filtre belirleyebiliriz. ev sahibi ilgilenilen ana bilgisayarla paketleri filtrelemek için. Yani, sözdiziminde gönderici / alıcı IP adresi yerine ana bilgisayarını belirtmeniz gerekecektir. Şuna benziyor:

sudo tcpdump -i ppp0 dst ana bilgisayarı google-public-dns-a.google.com

Resimde gösteriyor ki "Terminal" yalnızca IP adresimizden google.com ana bilgisayarına gönderilen paketler görüntülenir. Anlayabileceğiniz gibi, google ana bilgisayarı yerine başka bir tane girebilirsiniz.

IP filtrelemede olduğu gibi, söz diziminde dst ile değiştirilebilir kaynak bilgisayarınıza gönderilen paketleri görmek için:

sudo tcpdump -i ppp0 src ana bilgisayarı google-public-dns-a.google.com

Lütfen dikkat: ana bilgisayar filtresi dst veya src'den sonra gelmelidir, aksi takdirde komut bir hata oluşturur. IP filtreleme durumunda ise, aksine, dst ve src ip filtresinden önce gelir.

ve ve veya filtresini uygulama

Bir komutta aynı anda birkaç filtre kullanmanız gerekiyorsa, bunun için filtreyi uygulamanız gerekir. ve veya veya(duruma göre değişir). Sözdiziminde filtreler belirleyerek ve bunları bu operatörlerle ayırarak, bunların bir bütün olarak çalışmasını "sağlarsınız". Örneğin, şuna benziyor:

sudo tcpdump -i ppp0 ip dst 95.47.144.254 veya ip src 95.47.144.254

Komut sözdiziminden ekranda ne göstermek istediğimizi görebilirsiniz. "Terminal" 95.47.144.254 adresine gönderilen tüm paketler ve aynı adresten alınan paketler. Ayrıca bu ifadedeki bazı değişkenleri değiştirebilirsiniz. Örneğin, IP yerine HOST belirtin veya adreslerin kendilerini değiştirin.

Bağlantı noktası ve bağlantı noktası filtresi

Filtre Liman Belirli bir bağlantı noktasına sahip paketler hakkında bilgi almanız gerektiğinde mükemmeldir. Bu nedenle, yalnızca yanıtları veya DNS sorgularını görmeniz gerekiyorsa, 53 numaralı bağlantı noktasını belirtmeniz gerekir:

sudo tcpdump -vv -i ppp0 bağlantı noktası 53

Http paketlerini görüntülemek istiyorsanız, 80 numaralı bağlantı noktasını girmeniz gerekir:

sudo tcpdump -vv -i ppp0 bağlantı noktası 80

Diğer şeylerin yanı sıra, bağlantı noktası aralığını bir kerede izlemek mümkündür. Bunun için bir filtre uygulanır. portekizce:

sudo tcpdump port aralığı 50-80

Gördüğünüz gibi, bir filtre ile birlikte portekizce ek seçenekler belirtmek gerekli değildir. Sadece aralığı ayarlamanız gerekir.

Protokole göre filtreleme

Ayrıca yalnızca bir protokole uyan trafiği de görüntüleyebilirsiniz. Bunu yapmak için, bu protokolün adını bir filtre olarak kullanın. Bir örneğe bakalım udp:

sudo tcpdump -vvv -i ppp0 udp

Komutu çalıştırdıktan sonra resimde gördüğünüz gibi "Terminal" sadece protokollü paketler görüntülendi udp... Buna göre, başkaları tarafından filtreleyebilirsiniz, örneğin, arp:

sudo tcpdump -vvv -i ppp0 arp

veya tcp:

sudo tcpdump -vvv -i ppp0 tcp

Filtre ağı

Şebeke ağ atamalarına göre paketleri filtrelemeye yardımcı olur. Diğerleri kadar kullanımı kolaydır - sözdiziminde özniteliği belirtmeniz gerekir ve ardından ağ adresini girin. İşte böyle bir komuta bir örnek:

sudo tcpdump -i ppp0 net 192.168.1.1

Paket boyutuna göre filtrele

İki ilginç filtreyi daha ele almadık: az ve daha büyük... Filtreli tablodan, veri paketlerinin daha fazlasını çıkarmaya hizmet ettiklerini biliyoruz ( az) veya daha az ( daha büyük) öznitelik girildikten sonra belirtilen boyutta.

Yalnızca 50 bit işaretini aşmayan paketleri izlemek istediğimizi varsayalım, ardından komut şöyle görünecektir:

sudo tcpdump -i ppp0 daha az 50

Şimdi harita yapalım "Terminal" 50 bitten büyük paketler:

sudo tcpdump -i ppp0 daha büyük 50

Gördüğünüz gibi aynı şekilde uygulanıyorlar, tek fark filtre isminde.

Çözüm

Makalenin sonunda, komutun olduğu sonucuna varabiliriz. tcpdumpİnternet üzerinden iletilen herhangi bir veri paketini takip edebileceğiniz harika bir araçtır. Ancak bunun için sadece komutun kendisini girmek yeterli değildir. "Terminal"... İstediğiniz sonuca ancak her türlü seçenek ve filtreyi ve bunların kombinasyonlarını kullanırsanız ulaşabilirsiniz.