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

Настройка RADIUS для sudo на CentOS 7 и Ubuntu 14.04

4 min read Безопасность Обновлено 19 Oct 2025
RADIUS для sudo на CentOS 7 и Ubuntu 14.04
RADIUS для sudo на CentOS 7 и Ubuntu 14.04

К чему это и когда применять

Атаки часто используют потерянные, украденные или слабые пароли для повышения привилегий в сети. Добавление двухфакторной аутентификации (2FA) к sudo снижает риск компрометации административных команд. При использовании RADIUS можно разделить авторизацию (директория) и аутентификацию (отдельный 2FA-сервер).

Важно: RADIUS-подход совместим с большинством корпоративных 2FA-систем и позволяет централизованно управлять пользователями в каталоге.

Требования и термины в одну строку

  • PAM — модуль подлинности Linux, который интегрирует внешние механизмы аутентификации.
  • RADIUS — протокол для аутентификации, авторизации и учёта сетевого доступа.

Настройка sudo на CentOS/RHEL для двухфакторной аутентификации

Мы начнём с RHEL/CentOS 7. Выполните установку зависимостей:

sudo yum -y install make gcc pam pam-devel

Получите актуальный код PAM RADIUS (в примере версия 1.4):

wget ftp://ftp.freeradius.org/pub/radius/pam_radius-x.x.x.tar.gz

Соберите библиотеку:

tar -xzvf pam-radius-x.x.x.tar.gz
cd pam-radius-x.x.x
sudo ./configure
sudo make

Скопируйте полученную библиотеку в нужную директорию:

cp pam_radius_auth.so /lib/security/

Или для 64‑битной системы:

cp pam_radius_auth.so /lib64/security/

Создайте каталог конфигурации и скопируйте конфиг под именем server:

sudo mkdir /etc/raddb
cp pam_radius_auth.conf /etc/raddb/server

Отредактируйте /etc/raddb/server и добавьте IP‑адрес RADIUS‑сервера и общий секрет:

# server[:port] shared_secret      timeout (s)
127.0.0.1       secret             1
radius_server_IP    secret             3
#
# having localhost in your radius configuration is a Good Thing.

Примечание: для тестирования вы можете временно использовать ваш WiKID как RADIUS-сервер, добавив этот узел как клиент в WiKID.

Далее скажем sudo использовать RADIUS. Отредактируйте /etc/pam.d/sudo, заменив строку auth       include      system-auth на:

auth       required      pam_radius_auth.so

На этом настройка для CentOS/RHEL 7 завершена. Аналогичный подход работает и для версий 5 и 6.

Настройка sudo на Ubuntu 14.04 для двухфакторной аутентификации

На Ubuntu установите пакет pam-radius:

sudo apt-get install libpam-radius-auth

Отредактируйте /etc/pam_radius_auth.conf, сделав его эквивалентным примеру выше:

# server[:port] shared_secret      timeout (s)
127.0.0.1       secret             1
radius_server_IP   secret             3
#
# having localhost in your radius configuration is a Good Thing.

Добавьте в /etc/pam.d/sudo строку для вызова pam_radius перед включением общих настроек:

auth       required   pam_env.so readenv=1 user_readenv=0
auth       required   pam_env.so readenv=1 envfile=/etc/default/locale user_readenv=0
auth sufficient pam_radius_auth.so
@include common-auth
@include common-account
@include common-session-noninteractive

После этого при попытке выполнить sudo администратор будет должен ввести свой одноразовый пароль (OTP). PAM перенаправит имя пользователя и OTP на RADIUS / WiKID для проверки.

Как это работает, кратко

  1. Пользователь вводит логин и OTP при sudo.
  2. PAM передаёт запрос на pam_radius_auth.so.
  3. Модуль обращается к RADIUS‑серверу, где валидируется OTP (или 2FA протокол).
  4. При успешной аутентификации sudo выполняет команду с повышенными правами.

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

  1. Подготовьте тестовый сервер и тестовый административный аккаунт (не продакшн).
  2. Установите pam_radius на тестовом узле и настройте /etc/raddb/server или /etc/pam_radius_auth.conf.
  3. Настройте RADIUS‑сервер (WiKID/FreeRADIUS/NPS) и добавьте тестовый клиент с общим секретом.
  4. Проверьте аутентификацию при sudo, исправьте логи на сервере RADIUS при ошибках.
  5. Протестируйте откат (удаление строки pam_radius) и доступ локального администратора.
  6. Поэтапно внедряйте на продакшн‑серверах и отслеживайте логи.

