Будуємо захищену бездротову мережу WPA-Enterprise, EAP-TLS

Архів номерів / 2005 / Випуск №5 (30) / Будуємо захищену бездротову мережу: WPA-Enterprise, 802.1x EAP-TLS

АНДРЕЙ ПЛАТОНІВ

Будуємо захищену бездротову мережу: WPA-Enterprise, 802.1x EAP-TLS

Безпечний небезпечний Wi-Fi

На сьогоднішній день стає очевидним, що, незважаючи на всі проблеми, пов'язані з безпекою, надійністю та складністю експлуатації, бездротові рішення сімейства 802.11a/b/g все ж таки стали невід'ємною частиною інфраструктури багатьох корпоративних, домашніх і навіть операторських мереж. Частково це сталося, тому що більшість цих проблем на сучасному етапі розвитку Wi-Fi пішли у минуле. Бездротові мережі у всіх відносинах стали набагато розумнішими і швидшими: з'явився QoS, інтелектуальні антени (технологія MIMO), реальні швидкості досягли 40 Мбіт/c (наприклад, технології SuperG, SuperAG від Atheros). Крім цього, великі зміни відбулися і в наборі технологій, які забезпечують безпеку бездротових мереж. Про це поговоримо докладніше.

У часи, коли Wi-Fi був тільки для обраних, для захисту бездротових мереж використовувалися WEP-шифрування та MAC-фільтри. Усього цього швидко стало не вистачати, WEP визнали небезпечним через статичність ключів шифрування та відсутність механізмів автентифікації, MAC-фільтри особливої ​​безпеки також не надавали. Почалася розробка нового стандарту IEEE 802.11i, який був покликаний вирішити всі проблеми безпеки, що назріли. На півдорозі до 802.11i з'явився набір технологій під назвою WPA (Wi-Fi Protected Access) – частина ще не готового стандарту 802.11i. WPA включає засоби для автентифікації користувачів, шифрування за допомогою динамічних WEP-ключів (TKIP/MIC).Потім 802.11i нарешті закінчили, і на світ з'явився WPA2. До всього вищезгаданого додалася підтримка більш стійкого шифрування AES (Advanced Encryption Standard), яке працює спільно з протоколом безпеки CCMP (Counter with Cipher Block Chaining Message Authentication Code Protocol – це досконаліший аналог TKIP у WPA). WPA2 поступово став з'являтися в нових моделях точок доступу (наприклад, D-Link DWL-3200AP), але поки що це швидше екзотика. Всі продукти, що підтримують WPA2, сумісні з обладнанням, що підтримує WPA.

І WPA, і WPA2 включають розвинені засоби контролю доступу до бездротової мережі на основі стандарту IEEE 802.1x. В архітектурі 802.1x використовується кілька обов'язкових логічних елементів:

  • Клієнт. У ролі клієнта виступає Supplicant-програма на клієнтському комп'ютері, що управляє процесом аутентифікації.
  • Аутентифікатор. Це точка доступу, яка виконує функції посередника між клієнтом та сервером автентифікації. Аутентифікатором навіть може бути і провідний комутатор, т.к. 802.1x використовується у різних мережах.
  • Сервер автентифікації – RADIUS-сервер.

У IEEE 802.1x допускається використання різних методів та алгоритмів автентифікації. Це можливо завдяки протоколу EAP (Extensible Authentication Protocol), який «вкладаються» атрибути, відповідні тому чи іншому методу аутентифікації. Тому існує багато різновидів 802.1x EAP: EAP-MD5, EAP-PEAP, EAP-LEAP, EAP-SIM і т.д. Цей метод найчастіше використовується в корпоративних бездротових мережах та відрізняється досить високим ступенем захищеності. КрімEAP-TLS іноді є одним з основних методів захисту в мережах бездротових провайдерів.

Автентифікація 802.1x EAP-TLS

В основі EAP-TLS лежить протокол SSL v3.0, проте на відміну від традиційної автентифікації протоколу SSL (наприклад, при організації захищеного http-з'єднання – HTTPS) в EAP-TLS відбувається взаємна автентифікація клієнта та сервера. Клієнт (суплікант) та сервер RADIUS повинні підтримувати метод автентифікації EAP-TLS; точка доступу повинна підтримувати аутентифікацію 802.1x/EAP і не обов'язково повинна знати, який метод аутентифікації використовується у конкретному випадку. Нижче наведено процес автентифікації в бездротовій мережі з використанням EAP-TLS.

мережу

Рисунок 1. Процес аутентифікації 802.1x EAP-TLS

Тут доречно закінчити невеликий лірично-теоретичний відступ, який необхідний, щоб отримати зразкове уявлення про те, що криється в надрах безпечної бездротової мережі. Далі буде запропоновано практичну реалізацію описаних вище концепцій. Як сервер RADIUS буде використовуватися комп'ютер під керуванням FreeBSD 5.3 з пакетом FreeRADIUS. Для організації інфраструктури PKI (Public Key Infrastructure) буде використано пакет OpenSSL. Вся бездротова мережа будуватиметься на базі недорогого та надійного бездротового обладнання D-Link. Передбачається, що у клієнтських машинах встановлена ​​Windows XP SP2, т.к. у цій операційній системі є вбудований суплікант, а нещодавно випущений корпорацією Microsoft update додає підтримку WPA2.

Встановлюємо та налаштовуємо OpenSSL та FreeRADIUS

Передбачається, що в системі FreeBSD 5.3 встановлена ​​одна мережева карта, оновлена ​​колекція портів, є Midnight Commander, а сам комп'ютер підключений доІнтернету. Надалі припускатимемо, що бездротова мережа розгортається в корпоративній мережі з маскою 192.168.0.0/24.

Завантажуємо з ftp://ftp.openssl.org/snapshot останній стабільний знімок (snapshot) OpenSSL (я, наприклад, використовував openssl-0.9.7-stable-SNAP-20050524.tar.gz ). Розпаковуємо, конфігуруємо, компілюємо та встановлюємо його стандартним чином:

# ./config shared --prefix=/usr/local/openssl

У принципі, на цьому роботу з OpenSSL можна і завершити. Надалі він буде потрібний нам для генерації сертифікатів.

FreeRADIUS – досить об'ємний пакет, тому його, на відміну від OpenSSL, ми будемо встановлювати з портів, що забезпечить автоматичний дозвіл залежностей та встановлення всіх необхідних бібліотек та додатків.

Переміщуємося в директорію /usr/ports/net/freeradius/, потім даємо команду make – нічого не вибираємо із запропонованих настановним сценарієм опцій, натискаємо «Ok». Починається процес автоматичної інсталяції (завантаження та компіляція необхідних додатків); після її завершення слід набрати make install.

На цьому із встановленням FreeRADIUS покінчено, можна переходити до його налаштування.

Вибираємо директорію FreeRADIUS: /usr/local/etc/raddb/ (всі основні дії будуть проводитись у цьому каталозі):

  • Видаляємо весь вміст папки ./certs.
  • Знаходячись у тій же папці (./certs), даємо команду:

# openssl gendh > dh

створюється файл dh.

# dd if=/dev/random of =random count=2

створюється файл random.

  • Створюємо папку raddb/sample та переносимо до неї з raddb усі файли з розширенням .sample. З sample назад в raddb копіюємо зі зміною імені (без розширення .sample) файли: acct_users, clients.conf, dictionary, eap.conf, hints,huntgroups, preproxy_users, proxy.conf, radiusd.conf, snmp.conf, sql.conf, users.
  • Правимо такі конфігураційні файли:

# Секретне слово, яке задається на точці доступу