Конфигурация PAM
Настройка пользовательской области
1.Создайте пользовательскую область для пользователей, которые авторизуются с помощью модуля PAM.
2.При настройке клиента RADIUS в разделе Пользователи выберите пользовательскую область.
Пользовательская область и текущий домен AD Если выбрана пользовательская область и модуль PAM отправляет «домен\имя пользователя» на сервер ESA RADIUS, то в пользовательской области создается пользователь с именем «домен\имя пользователя». Если вы выбрали Текущий домен AD или Текущий домен AD и доверенные домены вместо пользовательской области и модуль PAM отправляет «домен\имя пользователя» на сервер ESA RADIUS, то в области «домен» создается пользователь с именем «имя пользователя». |
Модуль аутентификации PAM
1.Загрузите PAM RADIUS tar.gz со страницы https://freeradius.org/sub_projects/.
2.Извлеките загруженный пакет, выполнив следующую команду в окне терминала:
tar xzvf pam_radius-release_2_0_0.tar.gz
3.Создайте библиотеку в формате SO, выполнив в окне терминала следующие команды:
cd pam_radius-release_2_0_0
./configure
make
В Linux (например, OpenSuse) в зависимости от результатов выполнения команды configure может потребоваться установить зависимости.
sudo zypper install gcc make pam-devel
4.Скопируйте созданную библиотеку в расположение модулей PAM по умолчанию.
Linux:
cp pam_radius_auth.so /lib/security
или
cp pam_radius_auth.so /lib64/security
Mac:
cp pam_radius_auth.so /usr/lib/pam
В OS X El Capitan и более поздней версии это расположение защищено с помощью компонента System Integrity Protection (Защита целостности системы). Чтобы использовать его, необходимо отключить его для команды копирования.
5.Создайте файл конфигурации сервера с именем server в папке /etc/raddb/ В нем введите сведения о сервере RADIUS в следующей форме:
<radius server>:<port> <shared secret> <timeout in seconds>
Например:
1.1.1.1 test 60
где:
•1.1.1.1 представляет IP-адрес сервера ESA RADIUS
•test — это общий секрет клиента RADIUS, настроенного в веб-консоли ESA;
•60 — время (в секундах), в течение которого ожидается утверждение push-уведомления.
6.Примените соответствующие разрешения безопасности к файлу конфигурации.
chown root /etc/raddb
chown root /etc/raddb/server
chmod 600 /etc/raddb
chmod 600 /etc/raddb/server
Рекомендации по обеспечению безопасности для файла конфигурации и параметры, которые можно передать в библиотеку, см. в разделах УСТАНОВКА и ИСПОЛЬЗОВАНИЕ соответственно. Например, с помощью параметра debug можно выявлять потенциальные проблемы.
Внедрение модуля PAM
Модули PAM можно внедрить в различные типы входа, например login sshd, su, sudo и так далее. Список доступных типов входа находится в расположении /etc/pam.d/.
•sshd — удаленный вход с помощью SSH
В /etc/ssh/sshd_config обязательно задайте для параметра ChallengeResponseAuthentication значение yes (да). |
•sudo
•su
•common-auth — OpenSUSE (все аутентификации)
•login — OpenSUSE (вход в консоль)
•authorization — экран входа в macOS
Чтобы включить двухфакторную аутентификацию для любой из вышеперечисленных служб, добавьте следующую строку в соответствующий файл конфигурации в /etc/pam.d:
auth required pam_radius_auth.so use_first_pass
В приведенной выше команде pam_radius_auth.so представляет собой путь к ранее настроенному модулю PAM, или это будет путь pam_radius_auth.so. Благодаря фрагменту кода use_first_pass модулю PAM не нужен дополнительный одноразовый пароль (OTP), если только в ESA RADIUS не требуется второй фактор. Например, если для пользователя с защитой с помощью двухфакторной аутентификации включена аутентификация с помощью push-уведомлений, модуль PAM ожидает утверждения только от push-уведомления и не выдает запрос на ввод одноразового пароля.
Чтобы гарантировать, что при неудачной попытке использования первого фактора двухфакторная аутентификация запрашиваться не будет, измените auth required pam_unix.so на auth requisite pam_unix.so.
Некоторые интерфейсы входа, в том числе экран входа в macOS, не могут отображать отдельное поле для двухфакторной аутентификации. В таких случаях войти в систему могут только пользователи, использующие аутентификацию с помощью push-уведомлений (Push-уведомления в мобильном приложении), пользователи, не использующие двухфакторную аутентификацию, или пользователи, помещенные в список разрешенных IP-адресов. Чтобы обеспечить использование только Push-уведомлений в мобильном приложении без запроса OTP, даже если у пользователя включены дополнительные параметры двухфакторной аутентификации, добавьте в строку конфигурации фрагмент client_id=challenge_never:
auth required pam_radius_auth.so use_first_pass client_id=challenge_never
Доступные значения для client_id:
•challenge_if_possible — параметр по умолчанию, который всегда запрашивает OTP, если у пользователя есть любой тип OTP, даже если отправка "Push-уведомления в мобильном приложении" завершена.
•challenge_always — всегда запрашивает OTP, даже если отправка "Push-уведомления в мобильном приложении" завершена и у пользователя не включен ни один тип OTP. Этот фрагмент кода позволяет всегда вводить МРК, если что-то пойдет не так (его рекомендуется использовать для критических сценариев, например, для входа SSH на удаленный сервер, к которому не удается получить доступ иным способом).
•challenge_if_needed — никогда не запрашивает OTP при отправке "Push-уведомления в мобильном приложении". Таким образом, исключаются дополнительные запросы или поля OTP и повышается скорость входа.
•challenge_never — никогда не запрашивает OTP.
В некоторых дистрибутивах Linux можно изменить диспетчер входа. Например, GDM поддерживает запросы дополнительных сведений.