Чек‑лист ролей (кто что делает)

  • Системный администратор: установить пакеты, скопировать библиотеку, изменить /etc/pam.d/sudo.
  • Администратор RADIUS: добавить клиент, настроить политики 2FA, обеспечить доступность сервиса.
  • Менеджер безопасности: провести тестирование, утвердить политику отката и уведомить команды.
  • Операционная команда: мониторить SLI (доступность RADIUS) и инциденты входа.

Критерии приёмки

  • sudo на тестовой машине требует OTP и успешно авторизует при корректном OTP.
  • Лог RADIUS‑сервера показывает успешные/ошибочные попытки от тестового клиента.
  • План отката позволяет вернуть прежнее поведение sudo без потери доступа.
  • Мониторинг оповещает при недоступности RADIUS.

Runbook: простая процедура отката

  1. Подключитесь локально или по альтернативному каналу (консоль, KVM).
  2. Откройте /etc/pam.d/sudo и удалите/закомментируйте строку pam_radius (сохраните копию).
  3. Перезапустите связанную службу, если необходимо (обычно не требуется).
  4. Проверьте выполнение sudo локальным админом.
  5. Проинформируйте команду и задокументируйте причину отката.

Тестовые сценарии и критерии приёма

  • Сценарий: корректный пользователь вводит валидный OTP — ожидается успех.
  • Сценарий: корректный пользователь вводит неверный OTP — ожидается отказ и запись в лог RADIUS.
  • Сценарий: RADIUS недоступен — ожидается отказ с возможностью отката по процедуре.
  • Сценарий: пользователь с истёкшим/отозванным токеном — отказ и уведомление администратора.

Советы по безопасности и устойчивости

  • Используйте защищённый канал между хостом и RADIUS (разграничьте доступ по IP, используйте VPN если нужно).
  • Не оставляйте тестовые пользователи/исключения в продакшне.
  • Настройте мониторинг и алерты на задержки и ошибки RADIUS.
  • Регулярно проверяйте и обновляйте общий секрет и версии пакетов.

Типичные ошибки и варианты отказа

  • Неправильный путь библиотеки (проверить /lib/security и /lib64/security).
  • Некорректный общий секрет или IP клиента в конфиге RADIUS.
  • PAM‑конфигурация перепутана местами (строки auth должны иметь правильный порядок и тип).
  • Отсутствие альтернативного доступа при ошибках (всегда иметь консольный доступ).

Краткий глоссарий

  • OTP — одноразовый пароль.
  • PAM — Pluggable Authentication Modules, модульная система аутентификации в Linux.
  • RADIUS — протокол аутентификации и авторизации сетевых запросов.

Краткое резюме

Подключение RADIUS к sudo через pam_radius уменьшает риск несанкционированного выполнения административных команд за счёт двухфакторной проверки. Такой подход масштабируем, совместим с корпоративными каталогами и рекомендован для защиты административных аккаунтов.

Важная заметка: перед массовым развёртыванием обязательно протестируйте процедуру отката и обеспечьте альтернативный доступ для администраторов.

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

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

Как обойти обнаружение AdBlock на YouTube
Технологии

Как обойти обнаружение AdBlock на YouTube

Как смотреть бесплатное аниме на iPhone
Гайты

Как смотреть бесплатное аниме на iPhone

ChatGPT + Spotify — плейлисты прямо в чате
Музыка и ИИ

ChatGPT + Spotify — плейлисты прямо в чате

ONLYOFFICE с Docker: установка на Linux
Инструкция

ONLYOFFICE с Docker: установка на Linux

iOS 26: как исправить быстрый разряд батареи
Mobile

iOS 26: как исправить быстрый разряд батареи

Обрезка изображений в Word, Excel и PowerPoint
Office

Обрезка изображений в Word, Excel и PowerPoint