(2016-11-27 12:38:19 отредактировано nemes1s)

Локальная аутентификация в Astra Linux. PAM

Добрый день, пытаюсь разобраться с локальной аутентификацией в Астре (стоит версия 1.10 common), имеется токен Рутокен ЭЦП. Делаю все по интрукции (http://dev.rutoken.ru/pages/viewpage.ac … d=21331970), где-то пришлось потанцевать с бубном, но я смог. Подхожу к финишу, пункт 8.2

8.2 Устанавливаем библиотеку в систему
Для установки библиотеки извлеките скачанный архив pkcs11-gost.zip в домашний каталог пользователя.
Затем выполните следующий набор команд.
$ cd ~/pam-p11-gost-pkcs11-gost
$ mkdir m4
$ ./bootstrap
$ ./configure CFLAGS=-O2 --with-pamdir="/lib/x86_64-linux-gnu/security/" --enable-strict
$ make
$ sudo make install

И тут появляются проблемы, с решением которых прошу помощи:

user@Astra:~/pam-p11-gost-pkcs11-gost$ ./bootstrap
+ test -f Makefile
+ rm -rf *~ *.cache *.m4 config.guess config.log config.status config.sub depcomp ltmain.sh
+ autoreconf —verbose —install —force
./bootstrap: 10: ./bootstrap: autoreconf: not found
user@Astra:~/pam-p11-gost-pkcs11-gost$ ./configure CFLAGS=-O2 —with-pamdir="/lib/x86_64-linux-gnu/security/" —enable-strict
-bash: ./configure: No such file or directory

Собственно вопрос - что делать дальше?

Re: Локальная аутентификация в Astra Linux. PAM

Здравствуйте, nemes1s.

Выполнение команды:

user@Astra:~/pam-p11-gost-pkcs11-gost$ ./bootstrap

Было завершено с ошибкой:

./bootstrap: 10: ./bootstrap: autoreconf: not found

Которая говорит о том, что в вашей системе не установлен autoreconf, который входит в состав пакета autoconf.
Установите autoconf и попробуйте ещё раз.

Re: Локальная аутентификация в Astra Linux. PAM

Спасибо за ответ, теперь что-то заработало, но ошибок стало только больше:

user@Astra:~/pam-p11-gost-pkcs11-gost$ sudo ./bootstrap
+ test -f Makefile
+ rm -rf *~ *.cache *.m4 config.guess config.log config.status config.sub depcomp ltmain.sh
+ autoreconf —verbose —install —force
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal —force -I m4
autoreconf: configure.ac: tracing
autoreconf: configure.ac: not using Libtool
autoreconf: running: /usr/bin/autoconf —force
configure.ac:76: error: possibly undefined macro: AC_PROG_LIBTOOL
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
configure.ac:100: error: possibly undefined macro: AC_CHECK_LIB
configure.ac:104: error: possibly undefined macro: AC_MSG_ERROR
autoreconf: /usr/bin/autoconf failed with exit status: 1

Re: Локальная аутентификация в Astra Linux. PAM

Если макрос AC_PROG_LIBTOOL не определен, значит у вас нет libtool.
Установите libtool, входящий в состав одноименного пакета.

Спасибо за замечания. Обновим инструкцию с учётом проблем с которыми вы столкнулись.

Re: Локальная аутентификация в Astra Linux. PAM

Установил, одна ошибка ушла, идем дальше:

user@Astra:~/pam-p11-gost-pkcs11-gost$ sudo ./bootstrap
+ test -f Makefile
+ rm -rf *~ autom4te.cache aclocal.m4 config.guess config.log config.status config.sub depcomp ltmain.sh
+ autoreconf —verbose —install —force
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal —force -I m4
autoreconf: configure.ac: tracing
autoreconf: running: libtoolize —copy —force
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `.'.
libtoolize: copying file `./ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'.
libtoolize: copying file `m4/libtool.m4'
libtoolize: copying file `m4/ltoptions.m4'
libtoolize: copying file `m4/ltsugar.m4'
libtoolize: copying file `m4/ltversion.m4'
libtoolize: copying file `m4/lt~obsolete.m4'
libtoolize: Remember to add `LT_INIT' to configure.ac.
autoreconf: running: /usr/bin/autoconf —force
configure.ac:100: error: possibly undefined macro: AC_CHECK_LIB
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
configure.ac:104: error: possibly undefined macro: AC_MSG_ERROR
autoreconf: /usr/bin/autoconf failed with exit status: 1

Re: Локальная аутентификация в Astra Linux. PAM

Похоже инструкция сильно устарела.
Вам надо установить пакеты pkg-config, libssl-dev и libpam0g-dev.
После этого команды bootstrap и configure должны выполниться успешно.

После этого вам необходимо скачать RutokenSDK с нашего сайта https://www.rutoken.ru/developers/sdk/

Распакуйте SDK.
Создайте папку /usr/include/pkcs11
Скопируйте в папку /usr/include/pkcs11 содержание папки SDK/Samples/rtPKCS11/Include

После этого выполняйте make и следуйте дальше по инструкции. Если будут еще какие-то проблемы - пишите.

Re: Локальная аутентификация в Astra Linux. PAM

Добрый день, установил пакеты и sdk из обновленной инструкции, ./bootstrap сработал нормально, на следующей команде было куча проверок, где-то результат был да, где-то нет, на мейк было несколько ошибок, зашел на эту тему, здесь инструкции по установке sdk отличается от того что написано (http://dev.rutoken.ru/pages/viewpage.ac … d=21331970). Там я папку Include скопировал в /usr/include/pkcs11, а не ее содержимое. Решил попробовать как тут написано, скопировал именно содержимое папки а не саму папку в /usr/include/pkcs11 и повторить шаги, а именно:
1. Удалил папку ~/pam-p11-gost-pkcs11-gost
2. Скопировал эту же папку чистую (из архива)
3. Пошел по пунктам 8.3 до ./bootstrap
В результате было:

user@astra:~/pam-p11-gost-pkcs11-gost$ ./bootstrap
bash: ./bootstrap: Отказано в доступе
user@astra:~/pam-p11-gost-pkcs11-gost$ sudo ./bootstrap
sudo: ./bootstrap: command not found

Подумал что уже изначально неправильно сделал и все испортил, снес виртуалку, поставил новую, пошел по тем же самым шагам, только SDK установил как Вы написали в форуме и на команде ./bootstrap сразу же таже самая ошибка:

user@astra:~/pam-p11-gost-pkcs11-gost$ ./bootstrap
bash: ./bootstrap: Отказано в доступе
user@astra:~/pam-p11-gost-pkcs11-gost$ sudo ./bootstrap
sudo: ./bootstrap: command not found

Re: Локальная аутентификация в Astra Linux. PAM

Давайте разбираться.
1. Дам Вам один маленький совет, если Вы тестируете работу на виртуальной машине, то просто делайте снимки состояний. Это позволит Вам быстро и удобно откатить состояние после экспериментов, вместо того, чтобы переустанавливать ОС целиком.
2. Инструкции по установке SDK идентичны. Выполнение команды:

sudo cp ~/SDK/Samples/rtPKCS11/Include /usr/include/pkcs11

приводит к созданию папки /usr/include/pkcs11 и копированию содержимого ~/SDK/Samples/rtPKCS11/Include в эту папку. В результате в папке /usr/include/pkcs11 должны находится несколько файлов с расширением *.h
3. Давайте разбираться с bootstap. После переустановки Вы скачивали архив с pam-p11-gost-pkcs11-gost заново или используете ранее распакованную на предыдущей ОС? Предлагаю попробовать перекачать и распаковать заново на новой ОС.
4. Если это не поможет, то покажите вывод $ ls -al ./bootstrap

Re: Локальная аутентификация в Astra Linux. PAM

Качал заного. Опять удалил, опять скачал, распаковал и теперь ./bootstrap сработал.
Дальше шел по инструкциям и все заработало! Большое спасибо!
P.S. Спасибо за совет про снимки состояний.
P.P.S. В инструкцию можно добавить в самое начало еще пакет pcscd, нашел который в https://www.rutoken.ru/manual/RutokenHowToUse.pdf, без него токен не определялся на 3 пункте инструкции по аутентификации

Re: Локальная аутентификация в Astra Linux. PAM

Кстати вопрос еще один, если вытаскиваю токен, то возможна аутентификацию просто по паролю. Как можно запретить этот тип аутентификации и оставить только возможность входить в аккаунт с токеном?

Re: Локальная аутентификация в Astra Linux. PAM

Спасибо за замечания к инстуркциям, обновим в ближайшее время.

Возможность сделать аутентификацию только по токенам существует. При тестировании такого функционала рекомендуем делать бекапы или снимки состояний в случае виртуальных машин, так как при ошибках с ключами или сертификатами вы уже никак не сможете войти в систему. Для включения такого режима в файле /usr/share/pam-configs/p11 замените Auth: sufficient ..... на Auth: required .....

Re: Локальная аутентификация в Astra Linux. PAM

И снова здравствуйте, слудующий метод, описанный в статье "Разработка и применение модуля PAM для аутентификации в Astra Linux с использованием Рутокен ЭЦП и Рутокен S" будет корректнее работать:

Если вы хотите отключить аутентификацию по паролям, то можно отключить Unix authentication. Поскольку в конфигурационном файле профиля было указано, что модуль будет «sufficient», то при получении от нашего модуля ответа «PAM_SUCCESS» весь процесс аутентификации будет считаться успешным.

Кстати говоря, интересно стало, возможно ли сделать так, чтоб при отключении токена от компьютера сеанс автоматически закрывался?

Re: Локальная аутентификация в Astra Linux. PAM

Здравствуйте, nemes1s.

Автоматическая блокировка сеанса при извлечении токена может быть настроена с помощью pkcs11_evenmgr (см. https://linux.die.net/man/1/pkcs11_eventmgr). К сожалению, готовой инструкции по настройке такой блокировки под разные ОС пока нет.
Пример конфигурации pkcs11_eventmgr можно посмотреть тут - https://github.com/OpenSC/pam_pkcs11/bl … nf.example

Для запуска экрана блокировки в Astra необходимо использовать комнаду: fly-wmfunc FLYWM_LOCK

(2016-11-29 07:33:17 отредактировано nemes1s)

Re: Локальная аутентификация в Astra Linux. PAM

Спасибо за ответ, буду разбираться!

Update: Разобрался, если интересно могу привести пример настройки.

Re: Локальная аутентификация в Astra Linux. PAM

nemes1s пишет:

Спасибо за ответ, буду разбираться!

Update: Разобрался, если интересно могу привести пример настройки.

да, конечно, очень интересно