Linux şəbəkə paketlərini təhlil etməli və ya tutmalısan, bunun üçün konsol proqramını istifadə etmək yaxşıdır. tcpdump. Ancaq problem olduqca mürəkkəb idarəetmədə yaranır. Sıravi bir istifadəçiyə kommunal ilə işləmək üçün əlverişsiz görünəcək, ancaq bu yalnız bir baxışdan ibarətdir. Məqalədə tcpdumpun necə təşkil edildiyi, hansı sintaksis olduğu, necə istifadə ediləcəyi və istifadə olunmasının çoxsaylı nümunələri veriləcək.
Həmçinin baxın: Ubuntu, Debian, Ubuntu Serverda İnternet bağlantısı qurmaq üçün təlimatlar
Quraşdırma
Linux-əsaslı əməliyyat sistemlərinin bir çoxunun inkişaf etmişləri əvvəlcədən quraşdırılmış siyahılardakı tcpdump proqramını daxil edir, lakin nədənsə bu dağıdıcı olmadıqda, həmişə yükləyə və yükləyə bilərsiniz. "Terminal". Sizin əməliyyat sisteminiz Debian əsaslıdırsa və bu Ubuntu, Linux Mint, Kali Linux və buna bənzərsə, bu əmri çalıştırmalısınız:
sudo apt install tcpdump
Quraşdırarkən bir parol daxil etməlisiniz. Xatırladaq ki, yazdığınız zaman, həm də quraşdırılması təsdiqləməyinizə baxmayaraq, simvol daxil edilməlidir "D" və mətbuat Daxil edin.
Red Hat, Fedora və ya CentOS varsa, quraşdırma əmri belə olacaq:
sudo yam yüklə tcpdump
Kommunal quraşdırıldıqdan sonra dərhal istifadə edə bilərsiniz. Bu və daha çox mətndə daha sonra müzakirə olunacaq.
Həmçinin baxın: Ubuntu Server üçün PHP Quraşdırma Kılavuzu
Sintaksis
Başqa bir komanda kimi, tcpdump öz sözdiziminə malikdir. Onu bilmək üçün komanda icrası zamanı nəzərə alınacaq bütün lazımi parametrləri təyin edə bilərsiniz. Sintaksis:
tcpdump variantları -I interfeys filtreleri
Komanda istifadə edərkən izləmək üçün interfeys göstərməlisiniz. Filtreler ve seçenekler zorunlu değişkenler deyil, daha çevik konfigürasyona imkan verir.
Seçimlər
Seçimi müəyyənləşdirmək lazım deyil, baxmayaraq mövcud olanları siyahıya almaq lazımdır. Cədvəl bütün siyahılarını göstərmir, ancaq ən populyar olanları, ancaq vəzifələrin çoxunu həll etmək üçün kifayət qədər çoxdur.
Seçim | Təsvir |
---|---|
-A | Paketləri ASCII formatında düzəldə bilərsiniz |
-l | Bir hərəkət funksiyası əlavə edir. |
-i | Daxil etdikdən sonra izləniləcək şəbəkə interfeysini təyin etməlisiniz. Bütün interfeysləri izləmək üçün seçimdən sonra "hər hansı" sözünü yazın. |
-c | Müəyyən paket sayını yoxlamadan sonra izləmə prosesini tamamlayır. |
-w | Doğrulama hesabatı olan bir mətn faylı yaradır. |
-e | Məlumat paketinin internet bağlantısı səviyyəsini göstərir. |
-L | Yalnız göstərilən şəbəkə interfeysi tərəfindən dəstəklənən protokolları göstərir. |
-C | Ölçüsü göstəriləndən daha böyük olduqda, bir paket yazarkən başqa bir fayl yaradır. |
-r | -W parametri ilə yaradılmışdır ki, oxumaq üçün bir fayl açır. |
-j | Paketlərin qeydiyyatı üçün TimeStamp formatı istifadə olunacaq. |
-J | Bütün mövcud formatları TimeStamp görmək imkanı verir |
-G | Gündəlikləri olan bir fayl yaratmaq üçün istifadə olunur. Seçim həmçinin müvəqqəti dəyəri tələb edir, sonra yeni bir jurnal yaradılacaq |
-v, -vv, -vvv | Seçimdəki simvolların sayından asılı olaraq komandanın çıxışı daha ətraflı olacaq (artım simvol sayına nisbətən mütənasibdir) |
-f | Çıxış IP ünvanının domen adını göstərir |
-F | Məlumatı şəbəkə interfeysindən deyil, göstərilən fayldan oxumağa imkan verir |
-D | Istifadə edilə bilən bütün şəbəkə interfeyslərini nümayiş etdirir. |
-n | Domen adlarının görünüşünü ləğv edir |
-Z | Bütün faylların yaradılacağı hesabı olan istifadəçiyi müəyyənləşdirir. |
-K | Checksum təhlili atlayın |
-q | Qısa məlumatların nümayişi |
-H | 802.11s başlıqlarını algılar |
-İ | Monitor rejimində paketləri çəkərkən istifadə olunur. |
Aşağıdakı variantları nəzərdən keçirdikdən sonra birbaşa ərizələrinə müraciət edirik. Bu vaxt filtrlər nəzərdən keçiriləcək.
Filtrlər
Məqalənin əvvəlində göstərildiyi kimi, tcpdump sintaksisinə filtrlər əlavə edə bilərsiniz. İndi onların ən məşhurları nəzərdən keçiriləcəkdir:
Filtrə | Təsvir |
---|---|
ev sahibi | Əsas adını bildirir. |
net | IP alt şəbəkəsini və şəbəkəni müəyyənləşdirir |
ip | Protokol ünvanı bildirir |
src | Göstərilən ünvandan göndərilən paketləri görüntüləyir |
dst | Göstərilən ünvanla alınan paketləri görüntüler. |
arp, udp, tcp | Protokollardan birinə görə filtreleme |
liman | Müəyyən bir limana aid məlumatları görüntüler. |
və ya | Bir komanda birdən çox filtr birləşdirmək üçün istifadə olunur. |
daha az | Çıxış paketləri müəyyən ölçüdən kiçik və ya daha böyükdür |
Yuxarıda göstərilən bütün filtrlər bir-biri ilə birləşdirilə bilər, buna görə də əmr vermək üçün yalnız görmək istədiyiniz məlumatı görəcəksiniz. Yuxarıda göstərilən filtrelərin daha ətraflı şəkildə başa düşülməsi üçün nümunələr verməyə dəyər.
Həmçinin baxın: Linux Terminalında tez-tez istifadə olunan Komutlar
İstifadə nümunələri
Tez-tez istifadə olunan tcpdump sözdizimi variantları artıq siyahıda olacaq. Bunların hamısı listelenemez, çünki varyasyonları sonsuz ola bilər.
Arayış siyahısına baxın
Hər bir istifadəçinin başlanğıcda izlənilə biləcək 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çimdən istifadə etməlisiniz -Dbu səbəbdən terminaldə aşağıdakı əmr işlədilir:
sudo tcpdump -D
Məsələn:
Gördüyünüz kimi, səkkiz interfeys tcpdump komutundan istifadə edilə bilən nümunədə var. Məqalədə nümunələr veriləcək ppp0, hər hansı digər istifadə edə bilərsiniz.
Normal trafik tutma
Bir vahid şəbəkə interfeysi izləmək üçün ehtiyacınız varsa, bunu seçimlə edə bilərsiniz -i. Daxil etdikdən sonra interfeysin adını daxil etməyi unutmayın. Belə əmri yerinə yetirmək üçün bir nümunə:
sudo tcpdump -i ppp0
Xahiş edirik qeyd edin: komanda özü qarşısında "sudo" girmək lazımdır, çünki superuser hüququ tələb edir.
Məsələn:
Qeyd: "Terminal" -a daxil olunca düyməni basdıqdan sonra tutulan paketlər davamlı olaraq göstərilir. Onların axını dayandırmaq üçün Ctrl + C düyməsini basın.
Əlavə seçim və filtre olmadan komanda çalıştırdıysanız, izlənilən paketləri görüntüləmək üçün aşağıdakı formatı görürsünüz:
22: 18: 52.597573 IP vrrp-topf2.p.mail.ru.https> 10.0.6.67.35482: Flags [P.], seq 1: 595, ack 1118, win 6494, seçenekler [nop, nop, TS val 257060077 ecr 697597623], uzunluğu 594
Rəngin vurgulandığı yer:
- mavi - paketin alındığı vaxt;
- narıncı - protokol versiyası;
- yaşıl - göndərənin ünvanı;
- bənövşəyi - alıcının ünvanı;
- gray - tcp haqqında əlavə məlumat;
- qırmızı - paket ölçüsü (baytlarda göstərilir).
Bu sintaksis pəncərədə çıxış imkanı var "Terminal" əlavə variantlardan istifadə etmədən.
-V seçimi ilə trafik çəkin
Cədvəldən bildiyiniz kimi seçimi -v məlumat miqdarını artırmağa imkan verir. Bir nümunəyə baxaq. Eyni interfeyanı yoxlayın:
sudo tcpdump -v -i ppp0
Məsələn:
Burada aşağıdakı xəttin çıxdığına baxa bilərsiniz:
IP (tos 0x0, ttl 58, id 30675, ofset 0, bayraqları [DF], proto TCP (6), uzunluq 52
Rəngin vurgulandığı yer:
- narıncı - protokol versiyası;
- mavi - protokolun həyatı;
- yaşıl - sahənin başlığının uzunluğu;
- tcp paketinin bənövşəyi versiyası;
- qırmızı - paket ölçüsü.
Həm də komanda sintaksisində seçim yaza bilərsiniz -vv və ya -vv, ekranda göstərilən məlumatların miqdarını daha da artıracaq.
-W və -r seçimi
Seçimlər cədvəli, bütün çıxış məlumatlarını ayrı bir faylda saxlamağın mümkünlüyünü göstərdi ki, onlar daha sonra baxıla bilər. Seçim bunun üçün məsuliyyət daşıyır. -w. Istifadə etmək olduqca sadə, yalnız komanda daxil edin və sonra uzadılması ilə gələcək fayl adını daxil edin ".pcap". Bütün nümunəni nəzərdən keçirin:
sudo tcpdump -i ppp0 -w file.pcap
Məsələn:
Xahiş edirik qeyd edin: bir dosyanın qeydləri yazarkən, "Terminal" ekranında heç bir mətn göstərilmir.
Qeydə alınan nəticəni görmək istədiyiniz zaman, seçimdən istifadə etməlisiniz -rəvvəllər qeyd olunan fayl adını izlədi. Digər variantlar və filtrlər olmadan tətbiq edilir:
sudo tcpdump -r file.pcap
Məsələn:
Hər iki variant da sonrakı təhlili üçün böyük miqdarda mətni qənaət etmək lazım olduğu hallarda mükəmməldir.
IP filtrasiyası
Filtre masasından biz bunu bilirik dst konsol ekranda yalnız komanda sintaksisində göstərilən ünvana daxil olan paketləri göstərməyə imkan verir. Beləliklə, kompüteriniz tərəfindən alınan paketləri görmək çox rahatdır. Bunu etmək üçün komanda yalnız IP ünvanınızı təyin etməlidir:
sudo tcpdump -i ppp0 ip dst 10.0.6.67
Məsələn:
Gördüyünüz kimi, başqa dstKomandada ayrıca filtr qeydə aldıq ip. Başqa sözlə, kompüterə paketləri seçərkən digər parametrlərə deyil, onların IP ünvanlarına diqqət yetirəcəyini söylədik.
IP ilə paketləri filtreleyip göndərə bilərsiniz. Məsələn, biz yenə IP-yə verəcəyik. Yəni indi paketlərimizin kompüterimizdən digər ünvanlara göndərildiyini izləyəcəyik. Bunu etmək üçün aşağıdakı əmri çalıştırın:
sudo tcpdump -i ppp0 ip src 10.0.6.67
Məsələn:
Gördüyünüz kimi, biz filtr sintaksisində dəyişdik. dst on srcbununla da maşına göndəriciyi IP ilə axtarmağa izah edir.
HOST filtrelemesi
Komandada İP ilə müqayisədə bir filtr təyin edə bilərik ev sahibimaraq mərkəzi ilə paketləri yandırmaq. Yəni, sözdizimində göndərən / alıcının IP ünvanının yerinə, onun hostunu göstərməlisiniz. Belə görünür:
sudo tcpdump -i ppp0 dst host google-public-dns-a.google.com
Məsələn:
Təsvirdə siz onu görə bilərsiniz "Terminal" Yalnızca IP-dan google.com-a göndəriləcək olan paketlər göstərilir. Gördüyünüz kimi, google əvəzinə, hər hansı digərinə daxil ola bilərsiniz.
IP filtrasiya ilə olduğu kimi, sintaksis: dst əvəz edilə bilər srcKompüterinizə göndərilən paketləri görmək üçün:
sudo tcpdump -i ppp0 src host google-public-dns-a.google.com
Qeyd: host filter dst və ya src sonra olmalıdır, əks halda komanda səhv yaradır. IP filtrasiyası halında, əksinə, dst və src ip filtrinin önündədir.
Filtr və və ya
Bir komanda birdən çox filtrdən istifadə etməlisinizsə, bir filtr tətbiq etməlisiniz. və və ya və ya (vəziyyətdən asılıdır). Sintaksisdəki süzgəcləri müəyyən edərək və bu operatorlarla bölüşdürməklə, onları "bir" işlə təmin edirsiniz. Bir nümunədə belə görünür:
sudo tcpdump -i ppp0 ip dst 95.47.144.254 ya ip src 95.47.144.254
Məsələn:
Komanda sintaksisindən göstərmək istədiyimizi görə bilərsiniz "Terminal" 95.47.144.254 ünvanına göndərilən bütün paketlər və eyni ünvandan alınan paketlər. Bu ifadədə bəzi dəyişənləri də dəyişə bilərsiniz. Məsələn, IP-nin yerinə HOST-i bildirin və ya ünvanları özləri əvəz edin.
Süzmə portu və portret
Filtrə liman müəyyən bir limana malik paketlər barədə məlumat almaq üçün mükəmməldir. Belə ki, yalnız cavabları və ya DNS sorğularını görmək istəyirsinizsə, 53 nöqtəsini göstərməlisiniz:
sudo tcpdump -vv -i ppp0 port 53
Məsələn:
Http paketlərini görmək istəyirsinizsə, port 80-ə daxil olmalısınız:
sudo tcpdump -vv -i ppp0 port 80
Məsələn:
Başqa şeylər arasında limanların dərhal izlənilməsi mümkündür. Bu filtre tətbiq olunur portret:
sudo tcpdump portrange 50-80
Gördüyünüz kimi, filtrlə birlikdə portret Əlavə variantları göstərmək lazım deyil. Aralığı seçin.
Protokolu süzgəc
Siz həmçinin hər hansı bir protokola uyğun olan trafikləri göstərə bilərsiniz. Bunu etmək üçün, bu protokolun adını bir filtre olaraq istifadə edin. Bir nümunəyə baxaq udp:
sudo tcpdump -vvv -i ppp0 udp
Məsələn:
Göründüyü kimi, əmrinizi icra etdikdən sonra "Terminal" yalnız protokolu olan paketlər göstərildi udp. Buna görə, başqaları tərəfindən, məsələn, arp:
sudo tcpdump -vvv -i ppp0 arp
və ya tcp:
sudo tcpdump -vvv -i ppp0 tcp
Süzgəc şəbəkəsi
Operator net onların şəbəkəsinin təyin edilməsinə əsasən paketləri süzgədə saxlamağa kömək edir. Qalan kimi istifadə etmək asandır - sözdizimində özəlliyi göstərməlisiniz netsonra şəbəkə ünvanını daxil edin. Belə bir əmrə nümunədir:
sudo tcpdump -i ppp0 net 192.168.1.1
Məsələn:
Paket ölçüsü ilə süzgəc
Daha iki maraqlı filtr hesab etmirik: daha az və daha çox. Süzgəcdən olan filtrdən bilirik ki, onlar daha çox məlumat paketini çıxarmağa xidmət edirlər (daha az) və ya daha azdaha çox) atributdan sonra göstərilən ölçüsü daxil edilir.
Yalnız 50 biti aşmayan paketləri izləmək istədikdə deyək, əmr bu kimi görünür:
sudo tcpdump -i ppp0 az 50
Məsələn:
İndi baxaq "Terminal" 50 bitdən böyük paketlər:
sudo tcpdump -i ppp0 daha böyük 50
Məsələn:
Gördüyünüz kimi, onlar eyni dərəcədə istifadə edilir, yalnız fərq filtr adındadır.
Nəticə
Məqalənin sonunda biz komanda ilə nəticələnə bilərik tcpdump - İnternet vasitəsilə ötürülən hər hansı bir məlumat paketini izləyə biləcək böyük bir vasitədir. Lakin bunun üçün komandanın özünə daxil olmaq kifayət deyil "Terminal". Istədiyiniz nəticəyə nail olmaq üçün yalnız hər cür variantları və filtrləri və onların kombinasiyalarını istifadə edərsiniz.