Цей контент є частиною серії: Набір інструментів системного адміністрування
Слідкуйте за виходом нових статей цієї серії.
Про це циклі статей
У кожного адміністратора UNIX® є свій набір утиліт, прийомів і систем, які він регулярно використовує для полегшення процесу адміністрування. Для спрощення різних процесів застосовуються спеціальні утиліти, послідовності команд і скрипти. Деякі з цих інструментів поставляються з операційною системою, але більшість прийомів накопичується з роками досвіду і в результаті бажання системного адміністратора полегшити собі життя. Даний цикл присвячений питанням максимально ефективного використання типових інструментів, що використовуються в різних середовищах UNIX, включаючи методи спрощення адміністрування в гетерогенному середовищі.
Види сканування мережі
Сканування мережі дозволяє швидко отримати картину відбуваються в ній процесів, зібрати відомості про її конфігурації і доступні сервіси. Різні види сканування мережі спрямовані на збір і реєстрацію інформації різного роду. Крім того, їх можна по-різному застосовувати для отримання різних відомостей про мережі.
Одним з ключових елементів будь-якої мережевої середовища є можливість отримання інформації про те, що в ній знаходиться. Зломи, обладнання, встановлене без дозволу, неправильно працюють або неправильно сконфігуровані хости - все це може потенційно привести до виникнення проблем з мережею.
Інший вид сканування полягає в моніторингу інформації, що знаходиться в пакетах, переданих по вашій мережі. Сканування вмісту пакетів здатне дати багато корисних відомостей, що дозволяють ясно зрозуміти природу переданої інформації і оцінити загальну продуктивність мережі.
Шляхом зіставлення відомостей, отриманих шляхом сканування вмісту пакетів, з інформацією про хостах і портах, що є в мережі, можна отримати дуже гарне уявлення про що відбуваються в мережі процесах.
Наприклад, під час сканування мережі ви можете виявити, що певний хост приймає вхідні підключення через нестандартний порт. Але розуміння характеру переданих даних і міститься в них інформації може бути ускладнене без сканування вмісту пакетів.
Може виявитися, що хост і порт використовуються не в сумлінних цілях, наприклад, для організації HTTP-сервера, а в згубних - для організації злому, SSH-тунелю або іншого порушення інформаційної безпеки.
сканування хостів
Наприклад, для сканування всіх хостів в мережі 192.168.0.0 необхідно запустити утиліту, як показано в лістингу 1.
Лістинг 1. Сканування всіх хостів в мережі 192.168.0.0
Однак наведені результати сканування не містять інформації про номери портів, відкритих для вхідних підключень. Ця інформація допомогла б зрозуміти природу трафіку, що обробляється хостом, а в разі, якщо хост вам невідомий, допомогла б встановити відбуваються на ньому.
сканування портів
Якщо на комп'ютері запущено мережевий сервіс, наприклад, Web-сервер, поштовий сервер або пірінговий сервіс, даний комп'ютер повинен приймати вхідні підключення через певний порт. Деякі порти є стандартними (наприклад, порт 80 зазвичай використовується для HTTP). Сканування портів може бути виконано для всіх хостів, які слід перевірити, чи вибірково.
Наприклад, сканування портів на окремому хості дозволяє отримати дуже гарне уявлення про що відбуваються на ньому процесах. Приклад сканування портів сервера приведений в лістингу 2.
Лістинг 2. Сканування портів сервера
За замовчуванням в результати сканування включаються тільки відомості про активні портах Transmission Control Protocol (TCP) і IP. Якщо потрібно сканування портів User Datagram Protocol (UDP), необхідно використовувати ключ -sU. як показано в лістингу 3.
Лістинг 3. Використання ключа -sU
Даний процес можна повторити з усіма хостами вашої мережі.
збереження результатів
Як було сказано раніше, інформація, отримана в ході єдиного сеансу сканування хостів або портів, буде актуальна тільки на момент виконання сканування. Деякі хости можуть бути відключені від мережі, сервіси можуть бути тимчасово недоступні, а в дуже завантаженої мережі скануючі пакети можуть просто не досягти мети.
Сканування необхідно виконувати регулярно з подальшим порівнянням (і навіть об'єднанням) результатів з отриманими раніше. Найпростішим рішенням даного завдання є запуск nmap. збереження результатів і порівняння їх з отриманими раніше за допомогою утиліти, подібної diff.
Приклад порівняння результатів двох сеансів сканування одного і того ж хоста за допомогою nmap приведений в лістингу 4.
Лістинг 4. Порівняння результатів двох сеансів сканування одного і того ж хоста за допомогою nmap
Рядки лістингу починаються з '<' или '>'В залежності від того, в якому файлі виявлено відмінність. Таким чином можна побачити, що протокол Network File System (NFS) згадується в першому файлі, але не в другому, при цьому порти mysql і vnc під час другого сеансу були відкриті.
Сканування вмісту пакетів
nmap - відмінний інструмент для пошуку IP-хостів і відкритих портів, проте він не зможе показати вам вміст пакетів, переданих по мережі. Сканування вмісту пакетів дозволяє побачити, які хости обмінюються даними з певним хостом, якого роду інформація передається і які сервіси при цьому використовуються.
Зібране вміст пакетів розповість про використання того чи іншого протоколу (наприклад, які користувачі заходили на певний поштовий сервер і з яких хостів). Воно допоможе визначити тип трафіку в разі, якщо його неможливо визначити за номером порту.
Для сканування вмісту пакетів, які прямують по мережі, вам знадобиться не nmap. скануючий хости і порти, а інший інструмент. Існує багато таких інструментів, включаючи ті, що поставляються з різними операційними системами і розробляються сторонніми виробниками. Приклади подібних інструментів наведені в розділі Ресурси.
Всі подібні інструменти мають однакові вхідні умови. Наприклад, в мережі Ethernet пакети надходять в кожен фізичний порт - для вивчення інформації, що передається досить сканувати всі вступники пакети. У мережі Ethernet, побудованій на комутаторах, пакети не потрапляють в усі порти підряд, але більшість сучасних комутаторів мають службовий порт, куди раніше потрапляють всі пакети. При цьому навіть в такій мережі можна отримати цінну інформацію шляхом запуску інструмента, скануючого вмісту пакетів, безпосередньо на вас цікавить хості.
Методи використання подібних інструментів і одержуваної з їх допомогою інформації трохи розрізняються, але основні принципи завжди однакові. На AIX iptrace реалізований у вигляді серверного процесу, який повинен бути явним чином запущений і зупинений. Наприклад, для його запуску необхідно виконати наступну команду:
Інструмент snoop. що входить в поставку Solaris, може бути просто запущений в будь-який момент:
Оскільки обсяг даних, переданих по мережі, може бути значним, інструменти дозволяють обмежити сканування, вказавши тільки цікавлять хости, порти і протоколи. Наприклад, для вивчення вхідних і вихідних даних для певного хоста виконайте наступну команду:
Оскільки більшість дисплеїв не зможе вмістити всі отримані дані, має сенс зберігати їх безпосередньо в файл:
Для зчитування збереженої інформації з файлу вкажіть шлях до нього після ключа -i.
У прикладі, наведеному вище, був включений режим виведення докладної інформації, що забезпечує відображення вмісту всіх оброблених пакетів замість короткої узагальнюючої інформації, виведеної за замовчуванням.
Лістинг 5. Запис обміну даними по протоколу NFS
На початку кожного рядка зазначений рівень протоколу в сканованому пакеті. В даному випадку наведено вміст пакетів Ethernet, IP і TCP, включаючи відомості про хостах - відправника та одержувача, а також прапори IP для даного пакета.
Лістинг 6 містить інформацію, зібрану в ході пошуку імені хоста за допомогою Domain Name Server (DNS).
Лістинг 6. Інформація, зібрана в ході пошуку імені хоста за допомогою DNS
Даний приклад показує, як snoop розшифровує протокол DNS, щоб відобразити дані, що містять фактичні результати пошуку.
Лістинг 7. Обмін пакетами при зверненні до Web-сайту
висновок
Наявність інформації про те, що знаходиться у вашій мережі і які дані по ній передаються може істотно полегшити вирішення багатьох проблем, включаючи ті, що пов'язані з інформаційною безпекою і продуктивністю.
Спільне використання сканування мережі та сканування вмісту пакетів є корисною практикою, що забезпечує вас відомостями про те, що знаходиться у вашій мережі і що в ній відбувається. Це дозволяє швидко визначати джерела проблем, виявляти потенційно шкідливі або несанкціоновані хости і процеси.