Page tree

Versions Compared

Key

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

Описание стенда

Сервер:

ОС: Windows server 2019

доменное имя: server,astradomain.ad

ip: 10.0.2.15

Клиент:

ОС: Red OS Муром

доменное имя: redos.astradomain.ad

Настройка сервера

Установка сервиса Active Directory

Измените имя сервера, если это необходимо. Его можно задать окне менеджера сервера:

Добавим службу Active Dirrectory и DNS на сервер. Для этого откроем окно добавления ролей в менеджере сервера:


В окне выбора сервисов укажем "Active Directory Domain Services" и "DNS Server":


Во всех остальных пунктах соглашаемся с установкой.


После завершения установки сервисов вам перейдем к настройке домена/ Для этого откройте меню уведомлений и выберете пункт "Promote this server to a domain controller":

В первой вкладке укажите опцию создания нового домена и укажите его название:


Укажите пароль сброса:


Cследующую вкладку оставляем нетронутой. Т.к. наш сервер сам является DNS сервером:

 


Следующие три вкладки можно оставить нетронутыми:


Читаем предупреждения перед установкой. И если необходимо, устраняем возникшие проблемы. В нашем случае предупреждения не являются критичными:


После установки Active Directory сервер перезагрузится.  Если настройка прошла успешно, то нас попросят войти в аккаунт на этот раз доменного пользователя:

Добавление новых пользователей:

Откроем утилиту управления пользователями и компьютерами домена:


Для удобства можно создать отдельную дирректорию Domain Users, где будем создавать доменных пользователей:

Добавим нового пользователя user:


Аналогичным образом добавьте остальных пользователей, которые должны быть в домене.


Info
titleДля пользоватей Linux

Для аутетнтификации пользователей через linux машины. Помимо токенов с ключами и сертификатов пользователей, вам также необходимо направить им корневой сертификат УЦ.

Его можно получить здесь:

Установка центра сертификации Active Directory:

Установите драйвера для работы с Рутокеном на сервер. Их можно получить тут. После этого можно приступить к настройке центра сертификации и выдачи сертификатов для пользователей. Это можно сделать по данной инструкции. Настройка авторизации с помощью сертификатов можно воспроизвести по этой инструкции.


Настройка клиента Linux

Настройка подключения к домену

В первую очередь настроим подключение к домену. Это можно сделать с помощью следующей последовательности команд:

Code Block
languagebash
titleНастройка DNS
#########################################################
############## Меняем доменное имя клиента ##############
#########################################################
# Меняем имя клиента в нашем домене astradomain.ad на client
sudo hostnamectl set-hostname redos.astradomain.ad
 
# После данного этапа потребуется перезагрузка


#########################################################
### Настройка подключения. Изменяем адрес DNS сервера ###
#########################################################
# узнайте название вашего соединения. Они могут отличаться
CON_NAME="Проводное соединение 1"
# название интерфейса, которое использует ваше соединение
INT_NAME="eth0"
# адрес dns сервера
DNS_SERVER_IP=10.0.2.37
# отключаем соединение
sudo nmcli con down "$CON_NAME"
 
# настраиваем сетевую карту соединения - по умолчанию $INT_NAME
sudo nmcli con mod "$CON_NAME" connection.interface-name $INT_NAME
 
# настраиваем DNS - вместо DNS_SERVER_IP указать IP-адрес сервера DNS. При необходимости указываем адрес локального сервера DNS. В нашем случае в качестве DNS сервера выступал сам сервер FreeIPA. Поэтому был указан его IP адрес
sudo nmcli con mod "$CON_NAME" ipv4.dns "$DNS_SERVER_IP 8.8.8.8"
sudo nmcli con mod "$CON_NAME" ipv4.ignore-auto-dns yes
 
# включаем сетевое соединение
sudo nmcli con up "$CON_NAME"

# Проверка подключения
ping server.astradomain.ad

#########################################################
############# Установка необходимых пакетов #############
#########################################################
# для пользователей систем с менеджером пакетов yum
sudo yum install -y realmd

# для пользователей систем с менеджером пакетов apt-get
sudo apt-get install -y realmd

# Узнаем какие пакеты еще необходимы для подключения к домену
realm discover astradomain.ad

# Список необходимых для работы пакетов будет выведен в следующем формате
# required-package: pkg1
# required-package: pkg2
# required-package: pkg3
# ...

