Возможно вы искали: 'Total Control'

May 15 2025 18:05:26
  • Как сделать 8Gamers.Ru домашней страницей?
  • Игры
    • База данных по играх
    • Игровые новости
    • Игровая индустрия
    • Обзоры на игры
    • Прохождения игр
    • Гайды к играм
    • Превью о играх
    • Игровые тизеры
    • Игровые арты
    • Игровые обои
    • Игровые скриншоты
    • Игровые обложки
    • Игровые трейлеры
    • Игровое видео
    • Вышедшие игры
    • Ближайшие релизы игр
  • Кино и ТВ
    • База данных по кино
    • Статьи о кино
    • Постеры
    • Кадры из кино
    • Кино трейлеры
    • Сегодня в кино
    • Скоро в кино
  • Комиксы и манга
    • Манга по алфавиту
    • База данных по комиксах
    • Читать онлайн комиксы
    • Читать онлайн манга
    • База персонажей
  • Читы и коды
    • Чит-коды для PC игр
    • Чит-коды для консольных игр
    • Трейнеры
    • Коды Game Genie
  • Моддинг
    • Модификации
    • Карты к играм
    • Программы для моддинга
    • Статьи о моддинге
  • Геймдев
    • Всё о создании игр
    • Список движков
    • Утилиты в помощь игроделу
    • Конструкторы игр
    • Игровые движки
    • Библиотеки разработки
    • 3D-модели
    • Спрайты и тайлы
    • Музыка и звуки
    • Текстуры и фоны
  • Рецензии
    • Игры
    • Кино
    • Аниме
    • Комиксы
    • Мангу
    • Саундтреки
  • Саундтреки
    • Лирика
  • Файлы
    • Патчи к играм
    • Русификаторы к играм
    • Сохранения к играм
    • Субтитры к кино
  • Медиа
    • Видео
    • Фото
    • Аудио
    • Фан-арты
    • Косплей
    • Фото с виставок
    • Девушки из игр
    • Рисунки
    • Рисуем онлайн
    • Фотохостинг
  • Юмор
    • Анекдоты
    • Афоризмы
    • Истории
    • Стишки и эпиграммы
    • Тосты
    • Цитаты
  • Флеш
    • Азартные
    • Аркады
    • Бродилки
    • Гонки
    • Для девочек
    • Для мальчиков
    • Драки
    • Квесты
    • Леталки
    • Логические
    • Мультфильмы
    • Открытки
    • Приколы
    • Разное
    • Спорт
    • Стратегии
    • Стрелялки
Статистика

Статей: 87772
Просмотров: 96111483
Игры
Injustice:  Gods Among Us
Injustice: Gods Among Us
...
Dark Souls 2
Dark Souls 2
Dark Souls II - вторая часть самой хардкорной ролевой игры 2011-2012 года, с новым героем, сюжето...
Battlefield 4
Battlefield 4
Battlefield 4 - продолжение венценосного мультиплеер-ориентированного шутера от первого ли...
Кино
Steins;Gate
Steins;Gate
Любители японской анимации уже давно поняли ,что аниме сериалы могут дать порой гораздо больше пи...
Ку! Кин-дза-дза
Ку! Кин-дза-дза
Начинающий диджей Толик и всемирно известный виолончелист Владимир Чижов встречают на шумной моск...
Обзоры на игры
• Обзор Ibara [PCB/PS2] 18357
• Обзор The Walking ... 18801
• Обзор DMC: Devil M... 19879
• Обзор на игру Valk... 15877
• Обзор на игру Stars! 17764
• Обзор на Far Cry 3 17948
• Обзор на Resident ... 16024
• Обзор на Chivalry:... 17508
• Обзор на игру Kerb... 17981
• Обзор игры 007: Fr... 16619
Превью о играх
• Превью к игре Comp... 17960
• Превью о игре Mage... 14464
• Превью Incredible ... 14721
• Превью Firefall 13479
• Превью Dead Space 3 16334
• Превью о игре SimC... 14730
• Превью к игре Fuse 15442
• Превью Red Orche... 15542
• Превью Gothic 3 16343
• Превью Black & W... 17354
Главная » Статьи » Разное » Мониторинг сети с помощью tcpdump (tcpdump traffic analyze log)

Мониторинг сети с помощью tcpdump (tcpdump traffic analyze log)

Ключевые слова: tcpdump, traffic, analyze, log, (найти похожие документы)

From: Kolotov Alexandr <koal%20DOG%20kirov.lug.ru>
Date: Mon, 26 Jan 2008 18:21:07 +0000 (UTC)
Subject: Мониторинг сети с помощью tcpdump

