Установка FreeRADIUS и daloRADIUS на Ubuntu 18.04
Важно: команды в примерах выполняются от имени root или через sudo. Замените пароли и имена пользователей на безопасные значения перед использованием в продакшене.
Что такое FreeRADIUS и daloRADIUS
FreeRADIUS — это свободный RADIUS-сервер клиент/серверной архитектуры для централизованной сетевой аутентификации, учёта и авторизации. Поддерживает множество СУБД: OpenLDAP, MySQL, Redis, Microsoft AD, Apache Cassandra, PostgreSQL и другие.
daloRADIUS — это веб-приложение на PHP/JavaScript для управления FreeRADIUS. Подходит для хотспотов и ISP-развёртываний, включает графические отчёты, биллинг, управление пользователями и NAS (устройствами доступа).
FreeRADIUS выступает как бэкенд, daloRADIUS — как фронтенд.
Требования
- Сервер с Ubuntu 18.04 LTS.
- Доступ root (пароль root настроен либо вы используете sudo).
- Доступ в интернет для загрузки пакетов и репозитория daloRADIUS.
План действий (кратко)
- Обновить пакеты системы.
- Установить стек LAMP (Apache, MariaDB, PHP).
- Защитить MariaDB и создать базу radiusdb и пользователя.
- Установить FreeRADIUS и подключить его к MySQL.
- Установить daloRADIUS и подключить к той же базе.
- Проверить состояние служб и войти в веб-интерфейс.
Получение системы в актуальное состояние
Обновите пакетный индекс и установите доступные обновления:
apt-get update -y
apt-get upgrade -yПосле обновления рекомендуется перезагрузить систему, чтобы применить новые версии ядра и служб.
Установка LAMP (Apache + MariaDB + PHP)
Установите Apache, MariaDB, PHP и необходимые расширения:
apt-get install apache2 mariadb-server php libapache2-mod-php php-mail php-mail-mime php-mysql php-gd php-common php-pear php-db php-mbstring php-xml php-curl unzip wget -yОбъяснение: PHP-модули нужны для работы daloRADIUS и взаимодействия с MySQL; apache2 — веб-сервер.
Конфигурация базы данных для FreeRADIUS
По умолчанию MariaDB не защищена. Запустите мастер безопасной настройки:
mysql_secure_installationОтвечайте на вопросы мастера примерно так (пример):
Enter current password for root (enter for none): Just press the Enter
Set root password? [Y/n]: Y
New password: Enter password
Re-enter new password: Repeat password
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: YДалее создайте базу данных и пользователя для FreeRADIUS:
mysql -u root -pВведите пароль root MariaDB, затем выполните:
MariaDB [(none)]> CREATE DATABASE radiusdb;
MariaDB [(none)]> GRANT ALL ON radiusdb.* TO radius@localhost IDENTIFIED BY "password";Замените “password” на сложный пароль. После этого выполните:
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;Установка FreeRADIUS
FreeRADIUS доступен в репозитории Ubuntu 18.04. Установите сервер и модули для MySQL:
apt-get install freeradius freeradius-mysql freeradius-utilsИмпортируйте схему базы данных FreeRADIUS в созданную базу:
mysql -u root -p radiusdb < /etc/freeradius/3.0/mods-config/sql/main/mysql/schema.sqlСоздайте символическую ссылку для модуля sql, чтобы он был включён в конфигурацию:
ln -s /etc/freeradius/3.0/mods-available/sql /etc/freeradius/3.0/mods-enabled/Проверьте таблицы в базе данных:
mysql -u root -pЗатем в MariaDB:
MariaDB [(none)]> use radiusdb;
MariaDB [radiusdb]> show tables;Вы должны увидеть таблицы вроде nas, radacct, radcheck и т.д.
Далее укажите параметры подключения к базе в модуле SQL FreeRADIUS. Откройте файл:
nano /etc/freeradius/3.0/mods-enabled/sqlВ файле замените или укажите следующие параметры (пример):
sql {
driver = "rlm_sql_mysql"
dialect = "mysql"
# Connection info:
server = "localhost"
port = 3306
login = "radius"
password = "password"
# Database table configuration for everything except Oracle
radius_db = "radiusdb"
}
read_clients = yes
client_table = "nas"Сохраните файл и измените владельца/группу:
chgrp -h freerad /etc/freeradius/3.0/mods-available/sql
chown -R freerad:freerad /etc/freeradius/3.0/mods-enabled/sqlПерезапустите службу FreeRADIUS и проверьте её статус:
systemctl restart freeradius
systemctl status freeradiusОжидаемый статус должен быть Active (running). Если служба не стартует — смотрите раздел «Отладка» ниже.
Установка daloRADIUS
daloRADIUS — веб-интерфейс для управления пользователями, отчётами и биллингом. Установим его из GitHub:
wget https://github.com/lirantal/daloradius/archive/master.zipРаспакуйте архив и переместите в корень веб-сайта Apache:
unzip master.zip
mv daloradius-master /var/www/html/daloradiusИмпортируйте таблицы daloRADIUS в базу radiusdb:
cd /var/www/html/daloradius
mysql -u root -p radiusdb < contrib/db/fr2-mysql-daloradius-and-freeradius.sql
mysql -u root -p radiusdb < contrib/db/mysql-daloradius.sqlДайте права веб-серверу и настройте файл конфигурации:
chown -R www-data:www-data /var/www/html/daloradius/
chmod 664 /var/www/html/daloradius/library/daloradius.conf.phpОткройте файл конфигурации для редактирования:
nano /var/www/html/daloradius/library/daloradius.conf.phpПример значений, которые нужно изменить под вашу систему:
$configValues['DALORADIUS_VERSION'] = '1.1-1';
$configValues['DALORADIUS_DATE'] = '28 Jul 2019';
$configValues['FREERADIUS_VERSION'] = '2';
$configValues['CONFIG_DB_ENGINE'] = 'mysqli';
$configValues['CONFIG_DB_HOST'] = 'localhost';
$configValues['CONFIG_DB_PORT'] = '3306';
$configValues['CONFIG_DB_USER'] = 'radius';
$configValues['CONFIG_DB_PASS'] = 'password';
$configValues['CONFIG_DB_NAME'] = 'radiusdb';Перезапустите службы:
systemctl restart freeradius
systemctl restart apache2Проверьте статус Apache:
systemctl status apache2Доступ к веб-интерфейсу daloRADIUS
Откройте в браузере:
http://your-server-ip/daloradius/login.php