# Доустановим отсутствующие пакеты
# для пользователей систем с менеджером пакетов yum
sudo yum install -y pkg1 pkg2 pkg3 ...

# для пользователей систем с менеджером пакетов apt-get
sudo apt-get install -y pkg1 pkg2 pkg3 ...


#########################################################
################# Подключение к домену ##################
#########################################################
# Подключимcя к домену
# Пользователь user должен обладать правами подключения устройств в домен.
sudo realm join astradomain.ad --user=user

# Установим пакет krb5-user
# для пользователей систем с менеджером пакетов yum
sudo yum install -y krb5-pkinit

# для пользователей систем с менеджером пакетов apt-get
sudo apt-get install -y krb5-user

# Если в домене есть пользователь user, к которому можно подключиться с помощью пароля, то можно осуществить проверку настройки получив тикет для него
kinit user@astradomain.ad

# Проверка получения тикета
klist

# Удаляем тикет
kdestroy


Настройка автоматического создания домашней директории

Когда доменный пользователь аутентифицируется в системе необходимо чтобы для него автоматически создавался домашний каталог.

Для систем основанных на Debian 

Это можно сделать в настройках pam. Для этого в файле /etc/pam.d/common-session активируем модуль pam_mkhomedir.so, после pam_sss.so. Содержимое файла будет будет выглядеть следующем образом:

Code Block
languagebash
titleНастройка автоматического создания каталога
...
session required pam_unix.so
session optional pam_sss.so
session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
...

Для систем основанных на Red Hat

Это можно сделать в настройках pam. Для этого в файле /etc/pam.d/system-auth активируем модуль pam_mkhomedir.so, после pam_sss.so. Содержимое файла будет будет выглядеть следующем образом:

Code Block
languagebash
titleНастройка автоматического создания каталога
...
session required pam_unix.so
session optional pam_sss.so
session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
...


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

Если в домене есть пользователь user, под которым можно аутентифицироваться без смарт-карты, то можно проверить предыдущую надстройку аутентифицируясь под ним. Для начала можно попробовать аутнетифицироваться через командную строку:

Code Block
languagebash
titleНастройка автоматического создания каталога
su user@astradomain.ad


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

Упрощенная настройка

Для упрощенной настройки можно воспользоваться утилитой для работы с токенами. Описание упрощенной настройки можно прочитать тут (TODO).

Ручная настройка

Установка необхоимых пакетов для работу:

Code Block
languagebash
titleУстановка libnss3-tools
# для пользователей систем с менеджером пакетов yum
sudo yum install -y nss-tools opensc

# для пользователей систем с менеджером пакетов apt-get
sudo apt-get install -y libnss3-tools opensc

Для ручной настройки также потребуется установить библиотеку librtpkcs11ecp. Ее можно получить тут.  Установим данную библиотеку.

Code Block
languagebash
titleУстановка библиотеки pkcs11
# Установка пакета для систем основанных на red hat
sudo rpm -i librtpkcs11ecp-2.0.5.1-1.x86_64.rpm
# Установка пакета для Debian систем
sudo dpkg -i librtpkcs11ecp-2.0.5.1-1.x86_64.deb


Добавление корневого сертификата и сертификатов токена в БД

Инициализируем БД:

Code Block
languagebash
titleУстановка libnss3-tools
mkdir /etc/pki/nssdb
sudo certutil -N -d /etc/pki/nssdb --empty-password


Добавление корневого сертификата в БД:

Code Block
languagebash
titleУстановка libnss3-tools
sudo certutil -d /etc/pki/nssdb -A -n 'CA-ROOT-CERT' -t CT,CT,CT -a -i /path/to/ca_cert.pem


Добавление сертификатов с Рутокена:

Code Block
languagebash
titleДобавление сертификатов с Рутокена
sudo modutil -dbdir /etc/pki/nssdb -add "Rutoken PKCS11" -libfile librtpkcs11ecp.so


Проверку того, что сертификаты добавились в БД можно осуществить с помощью команды

Code Block
languagebash
titleДобавление сертификатов с Рутокена
# перезапустите сервис pcscd на случай, если он выключен
sudo systemctl restart pcscd

# проверяем наличие сертификатов в БД
sudo certutil -L -d /etc/pki/nssdb -h all


Настройка SSSD