Оригинал: http://www.linuxshare.ru/docs/net/tcpdump.html

Довольно часто встает проблема, когда ему нужно узнать как работает
сеть. Или просто для учебных-исследовательских целей узнать как
взаимодействуют между собой объекты сети. Для этих целей в UNIX-мире
написано целая куча инструментов. В данном материале будет
рассматриваться один из них: tcpdump.
Итак, tcpdump.

$ man tcpdump, нам гласит


Tcpdump выводит заголовки пакетов проходящих через сетевой интерфейс,
которые совпадают с булевым выражением. Он может также быть запущен с
ключем -w, который заставляет сохранять данные пактов в файл для
дальнейшего исследования, и/или с ключем -r, который заставляет читать
сохраненные пакеты из файла, вместо чтения пакетов из сетевого
интерфейса. В любом случае, tcpdump будут обработаны только те пакеты,
которые совпадают с выражением.

Tcpdump будет, если не запущен с ключем -c, продолжать собирать пакеты
до тех пор, пока не будет прерван сигналом SIGINT (генерируемым, для
примера, вводом Вашего символа прерывания, обычно CTRL+C) или сигналом
SIGTERM (обычно генерируемого командой kill). Если запуск был с ключем
-c, то сбор пакетов будет продолжаться до тех пор, пока не произойдет
прерывание сигналом SIGINT или SIGTERM или пока не будет обработано
определенное количество пакетов.

Когда tcpdump закончит сбор пакетов, то будет сообщено об количестве:

* пакетов "полученных фильтром" (received by filter) (значение
зависит от той ОС, на какой Вы запускаете tcpdump, и, возможно, от
способа, котрым ОС была сконфигурирована - если фильтр был
определен в командной строке, на некоторых ОС будут сосчитаны
пакеты независимо от фильтрующего выражения, а в других ОС будут
сосчитаны только те пакеты, которые попадают под фильтрующее и
выражение, и были обработаны tcpdump);


* пакетов "отброшенных ядром" (dropped by kernel) (это число
пакетов, которые были отброшены, в зависимости от механизма сбора
пакетов (недостаточного объема буферов) на той ОС, где запускается
tcpdump, ОС предоставит эту инофрмацию приложению или нет, и тогда
будет выведено число 0)


Это был перевод - исправления приветствуются.

Дальше идет описание ключей. Вот некоторые из них:

* -c count Выйти после получения определенного количества пакетов.


* -C file_size Перед записью "сырого" пакета в файл, происходит
проверка на превышение размером файла лимита, указанного в
file_size. Если размер файла больше, то файл закрывается и
открывается новый. Новый файл будет иметь имя определенное в ключе
-w, со стоящим в конце числом 2, которое будет увеличиваться в
следующих именах файлов. file_size определяет размер в миллионах
байт (1,000,000), а не мегабайтах (1,048,576).


* -F file Использовать file для ввода фильтрующего выражения.
Выражение, указанное в командной строке, будет игнорироваться.


* -i interface Собирать пакеты только на определенном интерфейсе.
Если не указан - берется минимальный по номеру интерфейс (исключая
loopback). Для Linux-ядер 2.2 и более новых, возможно указать
'any', тогда будет происходить сбор на всех интерфейсах, но они не
будут переведены в режим promiscuous.


* -n Не преобразовывать адрес хоста в имя. Может быть использовано,
если необходимо избегать DNS-запросов.


* -nn Не преобразовывать протокол и номер порта в их имена.


* -N Не выводить доменную часть имени хоста. Например, при данном
ключе будет выводится "nic" вместо "nic.ddn.mil"


* -p Не переводить интерфейс в режим promiscuous. Следует заметить,
что интерфейс может быть в режиме promiscuous по другим причинам.


* -r file Читать пакеты из file (который, был создан с ключем -w).
Если file указан как "-", то используется стандартный ввод.


* -t Не выводить временной штамп (timestamp) в каждой строке дампа
(dump).


* -tt Выводит не форматированный временной штамп в каждой строке
дампа.


* -ttt Выводить разницу (в микросекундах) между текущей и предыдущей
строками дампа.


* -tttt Выводить временной штамп вместе с датой в формате
по-умолчанию в каждой строке дампа.


* -v (Чуть более) подробный вывод. Для еще более подробного вывода
используются: -vv и -vvv.


* -w file Писать "сырые" пакеты в file перед тем как произвести их
разбор и вывести. Они могут быть позднее выведены с ключем -r.
Если file указан как "-", то используется стандартный вывод.


* -x Печатать каждый пакет (без заголовков уровня соединения) в
шестнадцатиричном виде.


* -X Помимо шестнадцатиричного вида выводить их ASCII-значения.


