Гид по технологиям

Установка FreeRADIUS и daloRADIUS на Ubuntu 20.04

• 8 min read • DevOps • Обновлено 24 Nov 2025
FreeRADIUS и daloRADIUS на Ubuntu 20.04
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 -y
sudo apt upgrade -y

Флаги: опция -y подтверждает автоматическое соглашение с установкой пакетов.

Пример вывода вы увидите в процессе обновления. При необходимости перезагрузите систему:

sudo reboot now

Вывод: обновление пакетов

Обновление Ubuntu

Установка зависимостей

Установим 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‑модулями установите дополнительные пакеты, которые могут потребоваться для вашей версии PHP (например, php7.4‑mbstring и т.д.).

Установка FreeRADIUS

Проверьте доступные версии пакета freeradius:

sudo apt policy freeradius

Версия FreeRADIUS в репозитории

Установите FreeRADIUS и модули для работы с MySQL/MariaDB:

sudo apt -y install freeradius freeradius-mysql freeradius-utils

Проверка в режиме отладки. Остановите сервис и запустите в режиме отладки, чтобы увидеть готовность и ошибки:

sudo systemctl stop freeradius.service
sudo freeradius -X

Ожидайте строку “Ready to process requests” в выводе — это означает, что сервер прослушивает запросы.

FreeRADIUS debug mode

Примечание: для фонового запуска используйте 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;"

Создание базы данных FreeRADIUS

Совет по безопасности: используйте сложный пароль и не оставляйте общедоступный аккаунт root без пароля. Для продакшна создавайте отдельного пользователя с ограниченными правами.

Установка и настройка daloRADIUS

Скачиваем архив daloRADIUS из репозитория:

wget https://github.com/lirantal/daloradius/archive/master.zip

Скачивание daloRADIUS

Распакуйте и переименуйте папку:

unzip master.zip
mv daloradius-master daloradius
cd daloradius

Импортируем схемы базы данных (путь относительный к папке с daloRADIUS):

sudo mysql -u root -p radius < contrib/db/fr2-mysql-daloradius-and-freeradius.sql
sudo 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 freeradius
sudo 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

Настройка брандмауэра для FreeRADIUS

Состояние UFW

Совет: если сервер находится за NAT, перенаправьте порты на внешний IP и убедитесь, что UDP‑трафик не блокируется провайдером.

Доступ к веб‑интерфейсу daloRADIUS

Откройте в браузере:

http:///daloradius/login.php

Учётные данные по умолчанию:

  • Логин: administrator
  • Пароль: radius

После входа смените пароль администратора: Конфигурация → Operators → List Operators → правой кнопкой по administrator → Change Password.

Вход в daloRADIUS

Панель daloRADIUS

Технические рекомендации и лучшие практики

  1. SSL/TLS для панели управления
  • Настройте HTTPS (Let’s Encrypt или ваш сертификат), чтобы защитить веб‑консоль от перехвата учётных данных.
  • В Apache добавьте виртуальный хост для /daloradius и включите редирект с HTTP на HTTPS.
  1. Разделение прав
  • Создайте отдельного пользователя БД с минимальными правами для daloRADIUS.
  • Не используйте root‑учётную запись БД для веб‑приложений.
  1. Резервное копирование
  • Регулярно делайте дампы базы данных и копии конфигураций /etc/freeradius/ и /var/www/html/daloradius/library/.
  • Скрипт бэкапа можно запускать через cron.
  1. Логи и мониторинг
  • Включите ротацию логов и мониторинг логов /var/log/freeradius/radius.log.
  • Для продакшн‑систем рассмотрите централизованный сбор логов (ELK, Graylog, Prometheus + Grafana).
  1. Установите ограничения на количество одновременных сессий и политики повторной аутентификации, чтобы предотвратить 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‑трафик.
  • Логи не содержат критических ошибок при старте.

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

  1. Добавьте тест‑клиента в /etc/freeradius/clients.conf или через daloRADIUS.
  2. Добавьте тест‑пользователя в таблицу radcheck.
  3. Используйте radclient или утилиту для отправки запроса Access‑Request и проверьте ответ.
echo "User-Name=testUser,User-Password=testPass" | radclient -x 127.0.0.1 auth testing123

Ожидаемый ответ: Access‑Accept.

Распространённые ошибки и способы их устранения

  1. Проблема: “The package freeradius has no installation candidate.”
  • Причина: пакет недоступен в текущих репозиториях.
  • Решение: обновите репозитории, проверьте /etc/apt/sources.list и используйте поддерживаемую версию Ubuntu. Для старых систем рассмотрите сборку из исходников.
  1. Проблема: FreeRADIUS не подключается к MySQL
  • Причина: неверные учётные данные или права в MySQL.
  • Решение: проверьте правильность конфигурации в файлах /etc/freeradius/mods‑enabled/sql и убедитесь, что плагин mysql/mariadb включён. Проверьте права пользователя БД.
  1. Проблема: daloRADIUS не отображается в интерфейсе, отсутствует иконка
  • Решение: откройте /var/www/html/daloradius/includes/config_vars.php и убедитесь, что есть define(‘DALORADIUS_ENABLED’, true); перезапустите Apache.
  1. Проблема: веб‑страница не открывается
  • Причина: Apache не запущен, порт заблокирован UFW, или конфликт виртуальных хостов.
  • Решение: sudo systemctl status apache2; sudo ufw status; проверьте конфигурацию виртуальных хостов и права доступа.

Роли и контрольный список (Role‑based checklist)

Администратор системы:

  • Проверить обновления пакетов и применить патчи.
  • Настроить резервное копирование конфигураций и БД.
  • Настроить HTTPS и fail2ban.

Сетевой инженер:

  • Добавить RADIUS‑клиентов (точки доступа, VPN‑шлюзы) с корректными секретами.
  • Проверить пропускную способность и задержку UDP.

Оператор daloRADIUS:

  • Создать и тестировать пользователей и профили доступа.
  • Проводить аудит логов доступа ежедневно/недельно.

Мини‑методология развёртывания (короткий SOP)

  1. Подготовка окружения: обновление ОС, создание резервной копии.
  2. Установка пакетов: Apache, MariaDB, PHP, FreeRADIUS.
  3. Создание БД и пользователя для FreeRADIUS/daloRADIUS.
  4. Импорт схемы daloRADIUS и настройка конфигурации.
  5. Настройка брандмауэра и SSL для веб‑панели.
  6. Тестирование аутентификации и мониторинг логов.
  7. Применение политики безопасности и регулярного бэкапа.

Альтернативные подходы

  • Если не нужна веб‑панель, управляйте 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), напишите, и я подготовлю подробный план.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро