Ако треба да ги анализирате или интервенирате мрежните пакети во Linux, најдобро е да ја користите конзолната алатка за ова. tcpdump. Но проблемот се јавува во неговото прилично сложено управување. Изгледа дека е незгодно обичниот корисник да работи со услугата, но ова е само на прв поглед. Во написот ќе се објасни како е организирана tcpdump, каква синтакса има, како да се користи, како и бројни примери за неговата употреба.
Видете исто така: Упатства за поставување на интернет конекција во Ubuntu, Debian, Ubuntu Server
Инсталација
Повеќето развивачи на Linux-базирани оперативни системи ја вклучуваат tcpdump услугата во листата на однапред инсталирани, но ако поради некоја причина не е во вашата дистрибуција, секогаш можете да ја преземете и инсталирате преку "Терминал". Ако вашиот оперативен систем е базиран на Debian, а ова е Ubuntu, Linux Mint, Kali Linux и слично, треба да ја извршите оваа команда:
sudo apt инсталирај tcpdump
Кога инсталирате треба да внесете лозинка. Забележете дека кога пишувате не е прикажано, исто така, за да ја потврдите инсталацијата, мора да го внесете знакот "Д" и притиснете Внесете.
Ако имате Red Hat, Fedora или CentOS, командата за инсталација ќе изгледа вака:
sudo yam инсталирај tcpdump
Откако ќе се инсталира алатка, можете веднаш да ја користите. Ова и многу повеќе ќе се дискутира подоцна во текстот.
Видете исто така: Упатство за инсталација на PHP за Ubuntu Server
Синтакса
Како и секоја друга команда, tcpdump има своја синтакса. Знаејќи го него, можете да ги поставите сите потребни параметри кои ќе бидат земени предвид при извршување на командата. Синтаксата е:
tcpdump опции -i филтри за интерфејси
Кога ја користите командата, мора да го наведете интерфејсот за следење. Филтри и опции не се задолжителни променливи, но овозможуваат пофлексибилна конфигурација.
Опции
Иако не е неопходно да се специфицира опцијата, сè уште е потребно да ги наброите достапните. Табелата не ја прикажува целата своја листа, туку само најпопуларните, но тие се повеќе од доволно за да ги решат повеќето задачи.
Опција | Дефиниција |
---|---|
-А | Ви овозможува да ги сортирате пакетите во ASCII формат |
-Л | Додава функција за скролување. |
-i | По внесувањето, треба да го наведете мрежниот интерфејс што ќе се следи. За да започнете со следење на сите интерфејси, напишете го зборот "било" по опцијата. |
-c | Завршува процесот на следење по проверка на одреден број на пакети. |
-w | Генерира текстуална датотека со извештај за верификација. |
-е | Го прикажува нивото на интернет врска на пакетот со податоци. |
-Л | Ги прикажува само оние протоколи кои се поддржани од наведениот мрежен интерфејс. |
-C | Креира друга датотека додека пишувате пакет, ако неговата големина е поголема од наведената. |
-r | Отвора датотека за читање која е создадена со опцијата -w. |
-Ј | Формат TimeStamp ќе се користи за снимање на пакети. |
-J | Ви овозможува да ги видите сите достапни формати TimeStamp |
-Г | Се користи за создавање на датотека со дневници. Опцијата, исто така, бара привремена вредност, по што ќе се креира нов дневник |
-v, -vv, -vvv | Во зависност од бројот на знаци во опцијата, излезот на командата ќе стане подетален (зголемувањето е директно пропорционално со бројот на знаци) |
-f | Излезот го покажува името на доменот на IP адресата |
-F | Ви овозможува да читате информации не од мрежниот интерфејс, туку од наведената датотека |
-Д | Ги демонстрира сите мрежни интерфејси кои можат да се користат. |
-n | Го деактивира приказот на имиња на домени |
-Z | Го одредува корисникот според кој профил ќе бидат креирани сите датотеки. |
-K | Прескокни проверки анализа |
-q | Демонстрација на кратки информации |
-H | Открива наслов на 802.11s |
-И | Се користи при снимање на пакети во режим на монитор. |
Откако ги разгледавме опциите, подолу ќе се свртиме директно кон нивните апликации. Во меѓувреме ќе се разгледуваат филтри.
Филтри
Како што беше споменато на самиот почеток на статијата, можете да додадете филтри во tcpdump синтаксата. Сега најпопуларните од нив ќе бидат разгледани:
Филтрирај | Дефиниција |
---|---|
домаќин | Го одредува името на домаќинот. |
net | Ја одредува подневната мрежа и мрежата |
ip | Ја одредува адресата на протоколот |
src | Ги прикажува пакетите кои беа испратени од наведената адреса |
dst | Ги прикажува пакетите кои беа примени од наведената адреса. |
arp, udp, tcp | Филтрирање по еден од протоколите |
порта | Прикажува информации поврзани со одредена порта. |
и, или | Се користи за комбинирање на повеќе филтри во командата. |
помалку, поголемо | Излезни пакети помали или поголеми од наведената големина |
Сите горенаведени филтри може да се комбинираат едни со други, така што при издавање на команда ќе ги набљудува само информациите што сакате да ги видите. За да се разбере подетално употребата на горенаведените филтри, вреди да се дадат примери.
Видете исто така: Често користени команди во Линукс терминал
Примери за употреба
Најчесто се користат опциите за синтакса tcpdump сега. Сите од нив не можат да бидат наведени, бидејќи нивните варијации можат да бидат бесконечни.
Погледнете листа на интерфејси
Се препорачува секој корисник првично да ја провери листата на сите негови мрежни интерфејси кои можат да се следат. Од табелата погоре знаеме дека за ова треба да ја користите опцијата -Д, затоа во терминалот ја стартува следнава команда:
sudo tcpdump -D
Пример:
Како што можете да видите, постојат осум интерфејси во примерот што може да се гледа со помош на командата tcpdump. Написот ќе обезбеди примери за ppp0, можете да користите било кој друг.
Нормално зафаќање на сообраќај
Ако треба да следите еден мрежен интерфејс, можете да го направите ова со опцијата -i. Не заборавајте да го внесете името на интерфејсот откако ќе го внесете. Еве пример за извршување на таква команда:
sudo tcpdump -i ppp0
Ве молиме запомнете: треба да внесете "sudo" пред самата команда, бидејќи таа бара право на супервизорот.
Пример:
Забелешка: по притискање Enter во "Терминал", пресретнатите пакети ќе бидат прикажани континуирано. За да го запрете нивниот проток, треба да ја притиснете комбинацијата на копчиња Ctrl + C.
Ако ја извршите командата без дополнителни опции и филтри, ќе го видите следниов формат за прикажување на следени пакети:
22:20: 52.597573 IP vrrp-topf2.p.mail.ru.https> 10.0.6.67.35482: Знамиња [P.], seq 1: 595, ack 1118, win 6494, опции [nop, nop, TS val 257060077 ecr 697597623], должина 594
Каде е обележана бојата:
- сина - времето на приемот на пакетот;
- верзија на портокал - протокол;
- адреса на зелениот испраќач;
- виолетова - адресата на примачот;
- сива - дополнителни информации за TCP;
- црвена големина на пакет (прикажана во бајти).
Оваа синтакса има способност да излезе во прозорецот "Терминал" без употреба на дополнителни опции.
Снимајте сообраќај со опцијата -v
Како што е познато од табелата, опцијата -v ви овозможува да го зголемите количеството на информации. Да разгледаме пример. Проверете го истиот интерфејс:
sudo tcpdump-V-i ppp0
Пример:
Овде можете да видите дека следнава линија се појави во излезот:
IP (до 0x0, ttl 58, id 30675, офсет 0, знамиња [DF], прото TCP (6), должина 52
Каде е обележана бојата:
- верзија на портокал - протокол;
- сина - животот на протоколот;
- зелена - должината на заглавието на полето;
- виолетова - верзија на TCP пакет;
- црвена големина на пакет.
Исто така во командната синтакса можете да ја напишете опцијата -vv или -vvv, што дополнително ќе го зголеми количината на информации прикажани на екранот.
Опцијата -w и -r
Табелата со опции ја спомена можноста за зачувување на сите излезни податоци во посебна датотека, така што тие може да се видат подоцна. Опцијата е одговорна за ова. -w. Прилично е едноставно да се користи, само внесете го во командата и потоа внесете го името на идната датотека со наставката ".pcap". Размислете за целиот пример:
sudo tcpdump -i ppp0 -w file.pcap
Пример:
Ве молиме запомнете: додека пишувате дневници во датотека, на екранот "Терминал" нема текст.
Кога сакате да го видите снимениот излез, треба да ја користите опцијата -rпроследено со името на претходно снимената датотека. Се применува без други опции и филтри:
sudo tcpdump -r датотека.pcap
Пример:
И двете опции се совршени во случаи каде што треба да заштедите големи количини текст за следните анализи.
IP филтрирање
Од табелата со филтри, го знаеме тоа dst ви овозможува да прикажувате на конзолниот екран само оние пакети кои беа примени од адресата наведена во командната синтакса. Така, многу е погодно да ги видите пакетите добиени од вашиот компјутер. За да го направите ова, тимот само треба да ја наведете вашата IP адреса:
sudo tcpdump -i ppp0 ip dst 10.0.6.67
Пример:
Како што можете да видите, покрај dst, во тимот, исто така го регистриравме филтерот ip. Со други зборови, му кажавме на компјутерот дека при изборот на пакети, тој ќе обрне внимание на нивната IP адреса, а не на други параметри.
Со IP, можете да филтрирате и да испраќате пакети. Во примерот повторно ја даваме нашата IP адреса. Тоа е, ние сега ќе следи кои пакети се праќаат од нашиот компјутер на други адреси. За да го направите ова, извршете ја следнава команда:
sudo tcpdump -i ppp0 ip src 10.0.6.67
Пример:
Како што можете да видите, го сменивме филтерот во командната синтакса. dst на src, на тој начин кажувајќи на машината да пребарува за испраќачот по IP.
HOST филтрирање
По аналогија со IP во тимот, можеме да наведете филтер домаќинда ги откријат пакетите со мноштво интереси. Тоа е, во синтаксата, наместо на IP адресата на испраќачот / примачот, ќе треба да го одредите својот домаќин. Изгледа вака:
sudo tcpdump -i ppp0 dst host google-public-dns-a.google.com
Пример:
На сликата можеш да го видиш тоа "Терминал" Се прикажуваат само оние пакети кои беа испратени од нашиот ИП на google.com домаќин. Како што можете да видите, наместо google домаќин, можете да внесете било кој друг.
Како и со IP филтрирањето, синтаксата е: dst може да се замени со srcЗа да ги видите пакетите кои се испраќаат на вашиот компјутер:
sudo tcpdump -i ppp0 src host google-public-dns-a.google.com
Забелешка: филтерот домаќин мора да биде по dst или src, инаку командата ќе генерира грешка. Во случај на IP филтрирање, напротив, dst и src се пред ip филтерот.
Филтер и и или
Ако треба да користите неколку филтри одеднаш во една команда, тогаш треба да примениш филтер. и или или (зависи од случајот). Со наведување на филтрите во синтаксата и одделување на нив со овие оператори, ќе ги "направите" да работат како еден. Во еден пример, изгледа вака:
sudo tcpdump -i ppp0 ip dst 95.47.144.254 или ip src 95.47.144.254
Пример:
Од командата синтакса може да се види дека сакаме да се прикаже "Терминал" сите пакети кои беа испратени на адресата 95.47.144.254 и пакети добиени од истата адреса. Можете исто така да промените некои варијабли во овој израз. На пример, наместо IP, наведете HOST или директно да ги замени адресите себе.
Филтер порта и портфолио
Филтрирај порта совршен за кога треба да добиете информации за пакети со одредена порта. Значи, ако треба само да ги видите одговорите или DNS пребарувањата, треба да го одредите пристаништето 53:
sudo tcpdump -vv -i ppp0 порт 53
Пример:
Ако сакате да ги видите http-пакетите, треба да внесете порта 80:
sudo tcpdump -vv -i ppp0 порт 80
Пример:
Меѓу другото, можно е веднаш да се следи опсегот на пристаништата. За да го направите ова, нанесете го филтерот portrange:
sudo tcpdump портретира 50-80
Како што можете да видите, во врска со филтерот portrange Не е неопходно да се наведат дополнителни опции. Едноставно поставете го опсегот.
Филтрирање протокол
Исто така можете да го прикажете само сообраќајот што одговара на кој било протокол. За да го направите ова, користете го името на овој протокол како филтер. Да разгледаме еден пример udp:
sudo tcpdump -vvv -i ppp0 udp
Пример:
Како што можете да видите на сликата, по извршувањето на командата во "Терминал" беа прикажани само пакети со протокол udp. Според тоа, можете да филтрирате од други, на пример, arp:
sudo tcpdump -vvv -i ppp0 arp
или TCP:
sudo tcpdump -vvv -i ppp0 tcp
Филтер мрежа
Оператор net помага да се филтрираат пакети врз основа на означувањето на нивната мрежа. Лесно е да се користи како остатокот - треба да го наведете атрибутот во синтаксата net, потоа внесете ја мрежната адреса. Еве пример за таква команда:
sudo tcpdump -i ppp0 нето 192.168.1.1
Пример:
Филтрирај според големината на пакетот
Не разгледавме уште два интересни филтри: помалку и поголем. Од табелата со филтри, знаеме дека тие служат за излез на повеќе податоци пакети (помалку) или помалку (поголем) големината одредена по атрибутот е внесена.
Да претпоставиме дека ние само сакаме да ги следиме пакетите кои не надминуваат 50 бита, тогаш командата ќе изгледа вака:
sudo tcpdump -i ppp0 помалку 50
Пример:
Сега ајде да се прикаже "Терминал" пакети поголеми од 50 бита:
sudo tcpdump -i ppp0 поголем 50
Пример:
Како што можете да видите, тие се користат подеднакво, единствената разлика е во името на филтерот.
Заклучок
На крајот на статијата можеме да заклучиме дека тимот tcpdump - Ова е одлична алатка со која можете да ги следите сите пакети со податоци што се пренесуваат преку Интернет. Но, за ова не е доволно само да влезат во самата команда "Терминал". За да се постигне посакуваниот резултат ќе се добие само ако користите сите видови на опции и филтри, како и нивните комбинации.