Linux-da şəbəkə paketlərini analiz və ya müdaxilə etmək lazımdırsa, konsol yardım proqramından istifadə etmək yaxşıdır tcpdump. Lakin problem onun olduqca mürəkkəb idarəetməsində yaranır. Orta istifadəçiyə kommunal ilə işləməyin əlverişsiz olduğu görünəcək, ancaq bu, yalnız ilk baxışdan. Məqalədə tcpdump-un necə işlədiyini, hansı sintaksisi olduğunu, necə istifadə olunduğunu və istifadəsinin çoxsaylı nümunələri veriləcəkdir.
Buna da baxın: Ubuntu, Debian, Ubuntu Serverdə İnternet bağlantısı qurmaq üçün təlimatlar
Quraşdırma
Linux əsaslı əməliyyat sistemlərinin əksər inkişaf etdiriciləri tcpdump yardım proqramını əvvəlcədən quraşdırılmışların siyahısına daxil edir, lakin nədənsə paylanmağınızda deyilsə həmişə yükləyə və quraşdıra bilərsiniz "Terminal". Əməliyyat sisteminiz Debian-a əsaslanırsa və bunlar Ubuntu, Linux Mint, Kali Linux və bənzərlərdirsə, bu əmri işlətməlisiniz:
sudo apt tcpdump quraşdırın
Quraşdırarkən bir parol daxil etməlisiniz. Unutmayın ki, zəng edərkən daxil edilməyiniz lazım olan parametrləri təsdiqləmək üçün göstərilmir D və vurun Daxil edin.
Red Hat, Fedora və ya CentOS varsa, quraşdırma əmri bu kimi görünəcək:
sudo yam tcpdump qurun
Kommunal quraşdırıldıqdan sonra dərhal istifadə edilə bilər. Bu və daha çox şey sonradan mətndə müzakirə ediləcəkdir.
Buna da baxın: Ubuntu Serverində PHP Quraşdırma Təlimatı
Sintaksis
Hər hansı digər əmr kimi, tcpdump da öz sintaksisinə malikdir. Onu bilərək, əmri icra edərkən nəzərə alınacaq bütün lazımi parametrləri təyin edə bilərsiniz. Sintaksis aşağıdakı kimidir:
tcpdump variantları -i interfeys filtrləri
Əmrdən istifadə edərkən izləmə üçün interfeysi göstərməlisiniz. Filtrlər və seçimlər isteğe bağlı dəyişənlərdir, lakin daha çevik bir fərdiləşdirməyə imkan verir.
Seçimlər
Bir seçim göstərmək lazım deyilsə də, hələ də mövcud olanları sadalamalısınız. Cədvəl bütün siyahılarını göstərmir, yalnız ən populyar olanları göstərir, lakin vəzifələrin əksəriyyətini həll etmək üçün kifayətdir.
Seçim | Tərif |
---|---|
-A | Paketləri ASCII formatı ilə çeşidləməyə imkan verir |
-l | Bir hərəkət funksiyası əlavə edir. |
-i | Girdikdən sonra nəzarət ediləcək şəbəkə interfeysini göstərməlisiniz. Bütün interfeysləri izləməyə başlamaq üçün seçimdən sonra "hər hansı" sözünü daxil edin |
-c | Göstərilən sayda paketi yoxladıqdan sonra izləmə prosesini bitirir |
-w | Bir doğrulama hesabatı ilə bir mətn faylı yaradır |
-e | Məlumat bağlantısı internet bağlantısı səviyyəsini göstərir |
-L | Yalnız göstərilən şəbəkə interfeysinin dəstəklədiyi protokolları göstərir. |
-C | Ölçüsü göstəriləndən daha böyük olduqda paket qeydiyyatı zamanı başqa bir fayl yaradır |
-r | -W seçimi istifadə edərək yaradılan bir oxu faylını açır |
-j | Paketləri qeyd etmək üçün TimeStamp formatı istifadə ediləcək |
-J | Bütün mövcud TimeStamp formatlarını görməyə imkan verir |
-G | Günlük faylı yaratmağa xidmət edir. Seçim eyni zamanda müvəqqəti bir dəyər tələb edir, bundan sonra yeni bir jurnal yaradılacaqdır |
-v, -vv, -vvv | Seçimdəki simvolların sayından asılı olaraq əmrin çıxışı daha ətraflı olacaq (artım simvol sayına birbaşa mütənasibdir) |
-f | Çıxışda IP ünvanlarının domen adı göstərilir |
-F | Şəbəkə interfeysindən deyil, göstərilən fayldan məlumat oxumağa imkan verir |
-D | İstifadə edilə bilən bütün şəbəkə interfeyslərini nümayiş etdirir. |
-n | Domen adlarının göstərilməsini dayandırır |
-Z | Bütün faylların hesabı altında yaradılan istifadəçini təyin edir. |
-K | Checksum təhlili atlama |
-q | Vitrin xülasəsi |
-H | 802.11s başlıqlarını təyin edir |
-Mən | Paketləri monitor rejimində çəkərkən istifadə olunur |
Seçimləri araşdırdıqdan sonra bir az aşağı olduqda birbaşa tətbiqlərinə keçəcəyik. Bu vaxt filtrlərə baxılacaq.
Filtrlər
Məqalənin əvvəlində deyildiyi kimi tcpdump sintaksisinə filtrlər əlavə edə bilərsiniz. İndi onlardan ən populyarları nəzərdən keçiriləcəkdir:
Süzgəc | Tərif |
---|---|
ev sahibi | Host adını təyin edir |
xalis | IP alt şəbəkələrini və şəbəkələrini göstərir |
ip | Protokol ünvanı göstərir |
src | Göstərilən ünvandan göndərilən paketləri göstərir |
dst | Göstərilən ünvandan alınan paketləri göstərir |
arp, udp, tcp | Protokollardan biri tərəfindən süzülmə |
liman | Müəyyən bir limana aid məlumatları göstərir |
və ya | Bir komandada bir neçə filtri birləşdirir. |
az böyükdür | Çıxış paketləri göstərilən ölçüdən daha kiçik və ya daha böyükdür |
Yuxarıda göstərilən filtrlərin hamısı bir-biri ilə birləşdirilə bilər, buna görə əmr verildikdə yalnız görmək istədiyiniz məlumatları görə bilərsiniz. Yuxarıda göstərilən filtrlərin istifadəsini daha ətraflı başa düşmək üçün nümunələr verməyə dəyər.
Buna da baxın: Linux Terminalında tez-tez istifadə olunan əmrlər
İstifadə nümunələri
Tcpdump əmri üçün tez-tez istifadə olunan sintaksis seçimləri indi göstəriləcəkdir. Onların hamısının siyahıya alınması mümkün deyil, çünki sonsuz sayda dəyişiklik ola bilər.
İnterfeyslərin siyahısını görüntüləyin
Hər bir istifadəçiyə əvvəlcə izlənilə bilən bütün şəbəkə interfeyslərinin siyahısını yoxlamaq tövsiyə olunur. Yuxarıdakı cədvəldən bilirik ki, bunun üçün seçimi istifadə etməlisiniz -D, buna görə terminalda aşağıdakı əmri işlədin:
sudo tcpdump -D
Nümunə:
Gördüyünüz kimi, nümunədə tcpdump əmrini istifadə edərək baxıla biləcək səkkiz interfeys var. Məqalədə nümunələr veriləcəkdir ppp0İstənilən birini istifadə edə bilərsiniz.
Normal trafik ələ keçirmə
Bir şəbəkə interfeysini izləmək lazımdırsa, seçimi istifadə edərək bunu edə bilərsiniz -i. Daxil olduqdan sonra interfeys adını unutmağı unutmayın. Budur belə bir əmr nümunəsi:
sudo tcpdump -i ppp0
Xahiş edirik unutmayın: əmrdən əvvəl "sudo" girməlisiniz, çünki bu, super istifadəçi hüquqlarını tələb edir.
Nümunə:
Qeyd: "Terminal" da Enter düyməsini basdıqdan sonra, tutulan paketlər davamlı olaraq göstərilir. Onların axını dayandırmaq üçün düymələrin birləşməsini basmaq lazımdır Ctrl + C.
Əlavə seçimlər və filtrlər olmadan əmri yerinə yetirirsinizsə, nəzarət olunan paketlərin görüntülənməsi üçün aşağıdakı formatı görəcəksiniz:
22: 18: 52.597573 IP vrrp-topf2.p.mail.ru.https> 10.0.6.67.35482: Bayraqlar [P.], seq 1: 595, akk 1118, qalib 6494, seçimlər [nop, nop, TS val 257060077 ecr 697597623], uzunluğu 594
Rəngin vurğulandığı yer:
- mavi - paketin alınma vaxtı;
- narıncı - protokol versiyası;
- yaşıl - göndərənin ünvanı;
- bənövşəyi - alıcının ünvanı;
- boz - tcp haqqında əlavə məlumat;
- qırmızı - paket ölçüsü (baytda göstərilir).
Bu sintaksis bir pəncərədə görüntüləmək qabiliyyətinə malikdir. "Terminal" əlavə seçimlərdən istifadə etmədən.
-V seçimi ilə yol çəkilişi
Cədvəldən məlum olduğu kimi seçimdir -v məlumatın miqdarını artırmağa imkan verir. Bir nümunə götürək. Eyni interfeysi yoxlayın:
sudo tcpdump -v -i ppp0
Nümunə:
Burada aşağıdakı sətrin çıxışda göründüyünü görə bilərsiniz:
IP (tos 0x0, ttl 58, id 30675, ofset 0, bayraqlar [DF], proto TCP (6), uzunluq 52
Rəngin vurğulandığı yer:
- narıncı - protokol versiyası;
- mavi - protokolun ömrü;
- yaşıl - sahə başlığının uzunluğu;
- bənövşəyi - tcp paketinin versiyası;
- qırmızı - paket ölçüsü.
Komanda sintaksisində bir seçim yaza bilərsiniz -vv və ya -vvv, bu da ekranda göstərilən məlumatların miqdarını daha da artıracaqdır.
Seçim -w və -r
Seçimlər cədvəli, sonradan görünə biləcəyiniz üçün bütün çıxışı ayrı bir faylda saxlamaq imkanını qeyd etdi. Seçim bunun üçün cavabdehdir. -w. Onu istifadə etmək olduqca sadədir, yalnız onu əmrdə göstərin və sonra genişlənmə ilə gələcək faylın adını daxil edin ".pcap". Bir nümunəyə baxaq:
sudo tcpdump -i ppp0 -w file.pcap
Nümunə:
Xahiş edirik unutmayın: bir fayla qeydlər yazarkən "Terminal" ekranda heç bir mətn göstərilmir.
Yazılan çıxışı görmək istədikdə, seçimi istifadə etməlisiniz -r, bundan sonra əvvəllər qeyd edilmiş faylın adını yazın. Digər seçimlər və filtrlər olmadan istifadə olunur:
sudo tcpdump -r file.pcap
Nümunə:
Bu variantların ikisi də sonradan təhlil üçün çox miqdarda mətn saxlamağınız lazım olduqda əladır.
IP Filtrləmə
Filtr masasından bunu bilirik dst konsol ekranında yalnız komanda sintaksisində göstərilən ünvandan alınan paketləri göstərməyə imkan verir. Beləliklə, kompüterinizin qəbul etdiyi paketlərə baxmaq çox rahatdır. Bunu etmək üçün komanda yalnız İP ünvanını göstərməlidir:
sudo tcpdump -i ppp0 ip dst 10.0.6.67
Nümunə:
Gördüyünüz kimi, başqa dst, komandada bir filtr də qeyd etdik ip. Başqa sözlə, kompüterə dedik ki, paket seçərkən digər parametrlərə deyil, onların IP ünvanlarına diqqət yetirin.
IP ilə, siz də gedən paketləri süzgəcdən keçirə bilərsiniz. Misal olaraq yenidən İP-ni verəcəyik. Yəni indi kompüterimizdən digər ünvanlara hansı paketlərin göndərildiyini izləyəcəyik. Bunu etmək üçün aşağıdakı əmri işlədin:
sudo tcpdump -i ppp0 ip src 10.0.6.67
Nümunə:
Gördüyünüz kimi əmr sintaksisində filtri dəyişdirdik dst yandır src, bununla da maşına IP üzərindən göndərici axtarmağı tapşırır.
HOST Filtrləmə
Əmrdəki IP ilə bənzətməklə bir filtr təyin edə bilərik ev sahibipaketləri maraq sahibi ilə süzmək. Yəni, sintaksisdə, göndərənin / qəbuledənin IP ünvanı əvəzinə, onun sahibini göstərməlisiniz. Bu kimi görünür:
sudo tcpdump -i ppp0 dst ana google-public-dns-a.google.com
Nümunə:
Görüntüdə bunu görə bilərsiniz "Terminal" yalnız İP-dən google.com host-a göndərilən paketlər göstərilir. Anladığınız kimi, google ana əvəzinə hər hansı digərini daxil edə bilərsiniz.
IP süzgəcində olduğu kimi, sintaksis dst ilə əvəz edilə bilər srcKompüterinizə göndərilən paketləri görmək üçün:
sudo tcpdump -i ppp0 src ana google-public-dns-a.google.com
Qeyd: ana filtr dst və ya src-dən sonra olmalıdır, əks halda komanda səhv buraxacaq. IP ilə süzülmə vəziyyətində, əksinə, dst və src ip filtrinin önündədir.
Və və ya filtr tətbiq olunur
Bir anda bir əmrdə bir neçə filtrdən istifadə etməlisinizsə, bir filtr tətbiq etməlisiniz və və ya və ya (davaya bağlıdır). Sintaksisdəki filtrləri göstərərək onları bu operatorlarla ayırmaqla, onları bir iş kimi düzəldəcəksiniz. Məsələn, belə görünür:
sudo tcpdump -i ppp0 ip dst 95.47.144.254 və ya ip src 95.47.144.254
Nümunə:
Komanda sintaksisi göstərmək istədiyimizi göstərir "Terminal" 95.47.144.254 ünvana göndərilən bütün paketlər və eyni ünvandan alınan paketlər. Bu ifadədəki bəzi dəyişənləri də dəyişə bilərsiniz. Məsələn, IP yerinə HOST daxil edin və ya birbaşa adresləri dəyişdirin.
Port və porttrange filtri
Süzgəc liman müəyyən bir portu olan paketlər haqqında məlumat almalı olduğunuz hallarda mükəmməldir. Beləliklə, yalnız cavabları və ya DNS sorğularını görmək lazımdırsa, 53 portu göstərməlisiniz:
sudo tcpdump -vv -i ppp0 port 53
Nümunə:
Http paketlərini görmək istəyirsinizsə, 80 portu daxil etməlisiniz:
sudo tcpdump -vv -i ppp0 port 80
Nümunə:
Digər şeylər arasında limanların aralığını dərhal izləmək mümkündür. Bunun üçün filtr tətbiq olunur. portret etmək:
sudo tcpdump 50-80 nisbətində portret edir
Gördüyünüz kimi, filtr ilə birlikdə portret etmək əlavə seçimlər tələb olunur. Aralığı təyin edin.
Protokolun süzülməsi
Ayrıca hər hansı bir protokola uyğun gələn trafik göstərə bilərsiniz. Bunu etmək üçün bu protokolun adını filtr kimi istifadə edin. Bir nümunəyə baxaq udp:
sudo tcpdump -vvv -i ppp0 udp
Nümunə:
Şəkildə gördüyünüz kimi, əmrini yerinə yetirdikdən sonra "Terminal" yalnız protokolu olan paketlər göstərildi udp. Müvafiq olaraq, başqalarının filtri edə bilərsiniz, məsələn, arp:
sudo tcpdump -vvv -i ppp0 arp
və ya tcp:
sudo tcpdump -vvv -i ppp0 tcp
Xalis filtr
Operator xalis paketləri şəbəkə təyinatına əsaslanaraq süzməyə kömək edir. Ondan istifadə qalan kimi sadədir - sintaksisdə bir atribut göstərməlisiniz xalis, sonra şəbəkə ünvanını daxil edin. Budur belə bir əmr nümunəsi:
sudo tcpdump -i ppp0 xalis 192.168.1.1
Nümunə:
Paket ölçüsündə filtrləmə
Daha iki maraqlı filtri nəzərdən keçirmədik: az və daha böyük. Filtrləri olan cədvəldən daha çox məlumat paketi çıxartmaq üçün xidmət etdiklərini bilirik (az) və ya daha az (daha böyük) atributu daxil etdikdən sonra göstərilən ölçü.
Tutaq ki, yalnız 50 bit işarəsini aşmayan paketləri izləmək istəyirik, onda əmr bu cür görünəcək:
sudo tcpdump -i ppp0 az 50
Nümunə:
İndi göstərək "Terminal" 50 bitdən böyük paket:
sudo tcpdump -i ppp0 daha böyük 50
Nümunə:
Gördüyünüz kimi, onlar eyni şəkildə tətbiq olunur, yeganə fərq filtrin adındadır.
Nəticə
Məqalənin sonunda komandadan nəticə çıxara bilərik tcpdump - Bu, İnternet vasitəsilə ötürülən istənilən məlumat paketini izləyə biləcəyiniz əla vasitədir. Ancaq bunun üçün komandanlığı özünə daxil etmək kifayət deyil "Terminal". İstədiyiniz nəticə yalnız hər cür seçim və filtrlərdən, habelə onların birləşmələrindən istifadə etsəniz əldə ediləcəkdir.