Теперь, рассмотрим фильтрующее выражение.

Оно выбирает какие пакеты будут выбираться из общего потока. Если оно
не указано, то будут выбираться и выводится все пакеты идущие через
интерфейс. Иначе, будут обработаны только те пакеты, для которых
проверка с выражением выдаст значение "истина" (true).

Выражение состоит из одного или более примитивов. Примитивы обычно
состоят из ID (имя или номер) следующего за одним или более
классификаторами. Различают три вида классификаторов:

* type Говорят к какому виду относить ID. Возможный значения host,
net или port. Пример: 'host foo', 'net 128.3', 'port 20'. Если
классификатор type не указан, то подразумевается host.


* dir Определяет конкретное направление передачи "к" и/или "от" ID.
Возможны значения src, dst, src or dst and src and dst. Пример,
'src foo', 'dst net 128.3', 'src or dst port ftp-data'. Если не
указан, то подразумевается src or dst. Для соединений нулевого
('null') уровня (к примеру, протокол точка-точка, такой как slip)
указанием направления могут быть классификаторы inbound и
outbound.


* proto Ограничивает совпадение конкретным протоколом. Возможные
протоколы: ether, fddi, tr, ip, ip6, arp, rarp, decnet, tcp и udp.
Пример, 'ether src foo', 'arp net 128.3', 'tcp port 21'. Если
классификатор proto не указан, то подразумеваются все
перечисленные типы протоколов. Например, 'src foo означает '(ip or
arp or rarp) src foo', 'net bar' означает '(ip or arp or rarp) net
bar', а 'port 53' означает '(tcp or udp) port 53'.


В добавок, существует несколько специальных примитивов - ключевых
слов: gateway, broadcast, less, greater и арифметические выражения.

Более сложные фильтрующие выражения могут быть построены с помощью
слов and, or и not, объединяющих примитивы. Пример, 'host foo and not
port ftp and not port ftp-data'. Чтобы уменьшить количество вводимой
информации, идентичные списки классификаторов могут быть опущены.
Пример, 'tcp dst port ftp or ftp-data or domain' это тоже самое, что и
'tcp dst port ftp or tcp dst port ftp-data or tcp dst port domain'

Перечислим некоторые из допустимых примитивов (за более полным списком
в man tcpdump):

dst host host

* Истина, если поле "назначение" пакета -это host, который может
быть адресом или именем


src host host

* Истина, если поле "источник" пакета - это host.


host host

* Истина, если или поле "назначение", или поле "источник" пакета -
это host. Любое из описанный выше выражений может быть приписано к
ключевому слову ip, arp, rarp, или ip6, как в 'ip host host', что
эквивалентно 'ether proto ip and host host'. Если host - это имя
с несколькими IP адресам, то проверяется совпадение по каждому
адресу.


net net mask netmask

* Истина, если IP адрес входит в сеть с указанной сетевой маской.
Может быть классифицировано с dst или src.


net net/len

* Истина, если IP адрес входит в сеть с указанной сетевой маской,
заданной количеством бит. Может быть классифицировано с dst или
src.


dst port port

* Истина, если пакет протоколов ip/tcp, ip/udp, ip6/tcp или ip6/udp,
и порт-назначения имеет значение указанное в port. Порт может быть
числом или именем, используемым в /etc/services. Если используется
число или неоднозначное имя, то проверяется только номер порта
(пример, 'dst port 513' будет выводить трафик и для tcp/login и
для udp/who, а 'port domain' будет выводить трафик и для
tcp/domain и для udp/domain).


src port port

* Истина, если пакет имеет порт-источник - port


port port

* Истина, если или порт-назначение, или порт-источник в пакете -
port. Любое из описанных выше выражений может быть приписано к
ключевому слову tcp или udp, как в 'tcp src port port',
проверяющее совпадения только для TCP-пакетов.


less length

* Истина, если пакет имеет длину меньше или равную length. Это
эквивалентно len <= length.


greater length

* Истина, если пакет имеет длину больше или равную length. Это
эквивалентно len >= length.


ip proto protocol

* Истина, если пакет - это IP-пакет протокола, указанного в
protocol. Протокол может быть числом или одним из имен icmp,
icmp6, igmp, igrp, pim, ah, esp, vrrp, udp, или tcp. Заметим, что
идентификаторы tcp, udp и icmp - ключевые слова и должны быть
"заэкскейпены" через обратный слэш ().


Прежде чем переходит к примерам рассмотрим, что может нам выдать
tcpdump при выполнении.

Типичные результаты работы tcpdump -ttt:

1. 000107 192.168.2.13 > 192.168.2.254: icmp: 192.168.2.13 udp port 3631 unreachable
2. 000313 192.168.2.254.53 > 192.168.2.13.3656: 4 ServFail 0/0/0 (22) (DF)
3. 000287 192.168.2.254 > 192.168.2.100: icmp: net 205.188.179.233 unreachable[tos 0xc0]
4. 010956 192.168.2.254.139 > 192.168.2.13.3661: P 1:5(4) ack 73 win 5840 NBT Packet (DF)
5. 276274 192.168.2.150.3053 > 192.168.2.254.53: 7+ A? Tatyana.karavay-shops.ru. (42)
6. 001162 192.168.2.100.32772 > 192.168.2.254.16007: . ack 73 win 5840 (DF)

Первое поле - поле времени, т. к. запуск осуществлялся с ключом
"-ttt", то это разница в микросекундах между этим пакетом и
предыдущим.

Потом идет IP-адрес (или имя) отправителя пакета, через точку может
указываться порт. После знака ">", указывается получатель пакета (или
его имя) и также порт. Затем будет идти либо сразу служебная
информация идущая в пакете, либо протокол (у нас это icmp). В
служебной информации может быть указано либо состояние флагов в
пакете, либо расшифрованная информация ("192.168.2.13 udp port 3631
unreachable" или DNS-запрос об хосте "Tatyana.karavay-shops.ru").

Ну а теперь пора взяться за конкретные примеры.

1. Ловим весь входящий трафик из локальной сети на сервер. Здесь все
просто.

# /usr/sbin/tcpdump -i eth0 -n -nn -ttt dst host 192.168.2.254


Если вы запускаете его в SSH сессии, то подготовьтесь - польется очень
много и очень быстро...

2. Ловим весь входящий трафик, исключая трафик генерируемый нашей
SSH-сессией.

# /usr/sbin/tcpdump -i eth0 -n -nn -ttt 'dst host 192.168.2.254 and not ( src host 192.168.2.100 and dst port 22 )'


Вот теперь в потоке пакетов можно разобраться.

3. Нужна информация об DNS-общении между сервером и каким-нибудь узлом
сети.

# /usr/sbin/tcpdump -i eth0 -n -nn -ttt 'host 192.168.2.13 and ip proto udp'


Здесь, кстати будет бегать не только DNS-трафик. А вообще весь,
который идет по UDP. Исправить это можно следующим:

# /usr/sbin/tcpdump -i eth0 -n -nn -ttt 'host 192.168.2.13 and port 53'


4. Отлавливаем исключительно icmp пакеты.

# /usr/sbin/tcpdump -i eth0 -n -nn -ttt 'ip proto icmp'


Вот. Теперь все.

Не забывайте, что более подробную информацию можно получить из man
tcpdump. Там же можно прочитать об структуре пакетов основных
протоколов, что позволит еще глубже исследовать Ваши сети.
740 Прочтений •  [Мониторинг сети с помощью tcpdump (tcpdump traffic analyze log)] [08.05.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• Мониторинг сети с помощью tcpdump (... Ukraine Vova 08.05.2012
Ни одного комментария? Будешь первым :).
Пожалуйста, авторизуйтесь для добавления комментария.

Проект входит в сеть сайтов «8Gamers Network»

Все права сохранены. 8Gamers.NET © 2011 - 2025

Статьи
Рецензия на Pressure
Рецензия на Pressure
Чтобы обратить на себя внимание, начинающие маленькие разработчики, как правило, уходят в жанры, ...
Рецензия на Lost Chronicles of Zerzura
Рецензия на Lost Chron...
Игры, сделанные без любви и старания, похожи на воздушный шар – оболочка есть, а внутри пусто. Lo...
Рецензия на The Bridge
Рецензия на The Bridge
«Верх» и «низ» в The Bridge — понятия относительные. Прогуливаясь под аркой, можно запросто перей...
Рецензия на SimCity
Рецензия на SimCity
Когда месяц назад состоялся релиз SimCity, по Сети прокатилось цунами народного гнева – глупые ош...
Рецензия на Strategy & Tactics: World War 2
Рецензия на Strategy &...
Название Strategy & Tactics: World War II вряд ли кому-то знакомо. Зато одного взгляда на ее скри...
Рецензия на игру Scribblenauts Unlimited
Рецензия на игру Scrib...
По сложившейся традиции в информационной карточке игры мы приводим в пример несколько похожих игр...
Рецензия на игру Walking Dead: Survival Instinct, The
Рецензия на игру Walki...
Зомби и продукция-по-лицензии — которые и сами по себе не лучшие представители игровой биосферы —...
Обратная связь | RSS | Донейт | Статистика | Команда | Техническая поддержка