Захоплення пакетів за допомогою Tcpdump
Для захоплення пакетів і їх аналізу в ОС Linux є безліч пакетів, але одним з перших є tcpdump.
Параметри запуску tcpdump. Tcpdump [параметр] – деякі з них:
– 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;
– r file – читати пакети з file (який, був створений з ключем – w);
– t – не виводити часовий штамп (timestamp) в кожному рядку дампа (dump);
– tt – виводить не форматований часовий штамп в кожному рядку дампа;
– ttt – виводити різницю (у мікросекундах) між поточними і попередніми рядками дампу;
– tttt – виводити часовий штамп разом з датою у форматі в кожному рядку дампа;
– v – детальніший вивід. Для ще детальнішого виводу використовуються: - vv і – vvv;
– w file – писати пакети в file перш ніж зробити їх розбір і вивести. Вони можуть бути пізніше виведені з ключем – r. Якщо file вказаний як "–", то використовується стандартний вивід.
– x – друкувати кожного пакета (без заголовків рівня з'єднання) в шістнадцятковому вигляді;
– X – окрім шістнадцятковому вигляду виводити їх ASCII -значения.
Фільтр у tcpdump вибирає, які пакети будуть захоплюватися із загального потоку. Якщо не вказаний фільтр, то вибиратимуться і виводиться усі пакети йдуть через інтерфейс. Інакше, будуть оброблені тільки ті пакети, для яких перевірка з вираженням видасть значення "істина" (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 – oбмежує збіг конкретним протоколом. Можливі протоколи: 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'.
Простий приклад запуску tcpdump c перенаправленням даних у файл lab6.txt:
tcpdump -i eth0 – n – nn – ttt > lab6.txt
Дата добавления: 2016-05-11; просмотров: 705;