Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Необходимо отредактировать файл /etc/sudoers

su

su 

sudo nano /etc/sudoers


И добавить в него строчку User ALL=(ALL) ALL

...

Далее логинимся под пользователем и продолжаем работу из-под него.

su user


Далее необходимо установить следующие пакеты:

sudo dnf

sudo dnf update

sudo dnf upgrade

sudo dnf install ccid opensc pam_pkcs11 gdm-plugin-smartcard p11-kit install join-to-domain

sudo dnf install -y realmd PackageKit

sudo dnf install -y krb5-workstation

sudo dnf install -y nss-tools opensc krb5-pkinit


Загрузите модуль librtpkcs11ecp.so и установите:

...

Узнайте название вашего соединения. Они могут отличаться.

CON_NAME="enp0s3"


Название интерфейса, которое использует ваше соединение.

INT_NAME="Ethernet"


Адрес dns сервера

DNS_SERVER_IP=10.0.2.15


Отключаем соединение

sudo nmcli

sudo nmcli con

down 

down "$CON_NAME"


Настраиваем сетевую карту соединения - по умолчанию $INT_NAME

sudo nmcli

sudo nmcli con

mod 

mod "$CON_NAME"

 connection

connection.interface-name $INT_NAME


Настраиваем DNS - вместо DNS_SERVER_IP указать IP-адрес сервера DNS. При необходимости указываем адрес локального сервера DNS.

sudo nmcli

sudo nmcli con

mod 

mod "$CON_NAME"

 ipv4

ipv4.

dns 

dns "$DNS_SERVER_IP 10.0.2.15"

sudo nmcli con mod "$CON_NAME" ipv4.ignore-auto-dns yes


Включаем сетевое соединение

sudo nmcli

sudo nmcli con

up 

up "$CON_NAME"


Вводим компьютер в домен

sudo join

sudo join-to-domain.sh

Через графический интерфейс

...

Узнаем какие пакеты еще необходимы для подключения к домену

realm discover astradomain.ad


Список необходимых для работы пакетов будет выведен в следующем формате

...

Если в домене есть пользователь ad_user, к которому можно подключиться с помощью пароля, то можно осуществить проверку настройки получив тикет для него

kinit ad_user@ASTRADOMAIN.AD


Проверка получения тикета осуществляется командой

klist


Удаление тикета

kdestroy

Проверка аутентификации под пользователем в домене без Рутокена

su ad_user@astradomain.ad


Логинимся локальным пользователем для дальнейшей настройки

su user


Настройка клиента для аутентификации в домене с помощью Рутокена

...

sudo rm -fr /etc/pki/nssdb

sudo mkdir /etc/pam_pkcs11/nssdb

sudo chmod 777 /etc/pam_pkcs11/nssdb

sudo certutil -N -d /etc/pam_pkcs11/nssdb --empty-password

sudo modutil -dbdir /etc/pam_pkcs11/nssdb -add "Rutoken PKCS11" -libfile /usr/lib64/librtpkcs11ecp.so

...

sudo rm -fr /etc/pki/

...

nssdb

sudo mkdir /etc/pam_pkcs11/nssdb

sudo chmod 777 /etc/pam_pkcs11/nssdb

sudo certutil -N -

Следующая команда используется из директории, в которой находится корневой сертификат

sudo cp ca_cert.cer /etc/pki/ca-trust/source/anchors/

sudo update-ca-trust force-enable

sudo update-ca-trust extract

sudo certutil -

d /etc/pam_pkcs11/nssdb -

A

-

n 'AD-ROOT' -t CT,CT,CT -a -i

empty-password

sudo modutil -dbdir /etc/pam_pkcs11/nssdb -add "Rutoken PKCS11" -libfile /usr/lib64/librtpkcs11ecp.so


Устанавливаем корневой сертификат в      /etc/pki/ca-trust/source/anchors/

Следующая команда используется из директории, в которой находится корневой сертификат

sudo cp ca_cert.cer

...

/etc/pki/ca-trust/source/anchors/

sudo update-ca-trust force-enable

sudo update-ca-trust extract

sudo certutil -d /etc/pam_pkcs11/nssdb -A -n 'AD-ROOT' -t CT,CT,CT -a -i /etc/pki/ca-trust/source/anchors/ca_cert.cer


Проверяем видимость сертификатов. Должен запросить ПИН-код Рутокен и выдать сертификат с карточки с правами u,u,u и корневой сервера

sudo certutil -L -d /etc/pam_pkcs11/nssdb -h all

Certificate Nickname Trust Attributes
SSL,S/MIME,JAR/XPI

Enter Password or Pin for "Rutoken ECP <no label>":
AD-ROOT CT,C,C
Rutoken ECP <no label>:te-Rutoken-0329dc84-5937-4b1e-adaf-5cbfe977cda0_E u,u,u

...

sudo certutil -L -d /etc/pam_pkcs11/nssdb -h all

Certificate Nickname Trust Attributes
SSL,S/MIME,JAR/XPI

