Храним пользователей FreeRADIUS в безе данных Настройка RADIUS сервера для хранения данных пользователей в MySQL

Всем привет!
Вторая часть материала по настройке FreeRADIUS сервера
Первая часть материала рассказала, как настроить RADIUS сервер для авторизации на WI-FI точках доступа с хранением пользователей в текстовом файле.
В этой части мы настроим связку FreeRADIUS с базой данных MySQL, установим NGINX, PHP и web-интерфейс для добавления-удаления пользователей.

Итак мы имеем настроенный FeeRADIUS с хранением пользователей в текстовом файле users
Считаем, что на сервере больше ничего не установлено, пойдем с конца и установим в таком порядке:

  1. NGINX — как WEB-сервер
  2. PHP с PHP-FPM — сам PHP и CGI модуль для обработки PHP в NGINX
  3. MySQL — база данных в которой будем хранить пользователей RADIUS
  4. DaloRADIUS — WEB-интерфейс к базе данных RADIUS

Как и в прошлой статье все будем ставить через порты FreeBSD

Обновляем порты:

Ставим NGINX:

В конфиге в принципе оставляем все по умолчанию, я лично убираю поддержку IPv6 и модули проксирования для почты

Т.к. DaloRADIUS давно не разрабатывается, в PHP7.2 мне не удалось его запустить, т.к. синтаксис языка изменился, ковыряться в исходниках желания у меня не было, поэтому ставим PHP версии 5.6:

В опциях оставляем все по умолчанию, я снимаю только поддержку IPv6
Ставим модули PHP:

В опциях указываем поддержку
[X]  CURL
[X] GD
[X]  MySQLi
[X] SESSION
[X] GD
[X] MBSTRING
Ставим еще модуль для PHP:

Настроим PHP:

Укажем нашу timezone (указываем свою:))

Разрешаем запуск php-fpm:

Стартуем php_fpm:

Проверим:

Настроим NGINX и создадим конфигурацию виртуального WEB-сервера для обслуживания  DaloRADIUS:
Добавим в конфигурационный файл NGINX информацию откуда брать дополнительные конфигурации хостов:

Теперь NGINX будет брать дополнительные конфигурации из директории usr/local/etc/nginx/conf.d/ с расширением .conf, на мой взгляд так удобней нежели писать все хосты в один nginx.conf, один конфиг — один хост.
Создаем директорию для конфигураций:

Создаем файл конфигурации:

В который пишем примерно следующее, вам собственно только имя сервера поменять (MYNAME) придется, в остальном конфиг рабочий:

Создадим директорию для лог файлов нашего виртуального хоста:

Небольшое отступление, для следующего шага нам необходим установленный unzip (экстрактор zip файлов) в системе, проверьте пожалуйста вывод команды unzip
Если не найдено, то надо поставить:

Создадим временную директорию в своем профиле, скачаем DaloRADIUS, распакуем, переименуем, перенесем в нужное место и удалим хвосты:

Проверим корректность конфигурации NGINX:

Разрешим и запустим NGINX:

Ставим MySQL:

Разрешаем запуск MySQL и стартуем:

В версии MySQL 5.7 для пользователя root создается рандомный пароль, который можно посмотреть:

Создаем базу radius и пользователя radius с паролем radiuspassword в MySQL:

Импортируем схемы базы данных:

Связываем FreeRADIUS с MySQL:

Передергиваем FreeRADIUS:

Проверяем корректность просмотром лога:

Связываем DaloRADIUS с базой данных:

Заходим по адресу http://radius.MYNAME.ru
Авторизуемся:
login: Administrator
password: radius
В CONFIG—>Language Settings можно установить русский язык
Идем в Management добавляем пользователя и пробуем авторизоваться

Ну собственно все:)

P.S.

На мой взгляд решение ставить DaloRADIUS так себе:)
Во первых проект заброшен, во вторых для меня он избыточен.
С моим количеством пользователей, я спокойно могу обойтись хранением пользователей в файле, но с наличием базы и фронтенда к ней, появляется возможность легко делегировать управление пользователями любому лицу. Будет время напишу свою мини-админку.

 

 

 

 

 

Leave a Reply

Ваш e-mail не будет опубликован. Обязательные поля помечены *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">