„Tcpdump“ е анализатор на пакети и се използва за диагностика и анализ на мрежови проблеми. Той улавя мрежовия трафик, преминаващ през вашето устройство, и го преглежда. Инструментът „tcpdump“ е мощен инструмент за отстраняване на проблеми с мрежата. Той се предлага с много опции, което го прави гъвкава помощна програма за команден ред за отстраняване на мрежови проблеми.
Тази публикация е подробно ръководство за помощната програма „tcpdump“, което включва нейната инсталация, общи функции и използване с различни опции. Нека започнем с инсталацията:
Как да инсталирам “tcpdump”:
В много дистрибуции “tcpdump” излиза от кутията и за да го проверите, използвайте:
$ който tcpdump
Ако не е намерен във вашата дистрибуция, инсталирайте го, като използвате:
$ sudo apt инсталира tcpdumpГорната команда ще се използва за дистрибуции, базирани на Debian като Ubuntu и LinuxMint. За „Redhat“ и „CentOS“ използвайте:
$ sudo dnf инсталира tcpdumpКак да улавяте пакети с tcpdump:
За улавяне на пакети могат да се използват различни интерфейси. За да получите списък с интерфейси, използвайте:
$ sudo tcpdump -D
Или просто използвайте „всеки“ с командата „tcpdump“, за да получите пакети от активния интерфейс. За да започнете използването на пакети:
$ sudo tcpdump - интерфейс всеки
Горната команда проследява пакети от всички активни интерфейси. Пакетите непрекъснато ще се грабват, докато не получи прекъсване от потребителя (ctrl-c).
Също така можем да ограничим броя на пакетите, които трябва да бъдат заловени, като използваме флага „-c“, който означава „броя“.”За да уловите 3 пакета, използвайте:
$ sudo tcpdump -i всеки -c3
Горната команда е полезна за филтриране на определен пакет. Освен това за отстраняване на проблеми с връзката са необходими само няколко първоначални пакета, които трябва да бъдат уловени.
„tcpdump”Команда по подразбиране улавя пакети с имена на IP и портове, но за почистване, бъркотия и улесняване на изхода; имената могат да бъдат деактивирани с помощта на „-н" и "-пп”За опцията за порт:
$ sudo tcpdump -i всеки -c3 -nn
Както е показано в горния изход, имената на IP и портовете са извадени.
Как да разберем информация за заловен пакет:
За да научим за различните полета на уловения пакет, нека вземем пример за TCP пакет:
Пакетът може да има различни полета, но общите са показани по-горе. Първото поле, „09:48:18.960683,”Представлява момент, когато пакетът е получен. Следва IP адресите; първият IP [216.58.209.130] е IP източникът и вторият IP [10.0.2.15.55812] е IP адреса на местоназначението. След това ще получите знамето [P.]; списък с типични флагове са дадени по-долу:
Флаг | Тип | Описание |
„.” | ACK | Означава потвърждение |
С | SYN | Флаг за стартиране на връзка |
F | FIN | Флаг за затворена връзка |
P | НАТЪСНЕТЕ | Показва изпращането на данни от подателя |
R | RST | Нулиране на връзката |
И следващият номер на номера “sq 185: 255”. Клиентът и сървърът използват 32-битовия пореден номер за поддържане и наблюдение на данните.
„ack”Е флаг; ако е 1, това означава, че номерът за потвърждение е валиден и получателят очаква следващия байт.
Номерът на прозореца показва размера на буфера. „спечелете 65535"Означава количеството данни, които могат да бъдат буферирани.
И накрая идва дължината [70] на пакета в байтове, което е разлика от „185: 255”.
Филтриране на пакети за отстраняване на мрежовите проблеми:
Инструментът „tcpdump“ улавя стотици пакети и повечето от тях са с по-малко значение, което прави много сложно получаването на желаната информация за отстраняване на неизправности. В този случай филтрирането ще играе своята роля. Например, докато отстранявате неизправности, ако не се интересувате от определен тип трафик, можете да го филтрирате с помощта на „tcpdump“, който се доставя с филтриране на пакети според IP адресите, портовете и протоколите.
Как да заснемете пакет, като използвате име на хост с командата tcpdump:
За да получите пакета само от конкретен хост, използвайте:
$ sudo tcpdump -i всеки -c4 хост 10.0.2.15
Ако искате да получите само еднопосочен трафик, използвайте „src" и "dst“Опции на мястото на“домакин.”
Как да заснемете пакет, като използвате номера на порта с командата tcpdump:
За да филтрирате пакети с номера на порта, използвайте:
$ sudo tcpdump -i всеки -c3 -nn порт 443
“443” е номерът на HTTPS порта.
Как да уловим пакет, използвайки протокола с командата tcpdump:
С командата “tcpdump” можете да филтрирате пакети според всеки протокол като udp, icmp, arp и т.н. Просто въведете името на протокола:
$ sudo tcpdump -i всеки -c6 udp
Горните команди ще улавят само пакети, които принадлежат към протокола “udp”.
Как да комбинирам опциите за филтриране, използвайки логически оператори:
Различни опции за филтриране могат да се комбинират с помощта на логически оператори като „и / или“:
$ sudo tcpdump -i всеки -c6 -nn хост 10.0.2.15 и порт 443
Как да съхранявате заснетите данни:
Взетите данни могат да бъдат запазени във файл, за да ги наблюдавате по-късно и за тази опция ще се използва „-w“, а „w“ означава „запис“:
$ sudo tcpdump -i всеки -c5 -w packetData.pcap
Разширението на файла би било „.pcap “, което означава„ улавяне на пакети.”След като заснемането приключи, файлът ще бъде записан във вашето локално устройство. Този файл не може да се отвори или прочете с помощта на която и да е програма за текстов редактор. За да го прочетете, използвайте „-r”Флаг с“ tcpdump ”:
$ tcpdump -r packetData.pcap
Заключение:
„Tcpdump“ е ценен и гъвкав инструмент за улавяне и анализ на мрежовия трафик за отстраняване на мрежови проблеми. Вниманието на това ръководство е да научите основното и разширено използване на помощната програма за команден ред “tcpdump”. Но ако ви е трудно, тогава има по-малко сложна програма, базирана на GUI, наречена „Wireshark“, която върши почти същата работа, но с различни допълнителни функции.