Для того, чтобы аутентификация корректно работала на лок скрине. В настройках sssd нужно указать название сервиса, использующегося при аутентфиикации через лок скрин, чтобы сделать его доверенным. У каждой графической оболочки свое название данного сервиса. Узнать название вашей графической оболочки можно с помощью команды:

Code Block
languagebash
titleНазвание графической оболочки
echo $XDG_CURRENT_DESKTOP


Вот список соответствий названий графических оболочек и сервиса, используемого лок скрином. Данный список не является полным

MATE → mate-screensaver
X-Cinnamon → cinnamon-screensaver
fly → <Отсутствует>
KDE → kde

Сконфигурируем SSSD. Для этого отредактируем файл /etc/sssd/sssd,conf. Он должен выглядеть примерно следующим образом:

Code Block
languagebash
title/etc/sssd/sssd.conf
[sssd]
domains = astradomain.ad
config_file_version = 2
services = nss, pam

[domain/astradomain.ad]
ad_domain = astradomain.ad
krb5_realm = ASTRADOMAIN.AD
realmd_tags = manages-system joined-with-samba
cache_credentials = True
id_provider = ad
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = True
fallback_homedir = /home/%u@%d
access_provider = ad

# Если хотим подключаться к пользователям домена не вводя имя домена
use_fully_qualified_names = False

# Для активации входа по смарт-картам
[pam]
pam_cert_auth = True
# Указываем название сервиса, используемого лок скрином. Если сервис отсуствует, то данную строку не используют
pam_p11_allowed_services = +<service_name>


Перезапустим сервис SSSD

Code Block
languagebash
titleперезапуск сервиса sssd
sudo systemctl restart sssd


Настройка Kerberos

Скопируем корневой сертификат в директорию /etc/pki/tls/certs/

Code Block
languagebash
titleКопирование корневого сертификата
sudo cp /path/to/ca_cert.pem /etc/pki/tls/certs/


Для настройки Kerberos изменим содержимое файла /etc/krb5.conf. Секция [libdefaults] должна содержать следующее:

Code Block
languagebash
title/etc/krb5.conf
...
[libdefaults]
...
# Путь до дерриктории с корневым сертификатов с постфиксом .pem
    pkinit_anchors = DIR:/etc/pki/tls/certs/
# Адресс KDC
    pkinit_kdc_hostname = server.astradomain.ad
# Пропускаем проверку EKU сертификата
    pkinit_eku_checking = kpServerAuth
    default_ccache_name = KEYRING:persistent:%{uid}
# Имя домена по умолчанию
    default_realm = ASTRADOMAIN.AD
# Путь д сертификатов и ключей
    pkinit_identities = PKCS11:librtpkcs11ecp.so
# Для совместимости с AD 
    canonicalize = True
...


Проверка настройки с помощью получения тикета для пользователя user, который аутентифицируется по Рутокену

Code Block
languagebash
titleполучение тикета для пользователя user
# Получения тикета. Должно быть предложено ввести ПИН код токена
kinit user

# Проверка получения тикета
klist

# Сброс тикета
kdestroy


Попытка аутентфиикация по смарт-карте

Попробуйте аутентифицироваться под доменным пользователем user по смарт-карте в системе:

Code Block
languagebash
titleАутентфиикация пользователя user
su user

Если аутентификаия не прошла успешно, то попробуйте изменить конфигурацию pam модулей, иначе можете пропустить данную часть

Настройка pam модулей.

Для аутентификации пользователя в системе с помощью смарт-карты необходимо изменить содержимое pam модулей

Для систем основанных на Debian 

Файл /etc/pam.d/common-auth должен содержать следующие строки:

Code Block
languagebash
titleНастройка автоматического создания каталога
...
auth [success=2 default=ignore] pam_sss.so forward_pass
auth [success=1 default=ignore] pam_unix.so try_first_pass nullok_secure
...
Для систем основанных на Red Hat

Файл /etc/pam.d/system-auth должен содержать следующие строки:

Code Block
languagebash
titleНастройка автоматического создания каталога
...
auth        [default=1 ignore=ignore success=ok]         pam_localuser.so
auth        sufficient                                   pam_unix.so nullok try_first_pass
auth        requisite                                    pam_succeed_if.so uid >= 1000 quiet_success
auth        sufficient                                   pam_sss.so forward_pass
...


Аутентфикации через гритер

Проверьте аутентфикацию через гритер  через лок скрин