Перейти к основному содержимому

Настройка двухфакторной аутентификации при входе в 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.

Важно
Установите пароль прошивки устройства, чтобы исключить возможность неавторизованного доступа к разделу восстановления Recovery OS. Пароль запрашивается при попытке смены загрузочного диска.

Настройка Мультифактора

  1. Зайдите в Административную панель Мультифактора, в разделе "Ресурсы" создайте ресурс типа "Сервер" - "Linux сервер";
  2. Заполните "Название", "Адрес" и "Язык" по вашему усмотрению. Установите переключатель в "Запретить доступ" в разделе "При подключении без настроенного второго фактора";
  3. После создания вам будут доступны два параметра: NAS Identifier и Shared Secret, они потребуются для последующих шагов;
  4. (Опционально) Установите и настройте 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

где:

Сохраните и закройте файл (:x).

Далее таким же методом отредактируйте и сохраните файл 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
Важно

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 можно при загрузке из раздела восстановления из терминала.

Если ничего не сработало, обращайтесь, поможем.