Wi-fi з логіном і паролем для кожного користувача, savepearlharbor

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

Термінологія

  • Open - доступна всім
  • WEP - старе шифрування. Вже у всіх лисину проїду про те, що його нетреба використовувати взагалі
  • WPA - Використовується TKIP як протокол шифрування
  • WPA2 - Використовується шифрування AES

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

  • WPA-PSK, WPA2-PSK - ключ до доступу знаходиться в самій точці.
  • WPA-EAP, WPA2-EAP - ключ до доступу звіряється з деякою віддаленою базою даних на сторонньому сервері

Загальна схема мережі

Для наочного розуміння наведемо загальну схему роботи нашої майбутньої схеми:

Wi-fi з логіном і паролем для кожного користувача, savepearlharbor

  • Точка доступу 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-пристроях. Вводимо логін і пароль, натискаємо «Прийняти сертифікат», і вперед.

Wi-fi з логіном і паролем для кожного користувача, savepearlharbor

Трохи складніше виглядає, але на практиці все теж просто на Android. Там трохи більше полів для введення.

Скріншот з Android

Wi-fi з логіном і паролем для кожного користувача, savepearlharbor

Ну і на Windows 7 пріедтся трохи понабудовували. Здійснимо наступні кроки:
Йдемо в центр бездротових підключень.

  1. Встановлюємо необхідні параметри у властивостях Вашого бездротового підключення
  2. Встановлюємо необхідні параметри в розширених налаштуваннях EAP
  3. Встановлюємо необхідні параметри в розширених налаштуваннях Додаткових параметрах
  4. Підключаємося в панелі завдань до Wi-Fi мережі і вводимо логін-пароль, насолоджуємося доступом до Wi-Fi

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

Крок 1

Wi-fi з логіном і паролем для кожного користувача, savepearlharbor

крок 2
Wi-fi з логіном і паролем для кожного користувача, savepearlharbor

крок 3
Wi-fi з логіном і паролем для кожного користувача, savepearlharbor

крок 4
Wi-fi з логіном і паролем для кожного користувача, savepearlharbor

крок 5
Wi-fi з логіном і паролем для кожного користувача, savepearlharbor

Тепер залишилася одна проблема - якщо ви захочете додати-видалити нового користувача, то вам доведеться змінити 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 точок доступу, то у вас в руках є повноцінна корпоративна бездротова мережа. Але навіть без цих витрат і при малих зусиллях з Вашої сторони зробивши своїм користувачам такий доступ, вони вам скажуть величезне спасибі.