Настройка 2FA для Alt Linux
Автор Nikita Kim, Last modified by Nikita Kim на 25 марта 2024 02:48 PM

Содержание:

  1. Требования
  2. Установка и настройка pam_radius
  3. Добавление возможности использовать su- при авторизации через PAM
  4. Включение PAM в ssh
    1. Настройка 2fa в SSH
    2. Включение 1fa в SSH
  5. Включение PAM в lightdm

Требования

  1. Домен Active Directory.
  2. Машина на Alt Linux в домене.
    1. В данной инструкции настройка производилась на Alt Workstation 10.1
  3. Сервер Windows Server с ролью NPS.
  4. Настроенные компоненты Indeed: Indeed AM сервер и NPS Radius Extension.
  5. Создана сетевая политика, политика запросов на подключение, определен метод аутентификации по-умолчанию. Можно указать подсеть (ip/24) для диапазона клиентов Radius (Linux ПК).
  6. Рекомендуется выдать административной учетной записи Active Directory группу wheel для возможности использовать su- и sudo.

Установка и настройка pam_radius

  1. Авторизуемся под административной учётной записью при помощи su-.
  2. Обновляем дистрибутив при помощи synaptic.
  3. Устанавливаем модуль pam_radius при помощи команды:

    apt-get install pam_radius

  4. После установки модуля, открываем конфигурационный файл модуля /etc/pam_radius_auth при помощи текстового редактора.
  5. Задаём в файле ip-адрес сервера Radius, общий секрет и таймаут (рекомендуется использовать значение 60).
  6. В целях безопасности настраиваем права на чтение и запись только пользователю root при помощи:

    chown root /etc/pam_radius_auth

    chmod 600 /etc/pam_radius_auth

Добавление возможности использовать su- при авторизации через PAM

После настройки у доменных пользователей добавленных в группу wheel могут возникнуть трудности к доступу к коменде su-. Дабы предовтратить такое поведение su-, необходимо открыть конфигурационный файл, находящийся в /etc/pam.d/su, при помощи текстового редактора и расскоментировать следующие строки:

auth sufficent pam_wheel.so use_uid group=wheel trust #Данный параметр отвечает за доверие пользователям с группой wheel и отключает запрос пароля для использования команды
auth required pam_wheel.so debug use_uid group=wheel #Данный параметр требует наличия пользователя в группе wheel для авторизации в su

Также, дабы не позволять использовать привелегии su без пароля, возможно добавить пользователя в файл sudoers и использовать sudo вместо su.

Включение PAM в ssh

*ВНИМАНИЕ! Для успешной авторизации ssh с использованием PAM, потребуется получить билет Kerberos. Для получения билета возможно авторизоваться в доменную учётную запись или использовать команду kinit username@DOMAINE.NAME.*

В сценарии SSH поддерживаются все методы аутентификации, которые поддерживает Indeed AM NPS Extension.

Настройка 2fa в SSH

  1. Откройте текстовым редактором конфигурационный файл демона ssh по пути /etc/openssh/sshd_config.
    Раскомментируйте или добавьте в него следующие значения:

    AuthenticationMethods keyboard-interactive:pam
    ChallengeResponseAuthentication yes

    UsePAM yes

  2. Откройте для редактирования конфигурационный файл по пути /etc/pam.d/sshd
    Для включения 2fa достаточно будет закоментировать строки, которые отвечают за локальный вход:

    auth required pam_userpass.so
    auth include common-login-use_first_pass

    А затем добавить данную строку:

    auth required pam_radius_auth.so conf=/etc/pam_radius_auth.conf

    При данной настройки 2fa будет запрашиваться для всех пользователей, в том числе и локальных.
    Чтобы локальные пользователи могли авторизоваться в обход PAM-модуля, рекомендуется настроить исключения, например для группы. Исключения настраиваются при помощи модуля "pam_succeed_if.so".

    auth [success=2 default=ignore] pam_succeed_if.so user notingroup localadmins
    auth [success=ok default=ignore] pam_userpass.so
    auth [success=1 default=ignore] pam_unix.so nullok_secure common-login-use_first_pass
    auth required pam_radius_auth.so conf=/etc/pam_radius_auth.conf

    *Для авторизации под локальным пользователем необходимо на сервере NPS в политике запросов на подключение выключить правило проверки подлинности Windows*
    *Первая строка задаёт правило: если пользователь не состоит в группе localadmins, то следующие 2 правила пропускаются. Если же пользователь присутствует в группе- используются модули локальной авторизации. Более подробно про настройку правил по ссылке.*

  3. После изменения конфигурационных файлов- перезапустите демон sshd при помощи:

    systemctl restart sshd

    Проверьте подключение по ssh. В данном примере аутенфикация производилась при помощи 2fa: Windows Password+Software TOTP. Для использования данного сценария обязательно требуется включенная политика NPS Radius Extension "Challenge\Responce: сообщение пользователю".

Включение 1fa в SSH

Для включения метода авторизации по 1fa требуется:

  1. В конфигурационном файле /etc/pam.d/sshd к строке "auth required pam_radius_auth.so conf=/etc/pam_radius_auth.conf" добавить параметр skip_passwd:

    auth required pam_radius_auth.so skip_passwd conf=/etc/pam_radius_auth.conf
  2. На сервере NPS в политике запросов на подключение выключите правило проверки подлинности Windows.



    *При данной настройке локальные пользователи также будут получать доступ без проверки пароля. Чтобы избежать этого, удалите или заккоментируйте данные строки:

    auth [success=2 default=ignore] pam_succeed_if.so user notingroup localadmins
    auth [success=ok default=ignore] pam_userpass.so
    auth [success=1 default=ignore] pam_unix.so nullok_secure common-login-use_first_pass

    После данного изменения конфигурации- авторизация локальных учётных записей будет невозможна.*

Включение PAM в lightdm

В сценарии lightdm поддерживаются все методы аутентификации, кроме 1fa.

Настройка 2fa в lightdm:

  1. Откройте для редактирования конфигурационный файл по пути /etc/pam.d/common-login и добавьте данные строки:

    auth [success=2 default=ignore] pam_succeed_if.so user notingroup localadmins
    auth [success=ok default=ignore] pam_userpass.so
    auth [success=1 default=ignore] pam_unix.so nullok_secure common-login-use_first_pass
    auth required pam_radius_auth.so conf=/etc/pam_radius_auth.conf

  2. Проверьте работу модуля.



    *После ввода пароля будет доступно окно с сообщением, заданным политикой Challenge\Response на сервере NPS*

    (0 голос(а))
    Эта статья полезна
    Эта статья бесполезна