tcpdump - наблюдение на мрежата

порт ftp-данни

Доста често се налага да се разбере състоянието на мрежата. Или просто за общообразователни цели - за да разберете как мрежовите обекти взаимодействат помежду си. Или с цел да разследва къде седи ужасната грешка:). И за тези цели те управляват в unix. Защото всичко разумно се пише за niks и чак след това се пренася в Windows.
Днес ще говорим за една такава програма - tcpdump.

tcpdump (от TCP и английски dump - dump, dump) - помощна програма UNIX, която ви позволява да прихващате и анализирате мрежовия трафик, преминаващ през компютъра, на който се изпълнява тази програма.

Основните приложения на tcpdump са:

  • Отстраняване на грешки в мрежовите приложения.
  • Отстраняване на грешки в мрежата и мрежовата конфигурация като цяло.

Как работи Tcpdump

Тоест при стартиране ние посочваме какво искаме да намерим в тази планина от информация, която ще премине през интерфейса. И трябва да посочите чрез ключове и изрази.

Описание на някои от клавишите

Филтрирайте израз

Изразът избира кои пакети ще бъдат избрани от общия поток. Ако не е посочено, всички пакети, преминаващи през интерфейса, ще бъдат избрани и показани. В противен случай ще бъдат обработени само онези пакети, за които проверката с израз ще върне стойността "true".

Изразът се състои от един или повече примитиви. Примитивите обикновено се състоят от идентификатор (име или номер), последван от един или повече класификатори.

Три вида класификатори:

  • Тип Те казват към какъв тип документ за самоличност да се отнасят. Възможните стойности са хост, мрежа или порт.
    Пример: ‘host foo’, ‘net 128.3’, ‘port 20’. Ако типът на класификатора не е посочен, тогава се приема хост.
  • реж Определя конкретната посока на предаване "до" и/или "от" ID. Възможните стойности са src, dst, src или dst и src и dst.
    Пример, ‘src foo’, ‘dst net 128.3’, ‘src или dst port ftp-data’. Ако не е посочено, се приема src или dst. За „нулеви“ връзки (например протокол от точка до точка, като например приплъзване), посоката може да бъде посочена с помощта на входящи и изходящи класификатори.
  • прото Ограничава съвпадението до определен протокол. Възможни протоколи: етер, fddi, tr, ip, ip6, arp, rarp, decnet, tcp и udp.
    Пример, ‘ether src foo’, ‘arp net 128.3’, ‘tcp port 21’. Ако не е посочен класификаторът на прото, тогава се приемат всички изброени типове протоколи. Например, "src foo означава" (ip или arp или rarp) src foo "," net bar "означава" (ip или arp или rarp) net bar ", а" порт 53 "означава" (tcp или udp) порт 53 '.

Освен това има няколко специални примитиви - ключови думи: шлюз, излъчване, по-малко, по-голяма и аритметични изрази.

По-сложни филтриращи изрази могат да бъдат конструирани с помощта на думите и, или, и не, които обединяват примитиви. Например, 'хост foo и не порт ftp и не порт ftp-данни'. За да се намали количеството входяща информация, могат да се пропуснат идентични списъци с класификатори. Например „tcp dst порт ftp или ftp-данни или домейн“ е същото като „tcp dst порт ftp или tcp dst порт ftp-данни или tcp dst порт домейн“

Някои от валидните примитиви (за по-пълен списък в man tcpdump):

Преди да преминем към примери, нека разгледаме какво може да ни даде tcpdump при изпълнение.
Типични резултати от работата tcpdump -ttt:

Конкретни примери

  • 1. Улавяме целия входящ трафик от локалната мрежа към сървъра. Тук всичко е просто.

Ако го стартирате в SSH сесия, тогава се пригответе - ще тече много и много бързо ... 2. Улавяме целия входящ трафик, с изключение на трафика, генериран от нашата SSH сесия.

Сега можете да разберете потока на пакетите. 3. Нуждаете се от информация за DNS комуникация между сървъра и някои хостове.

Тук между другото ще се изпълнява не само DNS трафик. Като цяло всичко, което се отнася за UDP. Можете да коригирате това по следния начин: