Технології безпеки мережі на 2-му рівні OSI. Частина 1

Здавалося б, отримавши доступ у внутрішню мережу, зловмисник може відносно безперешкодно досліджувати сусідні вузли, збирати передану інформацію і взагалі вже все втрачено.


Тим не менше при коректному підході до контролю рівня доступу можна істотно ускладнити згадані процедури. При цьому грамотно підготовлена мережева інфраструктура, помітивши шкідливу аномалію, про це своєчасно повідомить, що допоможе знизити шкоду.

Під катом перелік механізмів, які допоможуть виконати цю функцію.

Хотілося б навести загальну вибірку без зайвих Вікі-обґрунтувань, але з описом варіацій конфігурації, тим не менш іноді відступаю в лікнеп, що б сторонньому читачеві стаття здалася більш доброзичливою.

Стаття виходила об'ємною, по-моєму занадто великі статті не читаються, а складаються в довгий ящик з думкою «як небудь здужаю». Тому матеріал довелося розділити, і при належному успіху складу другу частину з менш поширеними (принаймні у нас) технологіями.

Зміст:

Технології описані на базі комутатора Cisco, конкретно моя тестова модель, версія наступні:


Предпологаю, що даний вендор самий процентуально поширений, та й самий інофрмаційно багатий, а так само викликає велику зацікавленість у початківців изучають подібні теми.

Тим не менш, упевнений, що після засвоєння кожної конкретної технології на циске, коректно скласти конфігурацію в іншого вендора не складе труднощів, якщо у Вас є 30 хв. і звичайний User Guide.

Вважаю, що інформація не дублює вже існуючу на хабре, хоча щось подібне можна зустріти тут і тут.

Port Security


⬝ Опис
Технологія призначена для контролю підключених до комутатора пристроїв і запобігання аномалій чи атак, націлених на переповнення таблиці MAC-адрес (CAM table overflow).

З допомогою Port Security встановлюється максимальна кількість MAC адрес на конкретний свитчпорт (мережний порт, який оперує на 2-му рівні OSI) або VLAN, а так само контролюється доступ заданим MAC-адресами.

▍Способи роботи з MAC-адресами:
  • Dynamic — пропускає і запам'ятовує (на заданий період часу) будь-MAC-адреси, поки не досягне дозволеного максимуму;
  • Static — пускає тільки заздалегідь введений руками MAC-адреса може бути використана разом з Dynamic типом);
  • Sticky — вчить нові MAC-адреси, записуючи їх у конфігурацію;
▍Дії у випадку перевищення повноважень:
  • Potect — у разі зайвих або не заданих МАС-адрес не пускає нові, не генерує сислог або SNMP трап, не зронив інтерфейс;
  • Restrict — теж, що і Protect, але плюс лог і/або SNMP трап. Так само звітує лічильник під
    show port-security interface <name>
    :


  • Shutdown (встановлено за умовчанням) — попереднє дію, але плюс інтерфейс переходить у статус errdisable і перестає передавати трафік;
  • Shutdown VLAN — як і попередній, тільки в errdisable переходять усі інтерфейсі у даному VLAN'е;
⬝ Конфігурація
Port-Security може бути активований тільки, якщо тип свитчпорта явно заданий (тобто або Access, або Trunk). Якщо порт динамічний (що вже неправильно), Port-Security на ньому включити не вийти.

▍Access порти
Технологія задається за допомогою команди switchport port-security… в режимі конфігурації конкретного інтерфейсу, доступні опції:


  • aging — задається часовий інтервал, після якого динамічний МАС-адреса може бути переписаний;
  • mac-address — дає доступ до наступній гілці:


    тобто задаємо дозволені/заборонені адреси або говоримо залізці їх вчити;
  • maximum — вказуємо ліміт дозволених адрес.
  • violation — задаємо дію з перерахованих раніше.
Встановлюємо що потрібно, що не потрібно пропускаємо. В кінці активуємо технологію командою
switchport port-security
без опцій.

В результаті все виглядає приблизно так:

— Якщо хочемо дозволити невідомо які маки, лімітуючи їх кількість 5-ю, ставимо максимум на 5 і не задаємо нічого статично. Опціонально вказуємо час життя.
— Якщо відомо, що за пристрій стоїть на другому кінці дроту і більше нічого там не буде і бути не повинно — максимум=1, адреса прописуємо статично.
— Якщо чекаємо нового працівника з новим ПК або лінь дізнаватися MAC-адресу, ставимо Sticky, після підключення перевіряємо.
▍Trunk порти
Теж саме, тільки можна вказувати поведінка не щодо фізичного інтерфейсу, а конкретного VLAN'а. Для цього до кожної з попередніх команд в кінці побавляется vlan.

⬝ Перевірка
Не вдаючись до show run інформація стосовно Port-Security може бути знайдена:

  • show port-security
    — відображає сумарно інформацію про інтерфейсах, їх статус, кількість адрес;
  • show interface <name> switchport
    — більш детальна інформація (лічильники, окремі опції);
  • show mac address-table ..
    плюс опція, список нижче:


    Команда проводить перевірку актуальної інформації про таблиці MAC-адресу. Наприклад, нинішня кількість записів у таблиці для конкретного VLAN'a і обсяг доступних записів перевіряється за допомогою
    show mac address-table count vlan <id>
    :

DHCP snooping


⬝ Опис
Технологія запобігає неавторизованого використання DHCP сервера в мережі, що дозволяє наприклад здійснити атаку людина-посередині (man-in-the-middle, MITM). Так само захищає мережу від атак на виснаження DHCP (DHCP starvation/exauction), яка імхо не особливо актуальна.

Технологія стежить за DHCP комунікацією в мережі, яка в основному складається з чотирьох пакетів:

  • DHCP Discover — відправляє тільки клієнт, запит на отримання IP по DHCP;
  • DHCP Offer — відправляє тільки сервер, пропозиція конфігурації від DHCP сервера;
  • DHCP Request — відправляє тільки клієнт, вибір конкретної конфігурації і сервера;
  • DHCP ACK — відправляє тільки сервер, остаточне підтвердження;
Перед активацією DHCP snooping потрібно обов'язково вказати «довірений» порт(и), за яким перебувати DHCP сервер. Активуючи технологію, тільки цей порт буде передавати DHCP Offer і DHCP ACK (пакети від сервера). У зв'язку з чим ні один пристрій за іншими інтерфейсами цього комутатора не зможе проводити роботу DHCP сервера, пропонуючи свої варіанти мережевої конфігурації.

Так само, що дуже важливо при активації DHCP snooping, комутатор починає стежити за DHCP комунікацією в мережі і ототожнювати видані IP адреси з MAC-адресами запитувачів пристроїв, складаючи цю інформацію в таблицю DHCP snooping binding.

⬝ Конфігурація
Під довіреною інтерфейсом вводитися команда
ip, dhcp snooping trust
:


Для запобігання DHCP starvation під іншим інтерфейсами вказується частота одержуваних клієнтських запитів за допомогою
ip, dhcp snooping limit rate <nr>
:


Важливо не занизити дану характеристику, що-б не порізати валідний трафік. Циска радить використовувати число «10».

Після цього вказуємо конкретний VLAN для роботи DHCP snooping'a, а так само включаємо безпосередньо саму технологію командою без опцій:

(config)# ip, dhcp snooping vlan <id> 
(config)# ip, dhcp snooping

⬝ Перевірка
  • show ip, dhcp snooping — відображає довірені порти і VLAN'и, на яких включений DHCP snooping;
  • show ip, dhcp snooping binding — показує ту саму таблицю, де фігурує прив'язка IP-MAC всередині VLAN'ів з включеним DHCP snooping'ом:

Dynamic ARP inspection


⬝ Опис
Технологія призначена для запобігання ARP spoofing/poisoning атак, яка є базовим способом організації перехоплення трафіку (знову ж атака людина-посередині/MITM), перебуваючи в одному широкомовному домені з жертвою.

