Настройка 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 для проверки.
Как это работает, кратко
- Пользователь вводит логин и OTP при sudo.
- PAM передаёт запрос на pam_radius_auth.so.
- Модуль обращается к RADIUS‑серверу, где валидируется OTP (или 2FA протокол).
- При успешной аутентификации sudo выполняет команду с повышенными правами.
Мини‑методология развёртывания (шаги)
- Подготовьте тестовый сервер и тестовый административный аккаунт (не продакшн).
- Установите pam_radius на тестовом узле и настройте
/etc/raddb/server
или/etc/pam_radius_auth.conf
. - Настройте RADIUS‑сервер (WiKID/FreeRADIUS/NPS) и добавьте тестовый клиент с общим секретом.
- Проверьте аутентификацию при sudo, исправьте логи на сервере RADIUS при ошибках.
- Протестируйте откат (удаление строки pam_radius) и доступ локального администратора.
- Поэтапно внедряйте на продакшн‑серверах и отслеживайте логи.
Чек‑лист ролей (кто что делает)
- Системный администратор: установить пакеты, скопировать библиотеку, изменить
/etc/pam.d/sudo
. - Администратор RADIUS: добавить клиент, настроить политики 2FA, обеспечить доступность сервиса.
- Менеджер безопасности: провести тестирование, утвердить политику отката и уведомить команды.
- Операционная команда: мониторить SLI (доступность RADIUS) и инциденты входа.
Критерии приёмки
- sudo на тестовой машине требует OTP и успешно авторизует при корректном OTP.
- Лог RADIUS‑сервера показывает успешные/ошибочные попытки от тестового клиента.
- План отката позволяет вернуть прежнее поведение sudo без потери доступа.
- Мониторинг оповещает при недоступности RADIUS.
Runbook: простая процедура отката
- Подключитесь локально или по альтернативному каналу (консоль, KVM).
- Откройте
/etc/pam.d/sudo
и удалите/закомментируйте строку pam_radius (сохраните копию). - Перезапустите связанную службу, если необходимо (обычно не требуется).
- Проверьте выполнение
sudo
локальным админом. - Проинформируйте команду и задокументируйте причину отката.
Тестовые сценарии и критерии приёма
- Сценарий: корректный пользователь вводит валидный 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 уменьшает риск несанкционированного выполнения административных команд за счёт двухфакторной проверки. Такой подход масштабируем, совместим с корпоративными каталогами и рекомендован для защиты административных аккаунтов.
Важная заметка: перед массовым развёртыванием обязательно протестируйте процедуру отката и обеспечьте альтернативный доступ для администраторов.
Похожие материалы

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

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

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

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

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