Установка FreeRADIUS и daloRADIUS на Ubuntu 20.04
Важно: выполняйте команды от имени пользователя с sudo или root. Перед изменениями в продакшн‑системе создайте снимок (snapshot) или резервную копию конфигураций.

Обзор
FreeRADIUS — это свободный RADIUS‑сервер для UNIX‑систем, обеспечивающий централизованную аутентификацию, авторизацию и учёт (AAA). daloRADIUS — веб‑интерфейс для управления FreeRADIUS, упрощающий администрирование через браузер.
Зачем это нужно:
- Централизованная аутентификация для Wi‑Fi, VPN, хотспотов и корпоративных сервисов.
- Хранение пользователей, клиентов и записей учёта в базе данных MariaDB/MySQL.
- Визуальное управление через daloRADIUS для операторов и администраторов.
Ключевая идея: клиент (устройство или пользователь) авторизуется через RADIUS перед выдачей сетевого доступа. Часто используется вместе с IEEE 802.1X и EAP‑методами (EAP‑TLS, PEAP и др.).
Что такое протокол RADIUS?
RADIUS (Remote Authentication Dial‑In User Service) — сетевой протокол для управления аутентификацией, авторизацией и учётом (AAA). Короткие определения:
- Аутентификация: подтверждение личности клиента (пользователь, устройство или процесс).
- Авторизация: определение, какие права/ресурсы разрешены.
- Учёт (Accounting): сбор данных о сессиях для учёта/биллинга или аудита.
Когда использовать FreeRADIUS + daloRADIUS
Подходит для: корпоративных Wi‑Fi (802.1X), хотспотов, VPN (OpenVPN, Strongswan), сетей с необходимостью ведения учёта, где удобна веб‑панель для повседневных задач.
Не подходит, если: вам нужен лёгкий локальный LDAP без AAA, или для очень простых домашних сетей достаточно статических паролей без централизованной учётной записи.
Требования
- Сервер с Ubuntu 20.04 LTS (или совместимая ветка). Подойдёт VPS или физический сервер.
- Минимум 512 МБ ОЗУ, 300 МБ свободного диска, 64‑бит CPU 1.4 ГГц или выше (для теста). Для продакшна рекомендованы больше ресурсoв (1–2 ГБ минимум, SSD).
- Пользователь с правами sudo или root.
- Доступ к интернету для загрузки пакетов.
Фактические порты и протоколы (фактбокс):
- RADIUS аутентификация — UDP порт 1812.
- RADIUS accounting — UDP порт 1813.
- HTTP (daloRADIUS) — TCP порт 80; HTTPS — TCP порт 443 (если настроите SSL).
Подготовка системы
Обновите список пакетов и установите обновления:
sudo apt update -ysudo apt upgrade -yФлаги: опция -y подтверждает автоматическое соглашение с установкой пакетов.
Пример вывода вы увидите в процессе обновления. При необходимости перезагрузите систему:
sudo reboot now

Установка зависимостей
Установим Apache, MariaDB, PHP и вспомогательные модули, необходимые для daloRADIUS:
sudo 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:
php -v
Совет: при проблемах с PHP‑модулями установите дополнительные пакеты, которые могут потребоваться для вашей версии PHP (например, php7.4‑mbstring и т.д.).
Установка FreeRADIUS
Проверьте доступные версии пакета freeradius:
sudo apt policy freeradius
Установите FreeRADIUS и модули для работы с MySQL/MariaDB:
sudo apt -y install freeradius freeradius-mysql freeradius-utilsПроверка в режиме отладки. Остановите сервис и запустите в режиме отладки, чтобы увидеть готовность и ошибки:
sudo systemctl stop freeradius.servicesudo freeradius -XОжидайте строку “Ready to process requests” в выводе — это означает, что сервер прослушивает запросы.

Примечание: для фонового запуска используйте systemd:
sudo systemctl start freeradius.serviceСоздание базы данных для FreeRADIUS
Подключитесь к MariaDB и создайте базу данных radius:
sudo mysql -u rootВ консоли MariaDB выполните:
CREATE DATABASE radius;
GRANT ALL ON radius.* TO radius@localhost IDENTIFIED BY "yourpassword";
FLUSH PRIVILEGES;
QUIT;Проверьте, что база создана:
mysql -u root -p -e "show databases;"
Совет по безопасности: используйте сложный пароль и не оставляйте общедоступный аккаунт root без пароля. Для продакшна создавайте отдельного пользователя с ограниченными правами.
Установка и настройка daloRADIUS
Скачиваем архив daloRADIUS из репозитория:
wget https://github.com/lirantal/daloradius/archive/master.zip
Распакуйте и переименуйте папку:
unzip master.zip
mv daloradius-master daloradius
cd daloradiusИмпортируем схемы базы данных (путь относительный к папке с daloRADIUS):
sudo mysql -u root -p radius < contrib/db/fr2-mysql-daloradius-and-freeradius.sqlsudo mysql -u root -p radius < contrib/db/mysql-daloradius.sqlПереместите веб‑файлы в корень веб‑серверa:
cd
sudo mv daloradius /var/www/html/Переименуйте файл конфигурации и задайте права:
sudo mv /var/www/html/daloradius/library/daloradius.conf.php.sample /var/www/html/daloradius/library/daloradius.conf.php
sudo chown -R www-data:www-data /var/www/html/daloradius/
sudo chmod 664 /var/www/html/daloradius/library/daloradius.conf.phpОткройте конфигурационный файл и укажите параметры подключения к БД FreeRADIUS (пример):
sudo nano /var/www/html/daloradius/library/daloradius.conf.phpИзмените значения на реальные данные вашей БД:
$configValues['FREERADIUS_VERSION'] = '2';
$configValues['CONFIG_DB_ENGINE'] = 'mysqli';
$configValues['CONFIG_DB_HOST'] = 'localhost';
$configValues['CONFIG_DB_PORT'] = '3306';
$configValues['CONFIG_DB_USER'] = 'howtoforge';
$configValues['CONFIG_DB_PASS'] = 'Str0ngpass@howtoforge';
$configValues['CONFIG_DB_NAME'] = 'howtoforge';Важно: замените учётные данные на те, что вы создали ранее (например, radius/radiuspassword).
Перезапустите службы:
sudo systemctl restart freeradiussudo systemctl restart apache2Настройка брандмауэра (UFW)
Откройте необходимые порты для RADIUS и веб‑доступа:
sudo ufw enable
sudo ufw allow 1812/udp
sudo ufw allow 1813/udp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcpПроверьте статус:
sudo ufw status

Совет: если сервер находится за NAT, перенаправьте порты на внешний IP и убедитесь, что UDP‑трафик не блокируется провайдером.
Доступ к веб‑интерфейсу daloRADIUS
Откройте в браузере:
http://
Учётные данные по умолчанию:
- Логин: administrator
- Пароль: radius
После входа смените пароль администратора: Конфигурация → Operators → List Operators → правой кнопкой по administrator → Change Password.


Технические рекомендации и лучшие практики
- SSL/TLS для панели управления
- Настройте HTTPS (Let’s Encrypt или ваш сертификат), чтобы защитить веб‑консоль от перехвата учётных данных.
- В Apache добавьте виртуальный хост для /daloradius и включите редирект с HTTP на HTTPS.
- Разделение прав
- Создайте отдельного пользователя БД с минимальными правами для daloRADIUS.
- Не используйте root‑учётную запись БД для веб‑приложений.
- Резервное копирование
- Регулярно делайте дампы базы данных и копии конфигураций /etc/freeradius/ и /var/www/html/daloradius/library/.
- Скрипт бэкапа можно запускать через cron.
- Логи и мониторинг
- Включите ротацию логов и мониторинг логов /var/log/freeradius/radius.log.
- Для продакшн‑систем рассмотрите централизованный сбор логов (ELK, Graylog, Prometheus + Grafana).
- Установите ограничения на количество одновременных сессий и политики повторной аутентификации, чтобы предотвратить DOS‑атаки.
Безопасность: жёсткая настройка (hardening)
- Отключите анонимный доступ в MariaDB и удалите тестовые БД.
- Задайте сильные пароли для всех учётных записей.
- Ограничьте доступ к админ‑панели по IP (в конфигурации Apache или используя fail2ban).
- Включите fail2ban для защиты от перебора паролей в веб‑интерфейсе.
- Ограничьте права файловой системы: /var/www/html/daloradius/library/daloradius.conf.php — 640, владелец www‑data.
- Если используете EAP‑TLS, защитите приватные ключи и используйте аппаратные модули HSM при необходимости.
Тестирование и приёмка
Критерии приёмки:
- FreeRADIUS успешно запускается в режиме демона и в режиме отладки показывает “Ready to process requests”.
- daloRADIUS корректно подключается к базе и открывается в браузере.
- Простая аутентификация с учётной записью в базе проходит (Access‑Request → Access‑Accept).
- Порты 1812/1813 открыты и принимают UDP‑трафик.
- Логи не содержат критических ошибок при старте.
Пример теста (локальная проверка):
- Добавьте тест‑клиента в /etc/freeradius/clients.conf или через daloRADIUS.
- Добавьте тест‑пользователя в таблицу radcheck.
- Используйте radclient или утилиту для отправки запроса Access‑Request и проверьте ответ.
echo "User-Name=testUser,User-Password=testPass" | radclient -x 127.0.0.1 auth testing123Ожидаемый ответ: Access‑Accept.
Распространённые ошибки и способы их устранения
- Проблема: “The package
freeradiushas no installation candidate.”
- Причина: пакет недоступен в текущих репозиториях.
- Решение: обновите репозитории, проверьте /etc/apt/sources.list и используйте поддерживаемую версию Ubuntu. Для старых систем рассмотрите сборку из исходников.
- Проблема: FreeRADIUS не подключается к MySQL
- Причина: неверные учётные данные или права в MySQL.
- Решение: проверьте правильность конфигурации в файлах /etc/freeradius/mods‑enabled/sql и убедитесь, что плагин mysql/mariadb включён. Проверьте права пользователя БД.
- Проблема: daloRADIUS не отображается в интерфейсе, отсутствует иконка
- Решение: откройте /var/www/html/daloradius/includes/config_vars.php и убедитесь, что есть define(‘DALORADIUS_ENABLED’, true); перезапустите Apache.
- Проблема: веб‑страница не открывается
- Причина: Apache не запущен, порт заблокирован UFW, или конфликт виртуальных хостов.
- Решение: sudo systemctl status apache2; sudo ufw status; проверьте конфигурацию виртуальных хостов и права доступа.
Роли и контрольный список (Role‑based checklist)
Администратор системы:
- Проверить обновления пакетов и применить патчи.
- Настроить резервное копирование конфигураций и БД.
- Настроить HTTPS и fail2ban.
Сетевой инженер:
- Добавить RADIUS‑клиентов (точки доступа, VPN‑шлюзы) с корректными секретами.
- Проверить пропускную способность и задержку UDP.
Оператор daloRADIUS:
- Создать и тестировать пользователей и профили доступа.
- Проводить аудит логов доступа ежедневно/недельно.
Мини‑методология развёртывания (короткий SOP)
- Подготовка окружения: обновление ОС, создание резервной копии.
- Установка пакетов: Apache, MariaDB, PHP, FreeRADIUS.
- Создание БД и пользователя для FreeRADIUS/daloRADIUS.
- Импорт схемы daloRADIUS и настройка конфигурации.
- Настройка брандмауэра и SSL для веб‑панели.
- Тестирование аутентификации и мониторинг логов.
- Применение политики безопасности и регулярного бэкапа.
Альтернативные подходы
- Если не нужна веб‑панель, управляйте FreeRADIUS конфигами напрямую (текстовые файлы в /etc/freeradius/).
- Для интеграции с LDAP используйте модуль sql/ldap FreeRADIUS вместо MySQL, если у вас уже есть LDAP/AD.
- Для обработки большого количества сессий рассмотрите кластеризацию RADIUS и репликацию БД.
Дерево решений (Mermaid)
flowchart TD
A[Нужен RADIUS?] -->|Да| B{Есть LDAP/AD?}
B -->|Да| C[Интегрировать FreeRADIUS с LDAP]
B -->|Нет| D{Нужна веб‑панель?}
D -->|Да| E[Установить daloRADIUS]
D -->|Нет| F[Управлять конфигами вручную]
A -->|Нет| G[Не использовать RADIUS]Совместимость и миграция
- Эта инструкция ориентирована на Ubuntu 20.04 LTS. На более новых версиях Ubuntu (22.04 и выше) большинство шагов сохранятся, но версии PHP и пакетов могут отличаться.
- При миграции базы данных между версиями MariaDB/MySQL соблюдайте стандартные процедуры дампа и восстановления: mysqldump/restore.
Примечания по приватности и соответствию
- FreeRADIUS хранит логины и, при учёте, данные о сессиях; учитывайте требования GDPR/локального законодательства при хранении и передаче персональных данных.
- Ограничьте доступ к логам и настройте политику хранения логов (retention) в соответствии с политикой конфиденциальности.
Краткое резюме
Вы настроили FreeRADIUS с хранением данных в MariaDB и установили daloRADIUS для удобного управления. Провели базовую настройку брандмауэра, проверили сервис в режиме отладки и импортировали схему daloRADIUS. Дальнейшие шаги: включить HTTPS, усилить права доступа и настроить резервное копирование.
Если вы столкнётесь с проблемами, сначала проверьте логи FreeRADIUS и Apache, затем права доступа к базе. Для расширения функциональности рассмотрите интеграцию с LDAP/AD и переход на EAP‑TLS для более безопасной аутентификации.
Спасибо за использование этой инструкции. Если нужна помощь по отдельным шагам (конфигурация EAP, интеграция с AD, SSL для Apache), напишите, и я подготовлю подробный план.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента