Установка FreeRADIUS на Ubuntu 20.04/22.04: Пошаговая инструкция | AdminWiki

Установка FreeRADIUS на Ubuntu: Полное руководство для DevOps

19 декабря 2025 6 мин. чтения #devops #freeradius #radius #ubuntu #аутентификация #сетевая безопасность

Представь, что тебе нужно развернуть централизованную систему аутентификации для корпоративной сети. FreeRADIUS — это мощный, гибкий и бесплатный RADIUS-сервер, который станет твоим лучшим помощником в этой задаче. В этой статье мы разберем установку FreeRADIUS на Ubuntu от А до Я, как настоящие DevOps-инженеры.

Что такое FreeRADIUS и зачем он нужен?

FreeRADIUS — это самый популярный открытый RADIUS-сервер, который используется для централизованной аутентификации, авторизации и учета (AAA) в сетях. Он поддерживает:

  • Аутентификацию пользователей Wi-Fi сетей
  • VPN-подключения (OpenVPN, IPSec)
  • Сетевые устройства (коммутаторы, маршрутизаторы)
  • 802.1X для проводных сетей
Важно: Перед началом убедись, что у тебя есть доступ к серверу Ubuntu с правами sudo. Мы будем работать с Ubuntu 20.04/22.04 LTS.

Подготовка системы к установке

Давай начнем с обновления системы и установки необходимых зависимостей:

bash
# Обновляем список пакетов
sudo apt update

# Обновляем установленные пакеты
sudo apt upgrade -y

# Устанавливаем необходимые зависимости
sudo apt install -y build-essential libtalloc-dev libpcre3-dev \
    libssl-dev libcurl4-openssl-dev libsqlite3-dev libpam0g-dev \
    libmysqlclient-dev libfreeradius-dev

Установка FreeRADIUS из репозитория

Самый простой способ установки — использовать официальные репозитории Ubuntu:

bash
# Устанавливаем FreeRADIUS и утилиты
sudo apt install -y freeradius freeradius-utils freeradius-mysql \
    freeradius-postgresql freeradius-ldap
Внимание: Если тебе нужна конкретная версия или последние фичи, рассмотри установку из исходников. Но для большинства production-сред репозиторная версия — оптимальный выбор.

Базовая настройка FreeRADIUS

После установки переходим к конфигурации. Основные конфигурационные файлы находятся в /etc/freeradius/3.0/ (для версии 3.x).

Настройка клиентов

Клиенты — это устройства, которые будут отправлять запросы на наш RADIUS-сервер. Отредактируем файл клиентов:

bash
# Открываем файл клиентов для редактирования
sudo nano /etc/freeradius/3.0/clients.conf

Добавь следующую конфигурацию для локального клиента (например, для тестирования):

config
client localhost {
    ipaddr = 127.0.0.1
    secret = testing123
    require_message_authenticator = no
    nas_type = other
}

# Пример для сетевого устройства
client network-switch {
    ipaddr = 192.168.1.10
    secret = StrongSecretKey123
    shortname = switch-1
}

Настройка пользователей

Для начала создадим простую локальную базу пользователей. Отредактируем файл users:

bash
sudo nano /etc/freeradius/3.0/mods-config/files/authorize
config
# Простой тестовый пользователь
testuser Cleartext-Password := "testpass123"
    Reply-Message = "Hello, %{User-Name}!"

# Пользователь с ограничением по IP
alice Cleartext-Password := "alicepass"
    Framed-IP-Address = 192.168.1.100,
    Session-Timeout = 3600

Запуск и тестирование FreeRADIUS

Теперь давай запустим сервер и протестируем его работу:

bash
# Перезапускаем FreeRADIUS
sudo systemctl restart freeradius

# Проверяем статус службы
sudo systemctl status freeradius

# Включаем автозагрузку
sudo systemctl enable freeradius

Тестирование в режиме отладки

Для отладки запустим FreeRADIUS в foreground-режиме:

bash
# Останавливаем службу
sudo systemctl stop freeradius

# Запускаем в режиме отладки
sudo freeradius -X

В другом терминале тестируем аутентификацию:

bash
# Тестируем аутентификацию
radtest testuser testpass123 127.0.0.1 0 testing123
Совет: В логах отладки (режим -X) ты увидишь весь процесс обработки запроса. Это бесценно для поиска проблем в конфигурации.

Расширенная настройка: интеграция с базами данных

Для production-среды локальный файл пользователей не подходит. Давай настроим MySQL/PostgreSQL:

bash
# Устанавливаем MySQL и необходимые модули
sudo apt install -y mysql-server freeradius-mysql

# Импортируем схему базы данных
sudo mysql -u root -p < /etc/freeradius/3.0/mods-config/sql/main/mysql/schema.sql

Настройка модуля SQL в /etc/freeradius/3.0/mods-available/sql:

config
sql {
    driver = "rlm_sql_mysql"
    dialect = "mysql"
    
    server = "localhost"
    port = 3306
    login = "radius"
    password = "SecurePassword123"
    
    radius_db = "radius"
    
    # Параметры пула соединений
    num_sql_socks = 5
    
    # Логирование
    logfile = "/var/log/freeradius/sql.log"
}

Безопасность и оптимизация

После базовой настройки обязательно выполни эти шаги:

Мера безопасности Описание Команда/Настройка
Смена секретов Замени testing123 на сложные секреты clients.conf
Firewall Открыть только порты 1812/1813 sudo ufw allow 1812,1813/udp
Логирование Настройка ротации логов /etc/logrotate.d/freeradius
Мониторинг Настройка health checks radwatch

Частые проблемы и их решение

Проблема: Сервер не запускается

Решение: Проверь логи sudo journalctl -u freeradius -f. Частая причина — синтаксическая ошибка в конфигах.

Проблема: Аутентификация не работает

Решение: Запусти в режиме отладки freeradius -X и проверь, что секреты клиентов совпадают.

FAQ: Ответы на частые вопросы

Какой порт использует FreeRADIUS?

По умолчанию FreeRADIUS использует UDP порты 1812 для аутентификации и 1813 для учета (accounting). Некоторые старые устройства могут использовать порты 1645 и 1646.

Как настроить резервирование (HA)?

Для High Availability можно использовать несколько подходов: балансировку нагрузки через keepalived, репликацию базы данных или использование внешних бэкендов (например, LDAP).

Как мигрировать с версии 2.x на 3.x?

FreeRADIUS 3.x имеет обратную совместимость, но рекомендуется провести тестирование. Основные изменения: новая структура каталогов и улучшенная модульная архитектура.

Чеклист успешной установки

  • Служба freeradius запущена и включена
  • Команда radtest возвращает "Access-Accept"
  • Порт 1812 открыт в firewall
  • Секреты клиентов изменены с дефолтных
  • Настроено логирование и мониторинг

Поздравляю! Теперь у тебя работает полноценный RADIUS-сервер на Ubuntu. Помни: это только начало. FreeRADIUS — невероятно гибкая система, которую можно адаптировать под любые требования. Экспериментируй с модулями, настраивай политики и не забывай про безопасность.

Поделиться:
Сохранить гайд? В закладки браузера