Ми зробимо зручну схему, яка застосовується в корпоративних мережах, але повністю з підручних засобів з мінімальними фінансовими і апаратними вкладеннями. Її схвалить служба безпеки і керівництво.
Термінологія
- Open - доступна всім
- WEP - старе шифрування. Вже у всіх лисину проїду про те, що його нетреба використовувати взагалі
- WPA - Використовується TKIP як протокол шифрування
- WPA2 - Використовується шифрування AES
А тепер розглянемо варіанти того, як точка доступу дізнається сама, чи можна надавати користувачеві доступ до мережі чи ні:
- WPA-PSK, WPA2-PSK - ключ до доступу знаходиться в самій точці.
- WPA-EAP, WPA2-EAP - ключ до доступу звіряється з деякою віддаленою базою даних на сторонньому сервері
Загальна схема мережі
Для наочного розуміння наведемо загальну схему роботи нашої майбутньої схеми:
- Точка доступу Ubiquiti NanoStation M2
- Сервер Gentoo і Freeradius
- Клієнтське обладнання з встановленим програмним забезпеченням Windows 7, Android, iOS
Встановлення точки доступу
RADIUS-сервер
Зайдемо на наш комп'ютер з Linux і встановимо RADIUS-сервер. Я брав freeradius, і ставив я його на gentoo. На мій подив, в рунеті немає матеріалів, що відносяться до налаштування Freeradius 2 для наших цілей. Всі статті досить старі, відносяться до старих версій цього програмного забезпечення.
Все :) RADIUS-сервер уже може працювати :) Ви можете перевірити це так:
Це debug-mode. Вся інформація вивалюється на консоль. Приступити до його налаштуванні.
Як це водиться в Linux, настройка виконується через конфігураційні файли. Файли зберігаються в / etc / raddb. Зробимо підготовчі дії - скопіюємо вихідні конфіги, почистимо конфігурація від всякого сміття.
Далі додамо клієнта - точку доступу. Додаємо в файлик / etc / raddb / clients наступні рядки:
Далі додаємо домен для користувачів. Зробимо дефолтовий.
Домени в RADIUS
Тут треба зауважити, що можна ділити користувачів до домену. А саме, в форматі імені користувача може вказуватися домен (наприклад user @ radius). DEFAULT означає будь-який невизначений домен. NULL - без домену. Залежно від домену (можна сказати префікса в імені користувача) можна здійснювати різні дії, як то віддати право аутентифицировать іншому хосту, відокремлювати чи ім'я від домену під час перевірки логіна і т.д.
І, нарешті, додаємо користувачів в файл / etc / raddb / users:
Ух, можна стартувати!
Наш сервер запущений і чекає підключень!
Налаштування клієнтів
Пробіжить по налаштуванню основних для користувача пристроїв. У наших співробітників є клієнти, що працюють на Android, iOS і Windows 7. Обмовимося відразу: так як ми використовуємо самосозданние сертифікати, то нам потрібно кілька разів вносити всілякі винятки і підтверджувати дії. Якби ми пользовали куплені сертифікати, можливо, все було б простіше.
Всіх простіше справа на iOS-пристроях. Вводимо логін і пароль, натискаємо «Прийняти сертифікат», і вперед.
Трохи складніше виглядає, але на практиці все теж просто на Android. Там трохи більше полів для введення.
Скріншот з Android
Ну і на Windows 7 пріедтся трохи понабудовували. Здійснимо наступні кроки:
Йдемо в центр бездротових підключень.
- Встановлюємо необхідні параметри у властивостях Вашого бездротового підключення
- Встановлюємо необхідні параметри в розширених налаштуваннях EAP
- Встановлюємо необхідні параметри в розширених налаштуваннях Додаткових параметрах
- Підключаємося в панелі завдань до Wi-Fi мережі і вводимо логін-пароль, насолоджуємося доступом до Wi-Fi
Далі представлю скріншоти діалогових вікон спеціально для схожих на мене людей, у яких очі розбігаються від діалогових вікон Windows.
Крок 1
крок 2
крок 3
крок 4
крок 5
Тепер залишилася одна проблема - якщо ви захочете додати-видалити нового користувача, то вам доведеться змінити users і перезапустити radius. Щоб цього уникнути підключимо базу даних і зробити свій власний міні-білінг для користувачів. Використовуючи БД, ви завжди зможете накидати простенький скрипт для додавання, блокування, зміни пароля користувача. І все це відбудеться без зупинки всієї системи.
Для себе я використовував Postgres, ви ж можете вибрати на свій розсуд. Я привожу базову настройку Postgres, не заглиблюючись в різні права доступу, паролі та інші хитрощі і зручності.
Для початку створюємо саму базу даних:
Далі треба створити потрібні таблиці. Взагалі з Freeradius йде документація по схемам таблиць для різних баз даних, правда в різних дистрибутивах знаходяться вони в різних місцях. У мене особисто це лежить в /etc/raddb/sql/postgresql/schema.sql. Просто вставте ці рядки в psql, або просто запустите
Про всяк випадок додам сюди схему для Postgres:
Схема для Postgres
Відмінно, база підготовлена. Тепер законфігурім Freeradius.
Додайте, якщо її там немає, в /etc/raddb/radiusd.conf рядок
Тепер відредагуйте /etc/raddb/sql.conf під вашу реальність. У мене він виглядає так:
Додамо кілька нових користувачів test1, test2, test3, і ... заблокуємо test3
Ну, перезапускаємо freeradius і пробуємо підключитися. Повинно все працювати!
В останньому розділі ми зібрали власний невеликий білінг! Залишається для повноти картини прикрутити якийсь WEB-інтерфейс управління Базою Даних, додати обов'язкове зміна пароля раз на місяць по крону. А якщо ще розоритися сертифікат і контролер Wi-Fi точок доступу, то у вас в руках є повноцінна корпоративна бездротова мережа. Але навіть без цих витрат і при малих зусиллях з Вашої сторони зробивши своїм користувачам такий доступ, вони вам скажуть величезне спасибі.