Оглавление
-
-
-
-
-
- Настройка 2fa для входа в Astra Linux
- Настройка 1fa для входа в Astra Linux
-
Предварительные требования
- Машина с OC Astra в домене.
- Настройка в данной инструкции выполнялась на Astra Linux 1.7.
- Настроенные компоненты Индид: Сервер и NPS Radius Extension.
- Для использования аутентификации с помощью Push также требуется и Indeed Key сервер.
3. Выполнена установка и настройка роли Служба политики сети и доступа (Network Policy and Access Services (NPS)), возможна установка роли на сервере Indeed AM. Создана сетевая политика, политика запросов на подключение, определен метод аутентификации по умолчанию. Можно указать подсеть (ip/24) для диапазона клиентов Radius (Linux ПК)
Подключение репозитория Debian
- Выполните обновление списков пакетов: sudo apt update
- На текущий момент Astra Linux не имеет собственного пакета PAM(Pluggable Authentication Modules), поэтому необходимо подключить репозиторий Debian. Подключение репозиториев - это нормальная практика, рекомендуемая в официальной документации Astra: ссылка.
- Для подключения репозитория необходимо первоначально сконфигурировать ключи, чтобы была возможность выгрузить пакеты. Это можно сделать 2-мя способами:
Автоматически, с установкой пакета debian-archive-keyring
- Установите пакет dirmngr для управления ключами и пакет debian-archive-keyring, содержащий ключи к репозиториям Debian: sudo apt install debian-archive-keyring dirmngr
- Если возникает ошибка “Пакет debian-archive-keyring недоступен, но упомянут в списке зависимостей другого пакета. Это может значит, что пакет отсутствует, устарел или доступен из источников, не упомянутых в sources.list” следующего вида или аналогичная, необходимо добавить репозитории debian в файл с зависимостями. Для этого выполните команды:
- Добавим ссылку о репозитории Debian: echo deb https://archive.debian.org/debian/ stretch main contrib non-free | sudo tee -a /etc/apt/sources.list
- После добавления обновите пакеты командой: sudo apt update
- При возникновении ошибки: “Следующие подписи не могут быть проверены, так как недоступен открытый ключ: NO_PUBKEY 04EE7237B7D453EC NO_PUBKEY 648ACFD622F3D138 NO_PUBKEY 0E98404D386FA1D9 NO_PUBKEY EF0F382A1A7B6500” перейти к ручной настройке.
В ручном режиме, с конфигурацией ключей
- Установить пакет dirmngr (если он ранее не был установлен): sudo apt install dirmngr
- Для получения ключа выполните: sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com EF0F382A1A7B6500
- При наличии доступа к сети Интернет использовать команду apt-key с указанием нужного отпечатка ключа. На текущий момент ключ: EF0F382A1A7B6500. Ключ может измениться, тогда при обновлении пакетов “apt update” будет ошибка, где можно посмотреть какой ключ требуется
- Для работы в закрытой сети можно получить ключ через WEB-интерфейс на подключенной к Интернет машине по адресу репозитория (keyserver.ubuntu.com), указав в поле поиска код ключа в виде 0xE1F958385BFE2B6E (т.е. с лидирующими символами 0x и без лидирующих и завершающих пробелов), открыть ключ в WEB-браузере, копировать и сохранить в текстовом файле на локальной машине. Сохраненный ключ перенести на нужную машину и импортировать командой: sudo apt-key add <имя_файла_с_ключом>
- После подключения репозитория обновите пакеты: sudo apt update
Установка и настройка модуля PAM
- После успешного подключения репозитория Debian выполните установку пакета “libpam-radius-auth”: sudo apt install libpam-radius-auth
- Настройте подключение к Radius серверу. Откройте и отредактируйте файл, где задается подключение к Radius серверу: sudo nano /etc/pam_radius_auth.conf
- Укажите в файле IP адрес сервера, общий секрет и таймаут. Пример настройки: 192.168.1.2 Q1q2E3e4 60
- В целях безопасности настройте права на чтение и запись только для пользователя и группы root.
sudo chown root /etc/pam_radius_auth.conf
sudo chmod 600 /etc/pam_radius_auth.conf
- Включите аутентификацию через модуль PAM для требуемых сценариев.
Включение PAM в SSH
В сценарии SSH поддерживаются все методы аутентификации, которые поддерживает Indeed AM NPS Extension. Также можно настроить цепочку аутентификации с OTP таким образом, чтобы запрос OTP был первым.
Настройка 2fa в SSH
- Откройте для редактирования файл с настройками SSH: sudo nano /etc/ssh/sshd_config
- В файле включите следующие настройки:
AuthenticationMethods keyboard-interactive:pam
ChallengeResponseAuthentication yes
UsePAM yes
- Откройте для редактирования файл с настройкой SSH для модуля PAM: sudo nano /etc/pam.d/sshd
- Для включения 2FA достаточно добавить с требованием использования модуля PAM и отключением аутентификации по умолчанию:
#@include common-auth
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 astra-admin
auth [success=ok default=ignore] pam_localuser.so
auth [success=1 default=ignore] pam_unix.so nullok_secure try_first_pass
auth required pam_radius_auth.so conf=/etc/pam_radius_auth.conf
-
-
-
- В первой строке задается правило - если пользователь не состоит в группе “astra-admin”, то 2 правила после будут пропущены.
- Если пользователь состоит в группе, то будут использоваться модули для локальной аутентификации.
- Более подробно про настройку правил по ссылке.
- Сохраните изменения в файле.
- Перезапустите службы sshd и ssh.
sudo systemctl restart sshd
sudo systemctl restart ssh
Проверьте подключение по SSH. В данном примере настроена аутентификация с использованием Telegram OTP. Для модуля NPS Extension обязательно нужно настроить политику “Challenge\Response: сообщение пользователю”.
Настройка цепочки OTP + пароль и 1FA
- Откройте файл с настройками SSH для PAM: sudo nano /etc/pam.d/sshd
- В строке подключения модуля PAM добавьте параметр “skip_passwd”. Данный параметр отключает отправку доменного пароля на NPS сервер.
auth required pam_radius_auth.so skip_passwd conf=/etc/pam_radius_auth.conf
-
- Рекомендуется добавить параметр “client_id” с произвольным значением, что поможет настроить политику запросов на подключение на стороне NPS. Например, client_id=IndeedPamModule.
auth required pam_radius_auth.so skip_passwd client_id=IndeedPamModule
- После строки подключения модуля добавьте строку подключения модуля базовой аутентификации:
@include common-auth
- При такой настройке будет отрабатывать логика: ОТП + Пароль.
- Если требуется 1FA аутентификация, то подключать модуль не требуется.
- Перезапустите службы sshd и ssh.
sudo systemctl restart sshd
sudo systemctl restart ssh
- Настройте политику запросов на подключение на стороне NPS и отключите проверку пароля на стороне NPS.
-
- Если используется параметр “client_id” то можно задать соответствующие условие в политике
- Проверьте работу модуля.
Включение PAM для локального входа
Настройка 2fa для входа в Astra Linux
В Astra не поддерживается отображение окна для ввода OTP при локальном входе. Поэтому аутентификация, которая требует в качестве второго фактора ввод ОТП - технически невозможна. В данном сценарии можно использовать аутентификацию с использованием Push.
-
- Откройте для редактирования файл с настройкой локального входа для модуля PAM:
sudo nano /etc/pam.d/fly-dm
- Добавьте настройки подключения с использованием PAM и исключение для группы “astra-admin”.
auth [success=2 default=ignore] pam_succeed_if.so user notingroup astra-admin
auth [success=ok default=ignore] pam_localuser.so
auth [success=1 default=ignore] pam_unix.so nullok_secure try_first_pass
auth required pam_radius_auth.so conf=/etc/pam_radius_auth.conf
-
- Проверьте работу модуля.
- При вводе данных доменного пользователя подключение будет ожидать подтверждение пуша пользователя.После подтверждения вход будет выполнен успешно.
Настройка 1fa для входа в Astra Linux
Данная настройка актуальна от версии Indeed AM 8.2.2 и выше. В Astra Linux можно заменить ввод доменного пароля на одноразовый код.
-
- Откройте для редактирования файл с настройкой локального входа для модуля PAM:
sudo nano /etc/pam.d/fly-dm .
- Закомментируйте строку
@include common auth .
- Под строкой
@include common-password добавьте настройки подключения с использованием PAM и исключение для группы “astra-admin”:
auth [success=2 default=ignore] pam_succeed_if.so user notingroup astra-admin
auth [success=ok default=ignore] pam_localuser.so
auth [success=1 default=ignore] pam_unix.so nullok_secure try_first_pass
auth required pam_radius_auth.so conf=/etc/pam_radius_auth.conf
- Перезапустите службы sshd и ssh:
sudo systemctl restart sshd
sudo systemctl restart ssh
- На сервере NPS, в оснастке "Сервер сетевых политик" отключите проверку учётных данных пользователей.
- В MC консоли, в соответствующей политике, в RADIUS приложении выберите нужный метод аутентификации (Программный генератор TOTP).
Включение PAM для RDP подключения
В данной инструкции используется модуль xrdp для RDP подключения. Данный модуль не поддерживает отображение окна для ввода OTP, поэтому использование методов аутентификации с вводом ОТП технически невозможно. В данном сценарии возможно использование только Push.
- Откройте для редактирования файл с настройкой xrdp для модуля PAM:
sudo nano /etc/pam.d/xrdp-sesman
- Добавьте настройки подключения с использованием PAM и исключение для группы “astra-admin”.
auth [success=2 default=ignore] pam_succeed_if.so user notingroup astra-admin
auth [success=ok default=ignore] pam_localuser.so
auth [success=1 default=ignore] pam_unix.so nullok_secure try_first_pass
auth required pam_radius_auth.so conf=/etc/pam_radius_auth.conf
- Сохраните изменения и перезапустите службу xrdp:
sudo systemctl restart xrdp
- Проверьте работу модуля
|