⬝ Конфігурація
Що б ефективно запобігти ARP spoofing, комутатор повинен мати инофрмацию про зв'язці MAC-адреса/IP-адресу. Як згадувалося вище, дана інформація зберігатися в таблиці DHCP snooping. З цього коректна конфігурація ці дві технології практично завжди використовує разом.

При спільному використанні з DHCP snooping, технологія активується в режимі глобальної конфиругации командою:

(config)# ip arp inspection vlan <id>

Після цього в даному VLAN'е буде дозволений трафік тільки тих пристроїв, які фігурують у таблиці DHCP snooping.

У разі, якщо пристрої НЕ використовують DHCP, необхідно проводити додаткові заходи. ARP inspection дозволяє використовувати статичні записи. Для цього створюються списки доступу ARP, який створюється з режиму глобальної конфігурації командою:

(config)# arp access-list <name>

Синтаксис окремого запису нижче:


А ще..крім вказівки одиничного MAC-адреси, arp access-list'е можна вказати діапазон. І це робиться за допомогою !зворотних ARP! масок:


По-моєму, це ужастный милицю і світ зійшов з розуму, але якщо по іншому ніяк..
Під таким arp access-list'ом зазначаються всі необхідні статичні записи. Далі технологія активується не як раніше, а з опцією filer:


Так само можна окремий інтерфейс(и) позначити як довірені. На цих інтерфейсах ARP inspection проводитися не буде:


Практично завжди довіреними встановлюються Trunk порти (головне про це не забути перед активуванням всього механізму). Але в цьому випадку важливо підняти встановлений ліміт ARP повідомлень — він дорівнює 15, і може бути занадто вузьким, особливо для транк. Раджу поставити 100-ку:


Опціонально можна додати додаткові перевірки на відповідність MAC адрес в заголовках ARP і Ethernet. Робиться це командою
ip arp inspection validate <option>
:


Функціонал по кожній опції окремо можна прочитати тут.

⬝ Перевірка
Перевірити статус технології, включена, використовує список доступу, перевірки статусу додаткових опцій і т. п. інформацію:

show ip arp inspection vlan <id>

Корисні опції у попередньої команди (додати в кінці рядка) — statistics (показує лічильники дропов тощо) і interfaces (довірені інтерфейси, ліміти ARP повідомлень).

Source Guard


⬝ Опис
У разі, якщо немає потреби перевіряти всю підмережу за ARP inspection, але хотілося б захистити від подібних загроз пару-трійку вузлів, можна використовувати Source Guard. На практиці їх функціонал дублює один одного, хоча і є нюанси.

Технологія прив'язує задані IP-MAC до конкретного фізичного інтерфейсу. В результаті теж запобігає ARP спуфінга, а так само один вузол мережі не зможе відправити трафік від імені іншого, підмінивши IP і MAC адреси джерела (у разі ARP inspection це можливо, хоча і не є критичним).

⬝ Конфігурація
Source Guard так само використовує таблицю DHCP snooping. Вона містить не тільки конфігурацію IP-MAC, але і ще інтерфейс, за яким знаходиться конкретний вузол.

Якщо вузли знову ж таки не використовують DHCP, в режимі глобальної конфігурації створюється мануальна запис:

(config)# ip source binding <mac.add.ress> vlan <id> <IP.add.re.ss> interface <name>

Source Guard активується безпосередньо на інтерфейсі:

(config-if)# ip verify source port-security

⬝ Перевірка
Перевірка записів, які використовує технологія, проводиться командою:
show ip source binding
Що корисно, команда виводить як мануальні запису, так і взяті з таблиці DHCP snooping.
Список интерйесов, на яких Source Guard активований, виводиться командою:
show ip verify source

Думаю, поки що вистачить

Наступного разу покажу, які ще списки доступу бувають на свичах і навіщо вони потрібні; як контролювати комуникацию в межах однієї підмережі; спробую висвітлити тонкощі переходу інтерфейсу статус errdisable і може вийти зрозуміти, чи потрібен взагалі MACsec.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.