- •Дослідження мережних протоколів
- •Програма WireShark
- •Інсталяція Wireshark
- •Інтерфейс користувача Wireshark
- •Тестовий запуск Wireshark
- •Завдання
- •Дослідження Ethernet та arp
- •Перехоплення і аналіз кадрів Ethernet
- •Arp (протокол визначення адреси)
- •Arp Кешування
- •Спостереження за arp в дії
- •Протокол ip
- •Перехоплення пакетів програми traceroute
- •Дослідження перехоплених пакетів
- •Фрагментація
- •Протокол icmp
- •Протокол http
- •Базова взаємодія get/response
- •Умовна взаємодія http get/response
- •Завантаження великих документів
- •Html документи, що містять зовнішні об’єкти
- •Аутентифікація http
- •Протокол ssl
- •Перехоплення пакетів ssl сесії
- •Аналіз перехоплених пакетів
- •Протокол tcp
- •Перехоплення tcp пакетів, переданих від вашого комп’ютера на віддалений сервер
- •Перший погляд на перехоплені пакети
- •Основи tcp
- •Керування перенавантаженням tcp
- •Протокол udp
- •Протокол служби dns
- •Стеження за dns пакетами за допомогою Wireshark
- •Протокол dhcp
- •Експеримент з dhcp
Дослідження мережних протоколів
Зміст
Зміст 1
Вступ 2
Програма WireShark 3
Інсталяція Wireshark 5
Інтерфейс користувача Wireshark 6
Тестовий запуск Wireshark 7
Завдання 11
Дослідження Ethernet та ARP 12
Перехоплення і аналіз кадрів Ethernet 12
ARP (протокол визначення адреси) 16
ARP Кешування 16
Спостереження за ARP в дії 17
Протокол IP 19
Перехоплення пакетів програми traceroute 19
Linux/Unix 19
Windows 20
Дослідження перехоплених пакетів 21
Фрагментація 23
Протокол ICMP 24
ICMP та ping 24
ICMP та tracert 27
Протокол HTTP 30
Базова взаємодія GET/response 30
Протокол SSL 35
Протокол TCP 37
Протокол UDP 43
Протокол служби DNS 44
Протокол DHCP 51
Експеримент з DHCP 51
Вступ
Розуміння мережних протоколів часто може значно поглиблюватися якщо “побачити ці протоколи в дії”, “погратися з ними”, а саме, дослідити послідовність повідомлень, які виникають при взаємодії двох сутностей ( програм або мережних модулів) при використанні протоколу, заглиблюючись в команди протоколу; дивлячись, як протокол виконує певні дії, а потім оцінювати наслідки цих дій. Це може бути зроблено за допомогою симуляції або ж в “реальному” мережному оточенні. В даних лабораторних роботах ми застосуємо останній підхід. Ви запустите деякий мережний додаток за різними сценаріями(підходами), використовуючи комп’ютер вдома або ж у лабораторії. Ви будете досліджувати мережні протоколи на комп’ютері «в дії», взаємодіючи і обмінюючись сутностями протоколу з серверами десь в Інтернеті. Таким чином, ви і ваш комп’ютер станете невід’ємними частинами «живої» лабораторної роботи. Ви будете досліджувати і спостерігати все в дії.
Як інструмент дослідження використано програму Wireshark, що вільно розповсюджується під ліцензією GNU GPL. Wireshark (раніше — Ethereal) — програма для аналізу пакетів різних мережних технологій (сніфер). Має графічний інтерфейс користувача. Програма дозволяє користувачеві переглядати весь трафік, що проходить по мережі в режимі реального часу, переводячи мережну карту в наскрізний режим (promiscuous mode).
Програма WireShark
“Скажи мені і я забуду. Покажи мені і я запам’ятаю.
Залучи мене до цього і я зрозумію” – китайське прислів’я
Надалі сутності протоколу ми будемо називати користувачами протоколу.
Програма для спостереження за обміном повідомленнями між двома запущеними користувачами протоколу називається пакетним сніфером. Виходячи зі свого імені, пакетний сніфер ловить (“sniffs - нюхає”, англ.) повідомлення, що були прийняті/відправлені з якогось/на якийсь комп’ютер. Сніфер також може зберігати і/або показувати вміст різних полів протоколів в цих перехоплених повідомленнях. Пакетний сніфер сам по собі є пасивним інструментом. Він стежить за повідомленнями, які були відправлені і прийняті якимись прикладними програмами, що працюють на Вашому комп’ютері, але він ніколи сам не відсилає пакети. Крім того, отримані пакети ніколи не адресуються прямо на сніфер. Сніфер отримує копію вхідних / вихідних пакетів різних додатків і протоколів, що виконуються на комп'ютері.
Рис. 1 показує стуктуру сніфера пакетів. Праворуч – протоколи (в даному випадку – протоколи Інтернет) і прикладні програми (такі, як браузер або FTP-client), що зазвичай працюють на вашому компютері. Сніфер пакетів, показаний у пунктирному прямокутнику є доповненням до звичайної програми на вашому комп'ютері, і складається з двох частин: бібліотеки перехоплення пакетів (pcap для Linux або Winpcap для Windows), що отримує копію фреймів, переданих з вашого / на ваш комп'ютер. Всі повідомлення, якими обмінюються протоколи верхнього рівня (такі, як HTTP, FTP, TCP, UDP, DNS, IP) інкапсулюються в кадри канального рівня, які в свою чергу передаються через фізичний носій (наприклад, мережу Ethernet). На рис. 1 передбачається, що фізичне середовище – Ethernet, тому всі протоколи верхнього рівня інкапсулюються в кадр Ethernet. Перехоплення всіх кадрів канального рівня дає нам всі повідомлення, передані та отримані всіма протоколами та програмами, що виконуються на комп'ютері.
Рис. 1 Структура пакетного сніфера
Другим компонентом сніфера пакетів є аналізатор, який відображає вміст всіх полів перехоплених повідомлень. Аналізатор повинен "розуміти" структуру всіх повідомлень, якими обмінюються протоколи. Припустимо, ми зацікавлені в перегляді різних полів протоколу HTTP. Аналізатор пакетів розуміє формат фреймів Ethernet, і тому може ідентифікувати IP датаграму, що знаходиться в цьому Ethernet-фреймі. Він також розуміє формат IP датаграм, тому він може вилучити дані сегмента TCP, що міститься в цій IP датаграмі. Також аналізатор розуміє структуру TCP сегменту, тому він може отримати повідомлення HTTP, що містяться в даному TCP сегменті. Нарешті, він розуміє протокол HTTP і, наприклад, знає, що перший байт повідомлення HTTP буде містити рядок "GET", "POST", або "HEAD".
У цих роботах будемо використовувати сніфер пакетів Wireshark [http://www.wireshark.org/], що дозволить нам показати зміст повідомлень, відправлених/отриманих протоколами різних рівнів стеку. (З технічної точки зору, Wireshark є графічною оболонкою, яка використовує бібліотеки перехоплення пакетів). Wireshark є безкоштовним аналізатором мережних протоколів, який розповсюджується за ліцензією GNU/GPL і працює на Windows, Linux / Unix, Mac. Тому це ідеальний аналізатор пакетів для наших лабораторних робіт – він є стабільним, має велику базу користувачів і має добру документацію, яка містить в собі:
інструкцію користувача (http://www.wireshark.org/docs/wsug_html_chunked/),
сторінки документації (man (manual) pages) (http://www.wireshark.org/docs/man-pages/),
а також докладний FAQ (Frequently Asked Questions – Питання, що виникають найчастіше) (http://www.wireshark.org/faq.html),
Wireshark дає можливість аналізувати сотні мережних протоколів різних рівнів і має добре розроблений інтерфейс користувача. Wireshark працює на комп'ютерах, що використовують технології Ethernet, Token-Ring, FDDI, послідовний порт (PPP і SLIP), бездротові локальні мережі стандартів 802.11, а також (якщо ОС, на якій працює Wireshark, дозволяє це робити) з'єднання АТМ.
