...
Оглавление
Стенд:
...
- Сервер — Astra Linux Smolensk SE 1.6, Update 2, Bulletin 20190222SE16;
- Клиент — Astra Linux Smolensk SE 1.6, Update 2, Bulletin 20190222SE16;
- JaCarta PKI;
Информация | ||
---|---|---|
| ||
|
Предполагается, что Astra Linux Directory (ALD) уже развернут, существует минимум один доменный пользователь, который может пройти аутентификацию по паролю, время клиента и сервера совпадают (ntp).
Терминология Kerberos
- Билет (ticket) – временные данные, выдаваемые клиенту для аутентификации на сервере, на котором располагается необходимая служба.
- Клиент (client) – некая сущность в сети (пользователь, хост или сервис), которая может получить билет от Kerberos.
- Центр выдачи ключей (key distribution center, KDC) – сервис, выдающий билеты Kerberos.
- Область (realm) – сеть, используемая Kerberos, состоящая из серверов KDC и множества клиентов. Имя realm регистрозависимо, обычно пишется в верхнем регистре и совпадает с именем домена.
- Принципал (principal) – уникальное имя для клиента, для которого разрешается аутентификация в Kerberos. Записывается в виде root[/instance]@REALM.
Установка драйверов на сервер и клиент
...
Для обеспечения работы со смарт-картой JaCarta на клиенте и сервере установите следующие пакеты: libccid, pcscd, libpcsclite1, opensc.
...
Блок кода |
---|
user ~$ $ sudo dpkg -i название_загруженного_пакета.deb |
Установка и настройка центра сертификации на сервере
...
Для работы модуля pkinit нам придется воспользоваться OpenSSL в качестве УЦ(CA), чтобы создать ключевые пары и сертификаты клиента и сервера.
...
Примечание |
---|
В Common name указать имя домена. В случае нашего примера: SMARTCARD.ALD |
3) Создайте ключ и сертификат KDC:
...
Блок кода |
---|
systemctl restart krb5-admin-server systemctl restart krb5-kdc |
Подготовка смарт-карты. Выпуск ключей и сертификата пользователя
...
Подключите устройство, которое следует подготовить.
...
Предупреждение |
---|
В зависимости от модели токена (PKI / GOST), в дальнейшем требуется указывать определенную библиотеку ( libjcPKCS11-2.so или libASEP11.so) |
Проверка работы JaCarta в системе
...
Для проверки работы JaCarta:
Блок кода |
---|
user ~$ libjcPKCS11-2.so (для JaCarta PKI/ГОСТ/FLASH): $ pkcs11-tool --module /usr/lib/libjcPKCS11-2.so -T libASEP11.so (для JaCarta PKI) $ pkcs11-tool --module /usr/lib/x64-athena/libASEP11.so -T |
Примечание |
---|
путь до библиотеки libjcPKCS11-2.so, libASEP11.so может различаться. Для того чтобы определить путь до библиотеки libjcPKCS11-2.so введите команду: |
Инициализация устройства
...
Для инициализации токена необходимо воспользоваться утилитой pkcs11-tool.
...
Информация |
---|
--slot 0x1ffff — указывает в какой виртуальный слот подключено устройство. Как правило, это слот 0, но могут быть и другие значения – 1,2 и т.д. --init-token – команда инициализации токена. --pin - пин код пользователя JaCarta. По умолчанию имеет значение 11111111 --so-pin 00000000 – ПИН код администратора JaCarta PKI. По умолчанию имеет значение 00000000 --label 'JaCarta PKI' - метка(название) устройства. --module - указывает путь до библиотеки libjcPKCS11-2.so |
Предупреждение |
---|
Внимание! Инициализация устройства удалит все данные на JaCarta PKI без возможности восстановления. |
Генерация пары ключей на JaCarta
...
Сгенерируйте ключи на устройстве, для этого введите следующую команду:
...
Примечание |
---|
-keypairgen --key-type rsa:2048 — указывает, что должны быть сгенерированы RSA ключи длиной 2048 бит; |
Генерация запроса на сертификат
...
Сгенерируйте запрос на сертификат с помощью утилиты openssl. Для этого введите следующие команды:
...
Примечание |
---|
В случае если openssl выдаст ошибку о неверном слоте, № слота следует укзать в 10-м формате, например: 131071:33 |
Выпуск сертификата для пользователя
...
Необходимо установить переменные окружения:
...
Примечание |
---|
--write-object ./client.cer— указывает, что необходимо записать объект и путь до него; |
Настройка клиента. Проверка работоспособности
...
Создайте на клиенте каталог /etc/krb5/. Скопируйте в /etc/krb5/ сертификат CA (cacert.pem) c сервера.
...
Примечание |
---|
Для debugga, перед командой kinit следует ввести: env KRB5_TRACE=/dev/stdout kinit test1 (или другое имя пользователя) |
Вход выполняется с подключенным токеном к компьютеру. При графическом входе в поле Login вводится имя пользователя, в поле Password вводится <PIN пользователя>. При консольном входе все аналогично, только в момент ввода пароля будет сообщено, что требуется <PIN пользователя>.
Блок кода |
---|
$ login test1 |
Настройка политики аутентификации
...
Существует возможность указания дополнительных параметров модуля аутентификации pam_krb5.so в файле /etc/pam.d/common-auth в строке относящейся к pam_krb5.so:
– try_pkinit — режим при котором осуществляется попытка аутентификации с помощью устройств PKCS-11, в случае провала попытки предоставляется возможность входа с помощью Kerberos пароля пользователя;
...
Примечание |
---|
После обновления pam-auth-update, опции pkinit исчезнут. Для того, чтобы опция сохранялась принудительно, в конфигурационном файле /usr/share/pam-configs/krb5 в поле Auth-Initial следует дописать одну из опций. |
Более подробное описание см. в руководстве man.
Полезные ссылки
...
...