Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: [Howto] Авторизация в домене по смарт-карте на рабочей станции Ubuntu  (Прочитано 5875 раз)

0 Пользователей и 1 Гость просматривают эту тему.

rapidsp

  • Автор темы
  • Гость
Исходим из следующего:
  • Есть сервер сертификации (CA).
  • Есть токен или смарт-карта с сертификатом для входа.
  • Есть рабочая станция Ubuntu с установленными драйверами смарт-карты.

Далее порядок действий:



  • Установить пакет libpam_pkcs11


  • Настроим модуль pam_pkcs11:
sudo mkdir /etc/pam_pkcs11В указанном каталоге создаем файл конфигурации pam_pkcs11.conf (исправьте адреса и имя домена на свои):
pam_pkcs11 {
                nullok = true;
                debug = false;
                use_first_pass = false;
                try_first_pass = false;
                use_authtok = false;
                use_pkcs11_module = aladdin;
                pkcs11_module aladdin {
                        module = /usr/lib/libeTPkcs11.so;
                        description = "Aladdin pkcs#11 module";
                        slot_num = 0;
                        ca_dir = /etc/pam_pkcs11/cacerts;
                        crl_dir = /etc/pam_pkcs11/crls;
                        crl_policy = none;
                        }
                use_mappers = subject, ads, ms, null;
                mapper_search_path = /lib/pam_pkcs11;
                mapper subject {
                        debug = false;
                        # module = /usr/lib/pam_pkcs11/subject_mapper.so;
                        module = internal;
                        ignorecase = false;
                        mapfile = file:///etc/pam_pkcs11/subject_mapping;
                        }
                mapper null {
                        debug = false;
                        # module = /usr/lib/pam_pkcs11/null_mapper.so;
                        module = internal ;
                        # select behavior: always match, or always fail
                        default_match = false;
                        # on match, select returned user
                        default_user = nobody ;
                }
                mapper ads {
                        debug = false;
                        module = /lib/pam_pkcs11/ldap_mapper.so;
                        # where base directory resides
                        basedir = /etc/pam_pkcs11/mapdir;
                        # Здесь указываем адрес нашего контроллера домена                  
                          ldaphost = "192.168.0.1";
                        # Port on ldap server to connect
                        ldapport = 389;
                        # Scope of search: 0 = x, 1 = y, 2 = z
                        scope = 0;
                        # Указываем DN-имя пользователя, который имеет право на чтение каталога
                        binddn = "cn=Administrator,cn=Users,dc=domain,dc=ru"
                        passwd = 1234567890
                        # Searchbase for user entries
                        base = "dc=domain,dc=ru";
                        # Attribute of user entry which contains the certificate
                        attribute = "userCertificate:";
                        # Searchfilter for user entry. Must only let pass user entry for the login user.
                        #filter = "(&(cn=%s) (objectClass=inetOrgPerson))";
                        #filter = "(&(objectClass=posixAccount)(uid=%s))"
                        filter = "(msSFU30Name=%s)";
                }
                mapper ms {
                        debug = false;
                        module = internal;
                        # module = /usr/lib/pam_pkcs11/ms_mapper.so;
                        ignorecase = true;
                        ignoredomain = true;
                        domain = "domain.ru";
                }
        }


  • Настриваем корневой сертификат и список отозванных сертификатов CRL. Скачиваем эти файлы с расширениями соответственно CER и CRL с нашего сервера сертификации http://server/certsrv.
    Создаем каталоги:
sudo mkdir /etc/pam_pkcs11/cacerts
sudo mkdir /etc/pam_pkcs11/crls
Копируем файлы: cer в /etc/pam_pkcs11/cacerts, crl в /etc/pam_pkcs11/crls.
Необходимо захешировать эти файлы скриптом make_hash_link.sh. Загрузить его можно по ссылке: http://www.opensc-project.org/pam_pkcs11/export/476/releases/pam_pkcs11-0.5.2/tools/make_hash_link.sh
Делаем скрипт исполняемым: sudo chmod +x make_hash_link.shДалее последовательно заходим в каталоги /etc/pam_pkcs11/cacerts и /etc/pam_pkcs11/crls и выполняем там этот скрипт.

  • Теперь можно настраивать pam.d для входа по смарт-карте.
    Внимание! Для экспериментов и начальной отладки используйте /etc/pam.d/su.
    В начало файла /etc/pam.d/su добавьте строку
auth    sufficient   pam_pkcs11.soПодключите токен с пользовательским сертификатом.
Выполните команду:
su [имя доменного пользователя]Будет запрошен ПИН-код и осуществлен вход под данным пользователем.
Если все прошло успешно, можно добавить эту строку в gdm, kdm и т.д.

Проверено на токенах eToken, Ubuntu 10.04.1.

Основано на материалах сайтов:
https://help.ubuntu.ru/
http://www.aladdin-rd.ru/
http://etokenonlinux.org/et/
http://www.opensc-project.org/opensc

Комментарии и замечания приветствуются.
« Последнее редактирование: 14 Декабря 2010, 10:53:44 от rapidsp »

Оффлайн MindGames

  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
О! Большое спасибо! Очень долго ждал подобной статьи! :) Буду пробовать - потом отпишусь, как получится.
Сходу сразу вопросы.
Алладиновские дрова ставить надо ведь? После их установки появляется доступ к еТокен и к сертификатам на нем.
Не совсем понятны манипуляции с сертификатами в хаутушке. Для чего скачивать с сервера что-то? Разве сертификаты не находятся на самом токене и не должны браться с него? Если честно - не очень хорошо представляю себе работу еТокен. Я просто пользователь сего чуда и мне надо входить в виндовый домен с авторизацией по е-токену. В Windowsх все просто - ставишь драйвер и после перезагрузки winlogon просит ввесьи пароль или вставить еТокен. :) В Линукс же так не получается. :) После установки драйверов появляется только доступ к еТокену и можно с него подставлять сертификаты в FireFox, например, при открытии портала SharePoint, но все-равно не откроется портал, т.к. в домен не вошел. :)
Так что думаю, эта статья очень полезной окажется. Постараюсь сегодня или в понедельник проверить все на деле :)

rapidsp

  • Автор темы
  • Гость
Про драйвера писать не стал специально. Ставить конечно надо. Во-первых, убежден, что такое будет работать с любым типом смарт-карт и токенов, Во-вторых, в ряде случаев установка дров это своя увлекательная история :)

По поводу сертификатов.
Корневой сертификат содержит сведения о центре сертификации и еще много чего. Без него и в винде ничего не получится, можешь мне поверить. CRL - список отозванных сертификатов - его проверка тоже обязательный этап авторизации. Если есть желание, литературы в инете об этом полно. :)
Да, проверку и апдейт CRL, скорее всего, возможно сделать более изящно.

 

Страница сгенерирована за 0.018 секунд. Запросов: 21.