Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Оглавление

Информация
titleДанная статья применима к:

Состав пакета astra-802-1x

  • /usr/sbin/astra-802-1x — инструмент аутентификации astra-802-1x;
  • /usr/bin/astra-802-1x_logoff — инструмент деаутентификации astra-802-1x_logoff;

  • конфигурационный файл /usr/share/pam-configs/astra-802-1x для настройки PAM-стека;
  • конфигурационный файл /etc/astra-802-1x/astra-802-1x.cfg для настройки инструментов;
  • файл настройки прав sudo /etc/sudoers.d/astra-802-1x;
  • сценарий деаутентификации при выходе их графической пользовательской сессии /etc/X11/Xreset.d/00-astra-802-1x_logoff;
  • файл настройки прав доступа к сетевым устройствам /var/lib/polkit-1/localauthority/10-vendor.d/astra-802-1x.pkla.

Установка инструментов

Для установки инструментов:

  1. Ввести компьютер в домен c использованием SSSD. Работа с компьютерами, использующими winbind не гарантируется.
  2. Обновить списки пакетов:

    Command
    sudo apt update
  3. Установить пакет astra-802-1x:

    Command
    sudo apt install astra-802-1x

    Пакеты csp-monitor и gnutls-bin установятся автоматически по зависимостям.

Особенности установки пакета astra-802-1x

Набор инструментов оформлен в виде стандартного пакета Debian.

