Управлять сетью сложно, пока у каждого устройства свои логины и правила. Десятки точек доступа, роутеров, шлюзов — и админ превращается в архивариуса паролей. Менять доступ сотруднику? Делать это на каждом устройстве. Отключить уволенного? То же самое, только наоборот. Ошибиться легко.

Но решение существует давно — централизованная авторизация через RADIUS. Один сервер знает все: кто подключается, к чему имеет доступ и что делает в сети.

Я Лев, специалист продуктовой поддержки в Selectel. В этой статье расскажу, как работает RADIUS, за что отвечает AAA и как развернуть свой сервер на базе FreeRADIUS в облаке — от установки до интеграции с оборудованием MikroTik.

Используйте навигацию, если не хотите читать текст полностью:

Что такое RADIUS

RADIUS (Remote Authentication Dial-In User Service) — классический сетевой протокол, который лежит в основе систем контроля доступа. Проще говоря, это «привратник» вашей сети: проверяет, кто вы, что вам разрешено, и фиксирует все действия. И снова говоря чуть сложнее — решает три ключевые функции, известные как AAA.

Authentication (аутентификация) — проверяет легитимность пользователя, сверяя логин и пароль с базой данных. Поддерживает простые методы вроде PAP, а также более безопасные CHAP и EAP.

Authorization (авторизация) — определяет, к каким ресурсам и сервисам пользователь получает доступ после успешной аутентификации.

Accounting (учет) — ведет журнал всех сессий: когда пользователь вошел, сколько времени провел, сколько трафика израсходовал. Эта информация используется для биллинга, аудита и анализа.

Зачем он нужен и где используется

Главная цель RADIUS — централизация управления доступом. Вместо того чтобы хранить списки пользователей на каждом маршрутизаторе или точке доступа, вы настраиваете один центральный сервер (или кластер), который знает все обо всех. Это повышает безопасность и упрощает администрирование. 

Рассмотрим типичные сценарии использования протокола.

  • Корпоративный Wi-Fi — подключение сотрудников к защищенной сети по единым учетным данным.

  • VPN-доступ — аутентификация пользователей, подключающихся к корпоративной инфраструктуре извне.

  • DSL-подключения — исторически один из первых сценариев использования, который применяли интернет-провайдеры.

30+ бесплатных курсов на IT-темы в Академии Selectel

Для начинающих и опытных специалистов.

Изучить →

Материал подготовлен исключительно в образовательных целях. Описанные способы настройки VPN не предназначены для обхода блокировок или иных ограничений, установленных законодательством РФ.

Как работает RADIUS на практике

Когда устройство или пользователь пытаются подключиться к сети, клиент — например, точка доступа, маршрутизатор или VPN-шлюз — обращается к RADIUS-серверу. Обмен строится на трех типах сообщений:

  • Access-Request — клиент отправляет запрос с данными пользователя (логин, пароль, MAC-адрес, IP и т. д.);

  • Access-Accept / Access-Reject — сервер сверяет данные с базой и сообщает, разрешен ли доступ;

  • Accounting-Start / Accounting-Stop — при начале и завершении сессии сервер фиксирует детали соединения для учета и статистики.

Так RADIUS объединяет безопасность и контроль: администратору не нужно вручную вести учет и проверку, а все события централизуются на одном сервере.

Но как именно сервер принимает решение? На уровне пакетов после Access-Request происходит не просто проверка логина и пароля. Сервер может отправить клиенту Access-Challenge — запрос на дополнительную аутентификацию, например, по одноразовому коду. Это делает схему безопасности гибкой и многофакторной.

Где развернуть RADIUS-сервер, способный обрабатывать такие сценарии? RADIUS можно запустить на собственных мощностях — например, в дата-центре компании, однако этот вариант подойдет не для каждого. Альтернативный сценарий — запуск в облаке.

В инфраструктуре Selectel есть готовые инструменты, которые позволяют быстро развернуть RADIUS-сервис и интегрировать его с существующей сетью. Разберемся, как это сделать на практике.

Схема использования RADIUS-сервера в сети.

RADIUS-сервер в облаке

В примере поднимем RADIUS-сервер в облаке Selectel, добавим тестового пользователя и подключим виртуальный MikroTik.1. В панели управленияпереходим во вкладку Продукты → Облачные серверы и нажимаем кнопку Создать сервер.

Скриншот из панели управления Selectel. Переход в раздел «Облачные серверы».
Скриншот из панели управления Selectel. Создание сервера.

2. Конфигурируем облачный сервер: прописываем имя и выбираем регион с пулом, ОС — Ubuntu 20.04, 1 vCPU, 2 ГБ ОЗУ и 15 ГБ хранилища (будет достаточно базового HDD-диска).

Скриншот из панели управления Selectel. Конфигурирование сервера.

3. В разделе Сеть выбираем Новый публичный IP-адрес и включаем DHCP.

Скриншот из панели управления Selectel. Настройка сети сервера.

4. Ознакамливаемся с ценой конфигурации и нажимаем Создать сервер.

Подробная инструкция по подключению и работе с серверами — в документации Selectel.

Установка и базовая настройка RADIUS

1. Обновляем репозитории:

sudo apt update && apt upgrade -y

2. Устанавливаем RADIUS-сервис:

sudo apt install freeradius freeradius-utils -y
Скриншот консоли.

3. Переходим в директорию конфигурации: 

cd /etc/freeradius/3.0
Скриншот консоли.

4. Открываем файл клиентов (clients.conf):

nano clients.conf

Внутри — закомментируем строки для localhost:

client localhost
  ipaddr
  proto
  secret

6. Добавляем тестового клиента (пример):

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

7. Сохраняем изменения (Ctrl+O), выходим из файла (Ctrl+X) и открываем файл пользователей: 

nano users

8. Находим строки с тестовым логином bob:

Скриншот консоли.

И ниже добавляем нашего пользователя, например:

Скриншот консоли.
#bob 	Cleartext-Password := "hello"
#	Reply-Message := "Hello, %{User-Name}"
#
#
radius Cleartext-Password := "Selectel"
	     Reply-Message = "Hello, %{User-Name}"

Проверка RADIUS-сервера

1. Запускаем FreeRADIUS в отладочном режиме:

sudo freeradius -X

Если ошибок нет — останавливаем проверку (Ctrl+C).

2. Запускаем службу и включаем автозапуск:

sudo systemctl start freeradius
sudo systemctl enable freeradius

3. Проверяем состояние:

sudo systemctl status freeradius
Скриншот консоли.

4. Запускаем тестовый RADIUS-сервис и убеждаемся, что он работает:

Скриншот консоли.

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

Теперь настроим RADIUS-клиент на основе виртуального MikroTik.

1. На официальном сайте MikroTik переходим в раздел Cloud Hosted Router и скачиваем актуальный образ Raw disk image, в нашем случае — 7.20.2 Stable.

Скриншот сайта MikroTik, выбор образа.

2. Переходим в панель, загружаем скачанный образ и создаем из него облачный сервер. Подробнее, как это сделать — на отдельной странице документации

Скриншот из панели управления. Загрузка образа.
Скриншот панели управления Selectel. Создание сервера с выбором образа как источника.

3. Подключаемся к новому серверу через встроенную панель или по внешнему IP-адресу.

4.Логин — admin, пароль — не установлен, просто нажимаем Enter.

Скриншот консоли.

5. Выполняем настройку аутентификации пользователей:

/user aaa set use-radius=yes

6. Создаем клиента на MikroTik:

/radius add address=192.168.1.26 secret=Selectel service=login,hotspot,ppp,wireless timeout=10s

После создания клиента важно вернуться на RADIUS-сервер и добавить адрес MikroTik в файл clients.conf

Скриншот консоли.

7. Перезапускаем службу: 

sudo systemctl restart freeradius

8. Проверяем авторизацию — если все указано верно, вход будет успешным: 

Авторизация в MikroTik.
Успешное подключение в MikroTik.

Важно. По умолчанию мы создали пользователя c правами read. Чтобы выдать права full, в терминале MikroTik выполните команду:

/user aaa set use-radius=yes default-group=full

Что получилось

Мы развернули FreeRADIUS на облачном сервере Ubuntu, добавили тестового пользователя и подключили к серверу виртуальный MikroTik. Теперь у нас есть:

  • централизованное управление пользователями — все учетные данные хранятся на одном сервере;

  • масштабируемость — можно подключить десятки точек доступа, коммутаторов и шлюзов;

  • базовый аудит — FreeRADIUS ведет логи всех входов и попыток авторизации.

Рекомендации перед внедрением в прод

  • Замените секреты testing123 и Selectel на криптостойкие строки.

  • Настройте файрвол: разрешите UDP-порты 1812/1813 только с IP-адресов доверенных клиентов.

Комментарии (0)