Enter Password or Pin for "Rutoken ECP <no label>":
AD-ROOT CT,C,C
Rutoken ECP <no label>:te-Rutoken-0329dc84-5937-4b1e-adaf-5cbfe977cda0_E u,u,u


Добавляем модуль Рутокен к p11-kit

sudo nano /usr/share/p11-kit/modules/Rutoken.module


________________________________

...

Делаем модуль Рутокен по умолчанию для p11-tools

sudo modutil -default "Rutoken PKCS11" -dbdir /etc/pam_pkcs11/nssdb -mechanisms RSA:DSA:RC4:DES


Редактируем pam_pkcs11

sudo nano /etc/pam_pkcs11/pam_pkcs11.conf

pam_pkcs11 {

  nullok = false;

  debug = true;

  use_first_pass = false;

  use_authtok = false;

  card_only = false;

  wait_for_card = false;

  use_pkcs11_module = rutokenecp;

  # Aktiv Rutoken ECP

  pkcs11_module rutokenecp {

    module = /usr/lib64/librtpkcs11ecp.so;

    slot_num = 0;

    support_thread = true;

    ca_dir = /etc/pam_pkcs11/cacerts;

    crl_dir = /etc/pam_pkcs11/crls;

    cert_policy = signature;

  }

  use_mappers = ms;


  mapper_search_path = /usr/lib64/pam_pkcs11;


  mapper ms {

  debug = false;

  module = internal;

  ignorecase = true;

  ignoredomain = true;

  domain = "ASTRADOMAIN.AD";

 }

}


Настраиваем PAM стандартным средством RHEL authselect.

sudo authselect select sssd with-smartcard with-mkhomedir --force




Как должен выглядеть /etc/pam.d/system-auth

sudo nano /etc/pam.d/system-auth

auth        required                                     pam_env.so

auth        required                                     pam_faildelay.so delay=2000000

auth        [default=1 ignore=ignore success=ok]         pam_usertype.so isregular

auth        [default=2 ignore=ignore success=ok]         pam_localuser.so

auth        [success=done authinfo_unavail=ignore ignore=ignore default=die] pam_sss.so try_cert_auth

auth        sufficient                                   pam_unix.so nullok try_first_pass

auth        [default=1 ignore=ignore success=ok]         pam_usertype.so isregular

auth        sufficient                                   pam_sss.so forward_pass

auth        required                                     pam_deny.so


account     required                                     pam_unix.so

account     sufficient                                   pam_localuser.so

account     sufficient                                   pam_usertype.so issystem

account     [default=bad success=ok user_unknown=ignore] pam_sss.so

account     required                                     pam_permit.so


password    requisite                                    pam_pwquality.so try_first_pass local_users_only

password    sufficient                                   pam_unix.so sha512 shadow nullok try_first_pass use_authtok

password    sufficient                                   pam_sss.so use_authtok

password    required                                     pam_deny.so


session     optional                                     pam_keyinit.so revoke

session     required                                     pam_limits.so

-session    optional                                     pam_systemd.so

session     optional                                     pam_oddjob_mkhomedir.so umask=0077

session     [success=1 default=ignore]                   pam_succeed_if.so service in crond quiet use_uid

session     required                                     pam_unix.so

session     optional                                     pam_sss.so


...

Как должен выглядеть /etc/pam.d/password-auth

sudo nano /etc/pam.d/password-auth

auth        required                                     pam_env.so

auth        required                                     pam_faildelay.so delay=2000000

auth        [default=1 ignore=ignore success=ok]         pam_usertype.so isregular

auth        [default=1 ignore=ignore success=ok]         pam_localuser.so

auth        [success=done authinfo_unavail=ignore ignore=ignore default=die] pam_sss.so try_cert_auth

auth        sufficient                                   pam_unix.so nullok try_first_pass

auth        [default=1 ignore=ignore success=ok]         pam_usertype.so isregular

auth        sufficient                                   pam_sss.so forward_pass

auth        required                                     pam_deny.so


account     required                                     pam_unix.so

account     sufficient                                   pam_localuser.so

account     sufficient                                   pam_usertype.so issystem

account     [default=bad success=ok user_unknown=ignore] pam_sss.so

account     required                                     pam_permit.so


password    requisite                                    pam_pwquality.so try_first_pass local_users_only

password    sufficient                                   pam_unix.so sha512 shadow nullok try_first_pass use_authtok

password    sufficient                                   pam_sss.so use_authtok

password    required                                     pam_deny.so


session     optional                                     pam_keyinit.so revoke

session     required                                     pam_limits.so

-session    optional                                     pam_systemd.so

session     optional                                     pam_oddjob_mkhomedir.so umask=0077

session     [success=1 default=ignore]                   pam_succeed_if.so service in crond quiet use_uid

session     required                                     pam_unix.so

session     optional                                     pam_sss.so



Настройка SSSD

sudo nano /etc/sssd/sssd.conf


Как должен выглядеть/etc/sssd/sssd.conf:

...

Корректируем конфиг Kerberos

sudo nano /etc/krb5.conf


Сам файл должен выглядеть следующим образом:

...