При установке пакета выполняются следующие действия:

  • в PAM-стек добавляется вызов сценария аутентификации (файл /etc/pam.d/common-auth, секция Additional);
  • в файлы /usr/share/fly-wm/theme/default.themerc и /home/*/.fly/theme/default.themerc при условии, что обратные вызовы не задействованы, добавляются обратные вызовы деаутентификации по включению блокировки экрана.

При удалении пакета выполняются обратные действия.

Сценарий аутентификации astra-802-1x

Назначение: сценарий аутентификации 802.1х для использования в PAM-стеке.

Исполняемый фал: /usr/sbin/astra-802-1x.

Конфигурационный файл: /etc/astra-802-1x/astra-802-1x.cfg.

Особенности и ограничения:

  • Подразумевается, что компьютер введен в домен с использованием sssd. Работа с недоменными компьютерами, недоменными пользователями не поддерживается. Работа с компьютерами, введенными в домен с использованием winbind не поддерживается.
  • Для использования инструментов непривилегированным пользователем этот пользователь должен входить в группу "802.1x users" (используется по умолчанию для доменов Windows AD).
  • Подразумевается, что двухфакторная аутентификация (2ФА) по ключевым носителям настраивается отдельно. Пакет обеспечивает только расширение функциональности настроенной 2ФА.
  • Подразумеваетсяподразумевается, что сетевые интерфейсы:
    • управляются службой Network Manager;
    • настроены на автоматическое получение IP-адреса при включении:

      Command
      Titlenmcli -f connection.autoconnect con show Проводное\ соединение\ 1 
      connection.autoconnect:                 да
  • Для для поиска ключевых носителей используются интерфейсные библиотеки /usr/lib/libjcPKCS11-2.so (Аладдин) и /usr/lib/librtpkcs11ecp.so (Рутокен);. Если библиотека не установлена - она игнорируется.
  • Используется используется первый найденный ключевой носитель;.
  • предполагаетсяПредполагается, что на найденном носителе имеется только одна ключевая пара ;(ключ и соответствующий сертификат).
  • Если включена опция check_pin, то ключевые носители проверяются, имеющие ненулевое количество неудачных вводов PIN-кода, игнорируются для предотвращения их окончательной блокировки;.
  • PIN-код ключевого носителя (пароль пользователя) передается через стандартный ввод (см. man pam_exec);.
  • имя Имя пользователя передается через переменную окружения PAM_USER (см. man pam_exec);.
  • PIN-код ключевого носителя (пароль пользователя) сохраняется в конфигурационном файле Network Manager (/etc/NetworkManager/system-connectons/<имя_сетевого_соединения>) и защищен от несанкционированного доступа дискреционными правами доступа.
  • Ограничения для версий до 0.1.6 включительно:
    • имя машины (hostname) должно содержать доменную часть;
    • имя сетевого подключения Network Manаger должно совпадать с именем сетевого устройства и не содержать пробелов;
    • при выходе из консольной сессии деаутентификация сетевого соединения не поддерживается;
    • для автоматической аутентификации 802-1x при разблокировке сессии пользователь должен входить в группу netdev.
  • Для выполнения программ входящих в пакет пользователям должно быть предоставлено право управления сетевыми соединениями. Для этого используется механизм sudoers.
  • Не поддерживаются следующие параметры соединения:
    • 802-1x.domain-suffix-match;
    • 802-1x.subject-match;
    • 802-1x.altsubject-matches.

Синтаксис конфигурационного файла — bash source. Комментарии не поддерживаются. Значения всех параметров должны быть заключены в одинарные кавычки. Поддерживаемые переменные (указаны значения по умолчанию, если они есть):

  • con=eth0 – сетевой интерфейс'<имя_подключения>' — имя подключения Network Manager. При пакета пытается найти это имя и указать в файле.
  • tls='true' — использовать аутентификацию TLS. В качестве аутентификационных данных используется ключевая пара на ключевом носителе. При этом предполагается, что сценарий получил через механизмы PAM-стека в качестве кода доступа PIN-код ключевого носителя.
  • peap='true' — использовать аутентификацию PEAP (имя пользователя и пароль). При этом предполагается, что через механизмы PAM-стека в качестве кода доступа получен пароль пользователя.
    Если включены одновременно типы аутентификации TLS и PEAP, то:
    • выполняется попытка найти данные для аутентификации по протоколу TLS;
      • если аутентификационные данные TLS найдены, то выполняется попытка
      аутентифкации
      • аутентификации TLS с использованием кода доступа как PIN-
      кодом ключевого носителя
      • кода. Результат аутентификации не проверяется;
    • если аутентификационные данные TLS не найдены - то предполагается, что получен пароль пользователя, и используется механизм аутентификации PEAP.
  • debug=yes 'true' — включить отладку (запись трассировки в журнал /var/log/syslog).
  • url="model=Rutoken%20ECP" '<URL>' – URL для фильтрации записей на ключевом носителе при поиске сертификатов. Если не задан - ищется первый сертификат. В соответствии с синтаксисом PKCS#11 URL должен начинаться с префикса "pkcs11:". При этом часть после префикса не может быть пустой. Дополнительно можно использовать параметр $USER для подстановки имени пользователя. Например:
    • url='pkcs11:model=PRO' – искать данные только на ключевых носителях модели Аладдин JaCarta PRO.
    • url='pkcs11:token=$USER' — искать данные только на ключевых носителях, метка которых совпадает именем пользователя. 
  • ca_cert="'/etc/sssd/pki/sssd_auth_ca_db.pem" ' — сертификат удостоверяющего центра для проверки подлинности аутентифицирующей стороны. Необязателен.
  • domain='<имя_удостоверяющего_центра>' — необязательное имя (CN) удостоверяющего центра. Несмотря на название не всегда является именем домена.
    Начиная с версии 0.4.7 по умолчанию пусто и не проверяется.
    Для более ранних версий: если не задано, то берется имя домена из имени хоста. Если в имени хоста нет доменной составляющей, то берется из имени пользователя. Если в имени пользователя нет доменной составляющей, то не используется.
    При выборе значения этого поля следует помнить, что имя удостоверяющего центра зависит от его типа, например:
    • при работе с удостоверяющим центром Freeradius Astra Linux Special Edition в качестве CN используется имя вида: /C=RU/ST=Radius/O=RBTA/CN=example.local/emailAddress=admin@example.local;
    • при работе с Radius Windows AD в качестве CN используется имя удостоверяющего центра Wndows AD: /DC=dotx/DC=test/CN=test-AD-DC-CA;
  • check_pin='false' — возможность дополнительной проверки содержимого токена. Значение true рекомендуется использовать для отладки. Замедляет общий ход выполнения. 
  • hard_off='...' — выбор способа деаутентификации 802.1х. По умолчанию (если параметр не задан) для виртуальных сред используется программная деаутентификация, для физических — более быстрая аппаратная. Значения true/false включают аппаратную/программную деаутентификацию независимо от платформы;
  • lock_break='false' — начиная с версии 0.4.12+c11 — управление автоматической деаутентификацией 802.1х при включении блокировки экрана. По умолчанию автоматическая деаутентификация отключена (соответствует значению параметра false). Для включения деаутентификации изменить значение параметра на true. Начиная с версии 0.4.13 при выходе из пользовательской сессии деаутентификация используется всегда независимо от значения параметра lock_break.

Вызов сценария выполняется в PAM-стеке (/etc/pam.d/common-auth) после успешной аутентификации пользователя.

Инструмент деаутентификации astra-802-1x_logoff

Назначение: принудительная деаутентификация в сети.

Исполняемый файл: /usr/bin/astra-802-1x_logoff.Конфигурационный файл: не используется.

Особенности и ограничения:

  • Подразумевается, что сетевые интерфейсы управляются службой Network Manager.
  • Имя сетевого интерфейса может быть передано как параметр вызова команды. По умолчанию используется имя eth0.Может выполняться от имени непривилегированного пользователя. Для получения необходимых привилегий используется бит suidберется из параметра con конфигурационного файла /etc/astra-802-1x/astra-802-1x.cfg или определяется автоматически.

Предполагается использование инструмента в сценариях обратного вызова (callback) при включении блокировки экрана (поддерживается в fly-wm начиная с версии 2.43.18+ci63).

Сценарий обработки обратного вызова указывается в файлах themerc параметрами:

Блок кода
LockerInCallback=
LockerOutCallback=

Пример команды для создания обратного вызова:

Command
echo "LockerInCallback=/usr/bin/astra-802-1x_logoff" | sudo tee -a /home/i.ivanov@windom2016.ru/.fly/theme/{default,current}.themerc
Информация
При использовании режима киоска выполнение сценария обратного вызова необходимо явно разрешить.