Конфігурація PAM

Налаштування спеціальної області

1.Створіть спеціальну область для користувачів, які входять через модуль PAM.

2.Під час налаштування клієнта RADIUS виберіть спеціальну область у розділі Users.

Модуль автентифікації 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-адресу сервера RADIUS ESA

test — це спільний секрет клієнта RADIUS, налаштованого на консолі ESA Web Console

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


note

Переконайтеся, що атрибут ChallengeResponseAuthentication має значення yes у файлі /etc/ssh/sshd_config.

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), якщо RADIUS ESA не вимагає другого фактору. Наприклад, якщо для користувача із захистом 2FA увімкнено автентифікацію з використанням push-сповіщень, модуль PAM очікує тільки підтвердження push-сповіщення й не буде запитувати OTP.

Щоб не вимагати 2FA після помилки першого фактора, змініть auth required pam_unix.so на auth requisite pam_unix.so.

У деяких інтерфейсах входу (зокрема, на екрані входу macOS) неможливо показати окреме поле для двофакторної автентифікації (2FA). У цьому разі виконати вхід можуть тільки такі категорії користувачів: користувачі, які використовують автентифікацію за допомогою push-сповіщень (мобільну програму для push-сповіщень), користувачі без двофакторної автентифікації (2FA) і користувачі, які виконують вхід з IP-адрес у білому списку. Щоб використовувати тільки мобільну програму для push-сповіщень без OTP (навіть якщо для користувача ввімкнено додаткові параметри 2FA), додайте 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. Дозволяє ввійти в MRK за наявності проблем (рекомендується для критичних сценаріїв, наприклад, вхід через SSH на віддалений сервер, до якого неможливо отримати доступ в інший спосіб)

challenge_if_needed: ніколи не вимагати вводу OTP, якщо надсилається повідомлення про успішність надсилання push-сповіщення на мобільний пристрій. Це дозволяє уникнути додаткового запиту (поля) OTP й виконати вхід швидше.

challenge_never: OTP ніколи не запитуватиметься.

 

У деяких дистрибутивах Linux легко можна змінити менеджер входу. Наприклад, gdm підтримує запит додаткової інформації.