Настройка двухфакторной аутентификации при входе в MacOS
Данная статья описывает настройку входа на рабочую станцию или сервер на основе операционной системы MacOS с логином и паролем, и вторым фактором с использованием Radius сервера Multifactor.
Возможные способы аутентификации:
- Мобильное приложение MultiFactor
- Telegram
- Звонок (нужно принять вызов и нажать #)
Схема работы
- Системные службы авторизации MacOS используют модуль PAM_RADIUS для проверки второго фактора подлинности;
- Модуль подключается по RADIUS протоколу к облачному серверу Мультифактор или к установленному в сети RADIUS адаптеру;
- Мультифактор отправляет PUSH уведомление или совершает звонок пользователю для подтверждения доступа;
- Пользователь подтверждает PUSH или звонок и входит в операционную систему.
Требования для установки компонента
- Рабочая станция MacOS на базе процессора Intel, начиная с версии OS X Lion;
- Сетевой доступ к radius.multifactor.ru или RADIUS адаптеру, установленному в локальной сети.
Сценарий использования
Защита локального доступа к рабочей станции MacOS дополнительным фактором доступа.
Перед началом работы
В версиях OS X El Capitan или выше, директория с PAM модулями по умолчанию /usr/lib/pam
защищена на запись технологией System Integrity Protection (SIP).
Для целей данного руководства используется находящаяся в исключениях SIP директория /usr/local/lib
. Если вы хотите использовать системную директорию, отключите SIP.
Настройка Мультифактора
- Зайдите в Административную панель Мультифактора, в разделе "Ресурсы" создайте ресурс типа "Сервер" - "Linux сервер";
- Заполните "Название", "Адрес" и "Язык" по вашему усмотрению. Установите переключатель в "Запретить доступ" в разделе "При подключении без настроенного второго фактора";
- После создания вам будут доступны два параметра: NAS Identifier и Shared Secret, они потребуются для последующих шагов;
- (Опционально) Установите и настройте Radius адаптер, в случае если вы не хотите работать через облачный RADIUS сервер Multifactor. Убедитесь, что адаптер настроен на работу без проверки первого фактора:
<add key="first-factor-authentication-source" value="None"/>
;
Установка и настройка модуля PAM_RADIUS
Загрузите исходный код модуля
$ wget https://github.com/FreeRADIUS/pam_radius/archive/release_2_0_0.tar.gz
$ tar -xzvf release_2_0_0.tar.gz
Скомпилируйте модуль pam_radius_auth.so
$ cd pam_radius-release_2_0_0
$ ./configure
$ make
Скопируйте модуль в /usr/local/lib
$ cp pam_radius_auth.so /usr/local/lib
Далее создайте файл конфигурации
$ sudo vi /etc/pam_radius_auth.conf
Впишите в него настройки RADIUS сервера Мультифактора, cохраните и закройте редактор (:x)
host SHARED_SECRET 40
где:
- host: адрес сервера (облачный
radius.multifactor.ru
или локальный); - SHARED_SECRET: скопируйте соответствующий параметр Shared Secret из настроек ресурса MacOS Logon Мультифактор;
- 40: таймаут ожидания запроса с запасом.
В файле хранится секретный ключ, поэтому установите на него права доступа на чтение только пользователю root
$ sudo chmod 0600 /etc/pam_radius_auth.conf
Настройка PAM модулей
Откройте для редактирования конфигурационный файл службы authorization
$ sudo vi /etc/pam.d/authorization
В файле замените строку
auth required pam_opendirectory.so use_first_pass nullok
на
auth requisite pam_opendirectory.so use_first_pass nullok
Флаг requisite остановит проверку в случае ввода неправильного пароля и исключит лишний запрос второго фактора.
В конце файла добавьте следующую строку
auth required /usr/local/lib/pam_radius_auth.so skip_passwd client_id=NAS_Identifier conf=/etc/pam_radius_auth.conf
где:
- NAS_Identifier: скопируйте соответствующий параметр NAS Identifier из настроек ресурса MacOS Logon Мультифактор.
Сохраните и закройте файл (:x).
Далее таким же методом отредактируйте и сохраните файл screensaver
.
В итоге файлы authorization
и screensaver
должны выглядеть подобным образом:
- Authorization
- Screensaver
# authorization: auth account
auth optional pam_krb5.so use_first_pass use_kcminit
auth optional pam_ntlm.so use_first_pass
auth requisite pam_opendirectory.so use_first_pass nullok
account required pam_opendirectory.so
auth required /usr/local/lib/pam_radius_auth.so skip_passwd client_id=rs_a71f0eb03b3daba6b4823fa025603 conf=/etc/pam_radius_auth.conf
# screensaver: auth account
auth optional pam_krb5.so use_first_pass use_kcminit
auth requisite pam_opendirectory.so use_first_pass nullok
account required pam_opendirectory.so
account sufficient pam_self.so
account required pam_group.so no_warn group=admin,wheel fail_safe
account required pam_group.so no_warn deny group=admin,wheel ruser fail_safe
auth required /usr/local/lib/pam_radius_auth.so skip_passwd client_id=rs_a71f0eb03b3daba6b4823fa025603 conf=/etc/pam_radius_auth.conf
Cлужба authorization используется не только на экране входа в MacOS. Системные диалоги авторизации c паролем так же будут требовать подтверждения вторым фактором.
Проверка
Войдите в операционную систему под пользователем, которому настроили второй фактор.
Если у пользователя настроено подтверждение с пушем, Мультифактор пришлёт пуш выбранным методом, а компонент будет ожидать подтверждения или отказа от пользователя;
Если у пользователя настроено подтверждение звонком, Мультифактор совершит звонок на номер пользователя (для подтверждения необходимо ответить и нажать #), а компонент будет ожидать подтверждения или отказа от пользователя;
Если что-то не работает
Последовательно проверьте, что вы ничего не упустили:
- С рабочей станции открыт доступ по UDP порту 1812 на адрес radius.multifactor.ru или ваш локальный Radius адаптер;
- Параметры NAS Identifier и Shared Secret указаны корректно;
- Пользователю настроен хотя бы один второй фактор;
- Проверьте журналы Radius адаптера;
- Проверьте журнал "Запросы доступа" в Личном кабинете Мультифактора;
- Если вы размещаете pam модуль в системной директории защищенной SIP, отключите SIP перед копированием модуля;
- Отключить проверку второго фактора в /etc/pam.d/authorization и /etc/pam.d/screensaver можно при загрузке из раздела восстановления из терминала.
Если ничего не сработало, обращайтесь, поможем.