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

  • сценарий аутентификации astra-802-1x;
  • инструмент деаутентификации astra-802-1x_logoff;

  • конфигурационный файл /usr/share/pam-configs/astra-802-1x для PAM-стека;
  • конфигурационный файл /etc/astra-802-1x/astra-802-1x.cfg для astra-802-1x и astra-802-1x_logoff.

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

По состоянию на 2024.01.18 (версия репозитория 1.7.5.novatek0):

  • Набор инструментов astra-802-1x оформлен в виде стандартного пакета Debian astra-802-1x. В зависимостях пакета указаны версии иных доработанных пакетов.
  • Пакет astra-802-1х и иные пакеты, доработанные для 2ФА, оформлены в виде стандартного репозитория. Репозиторий не подписан.

Для установки репозиторий может быть скопирован на локальный диск, например, в каталог /srv/repo. Указание репозитория в источниках пакетов:

deb [trusted=yes] file:///srv/repo      1.7_x86-64 main contrib non-free

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

  1. Ввести компьютер в домен.
  2. Подготовить репозиторий и указать его в источниках пакетов.
  3. Обновить списки пакетов:

    sudo apt update


  4. Обновить ранее установленные пакеты:

    sudo apt dist-upgrade


  5. Установить пакет astra-802-1x:

    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.

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

  • подразумевается, что сетевые интерфейсы управляются службой Network Manager;
  • для поиска ключевых носителей интерфейсные библиотеки /usr/lib/libjcPKCS11-2.so (Аладдин) и /usr/lib/librtpkcs11ecp.so (Рутокен);
  • используется первый найденный ключевой носитель;
  • предполагается, что на найденном носителе имеется только одна ключевая пара;
  • ключевые носители, имеющие ненулевое количество неудачных вводов PIN-кода, игнорируются для предотвращения их окончательной блокировки;
  • PIN-код ключевого носителя (пароль пользователя) передается через стандартный ввод (см. man pam_exec);
  • имя пользователя передается через переменную окружения PAM_USER (см. man pam_exec);
  • PIN-код ключевого носителя (пароль пользователя) сохраняется в конфигурационном файле Network Manager (/etc/NetworkManager/system-connectons/<имя_сетевого_соединения>) и защищен от несанкционированного доступа дискреционными правами доступа.

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

  • con=eth0 – сетевой интерфейс.
  • tls=true — использовать аутентификацию TLS. В качестве аутентификационных данных используется ключевая пара на ключевом носителе. При этом предполагается, что сценарий получил через механизмы PAM-стека в качестве кода доступа PIN-код ключевого носителя.
  • peap=true — использовать аутентификацию PEAP (имя пользователя и пароль). При этом предполагается, что через механизмы PAM-стека в качестве кода доступа получен пароль пользователя.
    Если включены одновременно типы аутентификации TLS и PEAP, то:
    • выполняется попытка найти данные для аутентификации по протоколу TLS;
      • если аутентификационные данные TLS найдены, то выполняется попытка аутентификации TLS с использованием кода доступа как PIN-кода. Результат аутентификации не проверяется;
    • если аутентификационные данные TLS не найдены - то предполагается, что получен пароль пользователя, и используется механизм аутентификации PEAP.
  • debug=true — включить отладку (запись трассировки в журнал /var/log/syslog).
  • url="model=Rutoken%20ECP" – URL для фильтрации записей на ключевом носителе при поиске сертификатов.
  • ca_cert="/etc/sssd/pki/sssd_auth_ca_db.pem" — сертификат удостоверяющего центра для проверки подлинности аутентифицирующей стороны. Необязателен. 

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

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

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

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

Конфигурационный файл: не используется.

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

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

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

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

LockerInCallback=
LockerOutCallback=


echo "LockerInCallback=/usr/bin/astra-802-1x_logoff" | sudo tee -a /home/i.ivanov@windom2016.ru/.fly/theme/{default,current}.themerc


При использовании режима киоска выполнение сценария обратного вызова необходимо явно разрешить.