По умолчанию логин/пароль: administrator / radius. После входа вы увидите панель управления.


Проверка работоспособности
- Проверьте, что FreeRADIUS слушает порт 1812/1813 (RADIUS) и отвечает.
- Создайте тестового пользователя в radcheck и попробуйте аутентифицироваться через radclient или точку доступа.
Пример теста с radclient:
echo "User-Name=test,User-Password=testpass" | radclient -x 127.0.0.1 auth testing123Отладка и типичные проблемы
- Если FreeRADIUS не стартует, запустите его в режиме отладки:
freeradius -XРежим -X показывает подробный лог ошибок и помогает найти синтаксические ошибки в конфигурации.
- Ошибка подключения к MySQL: проверьте лог /var/log/syslog и права доступа пользователя radius к базе radiusdb.
- Неверные права на файлы daloRADIUS: веб-сервер должен иметь доступ к каталогу и файлам конфигурации.
- Проверьте версии PHP: устаревшие расширения могут препятствовать работе daloRADIUS.
Безопасность и рекомендации (харднинг)
- Замените все дефолтные пароли (MariaDB root, radius user, daloRADIUS admin).
- Ограничьте доступ к панели daloRADIUS по IP и через HTTPS. Установите SSL (Let’s Encrypt).
- Используйте отдельного пользователя MySQL с минимальными привилегиями для доступа радиус-базы.
- Регулярно делайте бэкапы базы radiusdb и конфигураций FreeRADIUS.
- В production отключите удалённый логин MariaDB для root и минимум слушайте localhost.
Резервные варианты и альтернативные подходы
- Вместо MariaDB можно использовать PostgreSQL — FreeRADIUS поддерживает rlm_sql_postgresql.
- Если вам не нужен веб-интерфейс, можно управлять пользователями напрямую через SQL или LDAP.
- Для современных систем рассмотрите Ubuntu 20.04 / 22.04 — пакеты и зависимости там свежее.
Чек-листы по ролям
Администратор сервера:
- Установить и обновить пакеты.
- Настроить бэкапы и мониторинг служб.
Системный администратор базы данных:
- Создать базу radiusdb, настроить пользователя с ограниченными правами.
- Настроить регулярные дампы.
Сетевой инженер:
- Проверить связи NAS — FreeRADIUS, убедиться в корректности secret для каждого NAS.
- Тестировать аутентификацию пользователей.
Критерии приёмки
- FreeRADIUS активно работает (systemctl status показывает Active).
- daloRADIUS доступен по HTTPS и авторизация проходит по учетной записи администратора.
- Тестовая аутентификация через radclient успешно завершается.
- База radiusdb содержит таблицы FreeRADIUS и таблицы daloRADIUS.
Мини-методология развертывания
- Прототип: установите систему в тестовой сети, проверьте аутентификацию для 1–2 NAS.
- Интеграция: подключите реальный NAS и профили пользователей.
- Продакшен: перенесите конфигурации, включите HTTPS и мониторинг.
Часто встречующиеся вопросы
Q: Можно ли использовать PostgreSQL?
A: Да, FreeRADIUS поддерживает PostgreSQL. Требуется соответствующий модуль rlm_sql_postgresql и адаптация схемы.
Q: Как сменить порт RADIUS?
A: Порты 1812/1813 стандартные; изменение требует правки конфигурации FreeRADIUS и согласования на устройствах NAS.
Полезные ссылки
- Официальная документация daloRADIUS: https://github.com/lirantal/daloradius
- FreeRADIUS wiki: http://wiki.freeradius.org/
Резюме
- FreeRADIUS + daloRADIUS дают готовое решение для централизованной аутентификации и управления доступом.
- Следуйте указанным шагам: LAMP → MariaDB → FreeRADIUS → daloRADIUS.
- Обеспечьте безопасность: сильные пароли, HTTPS и минимум привилегий для БД.
Если нужно, могу подготовить конфигурационные сниппеты для PostgreSQL, скрипт резервного копирования radiusdb или пример правил доступа в FreeRADIUS.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента