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

Настройка 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
Автор
Редакция

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

Создать ISO для Windows 10 Technical Preview
Windows

Создать ISO для Windows 10 Technical Preview

НОД и НОК двух чисел — алгоритмы и код
Алгоритмы

НОД и НОК двух чисел — алгоритмы и код

Измерить расстояние в Google Maps на ПК
Инструкция

Измерить расстояние в Google Maps на ПК

Запись экрана iPhone: как включить и использовать
How-to

Запись экрана iPhone: как включить и использовать

Perl на IIS 7 — Windows Server 2008
Серверы

Perl на IIS 7 — Windows Server 2008

Удаление вокала в Audacity
Аудио

Удаление вокала в Audacity