Содержание:
- Требования
- Установка и настройка pam_radius
- Добавление возможности использовать su- при авторизации через PAM
- Включение PAM в ssh
- Настройка 2fa в SSH
- Включение 1fa в SSH
- Включение PAM в lightdm
Требования
- Домен Active Directory.
- Машина на Alt Linux в домене.
- В данной инструкции настройка производилась на Alt Workstation 10.1
- Сервер Windows Server с ролью NPS.
- Настроенные компоненты Indeed: Indeed AM сервер и NPS Radius Extension.
- Создана сетевая политика, политика запросов на подключение, определен метод аутентификации по-умолчанию. Можно указать подсеть (ip/24) для диапазона клиентов Radius (Linux ПК).
- Рекомендуется выдать административной учетной записи Active Directory группу wheel для возможности использовать su- и sudo.
Установка и настройка pam_radius
- Авторизуемся под административной учётной записью при помощи su-.
- Обновляем дистрибутив при помощи synaptic.
- Устанавливаем модуль pam_radius при помощи команды:
apt-get install pam_radius
- После установки модуля, открываем конфигурационный файл модуля /etc/pam_radius_auth при помощи текстового редактора.
- Задаём в файле ip-адрес сервера Radius, общий секрет и таймаут (рекомендуется использовать значение 60).
- В целях безопасности настраиваем права на чтение и запись только пользователю 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
- Откройте текстовым редактором конфигурационный файл демона ssh по пути /etc/openssh/sshd_config.
Раскомментируйте или добавьте в него следующие значения:
AuthenticationMethods keyboard-interactive:pam
ChallengeResponseAuthentication yes
UsePAM yes
- Откройте для редактирования конфигурационный файл по пути /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 правила пропускаются. Если же пользователь присутствует в группе- используются модули локальной авторизации. Более подробно про настройку правил по ссылке.*
- После изменения конфигурационных файлов- перезапустите демон sshd при помощи:
systemctl restart sshd
Проверьте подключение по ssh. В данном примере аутенфикация производилась при помощи 2fa: Windows Password+Software TOTP. Для использования данного сценария обязательно требуется включенная политика NPS Radius Extension "Challenge\Responce: сообщение пользователю".
Включение 1fa в SSH
Для включения метода авторизации по 1fa требуется:
- В конфигурационном файле
/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
- На сервере 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:
- Откройте для редактирования конфигурационный файл по пути /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
- Проверьте работу модуля.
*После ввода пароля будет доступно окно с сообщением, заданным политикой Challenge\Response на сервере NPS*
|