Page tree

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

Сервер:

ОС: Windows server 2019

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

ip: 10.0.2.15

Клиент:

ОС: РЕД ОС \ Астра Линукс \ ALT Linux \ Ubuntu

доменное имя: redos.astradomain.ad \ smolensk.astradomain.ad \ orel.astradomain.ad \ ubuntu.astradomain.ad

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

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

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

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


В окне для выбора сервисов установим галочки "Active Directory Domain Services" и "DNS Server":

Во всех остальных пунктах даем согласие на установку.

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

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


Введите пароль сброса:


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

 


На следующих трёх вкладках также оставляем все как есть:


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


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

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

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


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

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


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

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

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


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

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

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


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

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

Astra Linux Smolensk

Для Astra Linux Smolensk чтобы подключиться к домену (не настраивая двухфакторную аутентификацию), можно воспользоваться следующей инструкцией

Если во время выполнения инструкции панель "Настройки клиента Active Directory" не будет запускаться, то введите в командной строке следующую команду:

доступ к X11 для root
xhost +SI:localuser:root

Она предоставит пользователю root доступ к графическому интерфейсу среды.


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

Настройка DNS
#########################################################
############## Меняем доменное имя клиента ##############
#########################################################
# Меняем имя клиента в нашем домене astradomain.ad на client
sudo hostnamectl set-hostname client.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 PackageKit

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

# Узнаем какие пакеты еще необходимы для подключения к домену
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-workstation
# для пользователей систем с менеджером пакетов yum
sudo yum install -y krb5-workstation

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

# для пользователей Alt linux
sudo apt-get install -y krb5-workstation

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

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

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


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

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

Это можно сделать в настройках pam. Для этого в файле 

/etc/pam.d/common-session для систем основанных на Debian

/etc/pam.d/system-auth для систем основанных на Red Hat

/etc/pam.d/system-auth-sss-only для пользователей Alt linux

активируем модуль pam_mkhomedir.so, после pam_sss.so. Содержимое файла будет выглядеть следующем образом:

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

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

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

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


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

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

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

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

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

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

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

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

Установка библиотеки 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


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

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

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


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

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


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

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


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

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

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

Настройка SSSD

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

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


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

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


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

/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
fallback_homedir = /home/%u@%d
access_provider = ad

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

# Для пользователей Astra Linux также нужно добавить строчку отключения групповых политик
ad_gpo_access_control = permissive

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


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

перезапуск сервиса sssd
sudo systemctl restart sssd

Настройка Kerberos

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

Копирование корневого сертификата
sudo cp /path/to/ca_cert.pem /etc/pki/tls/certs/
# разрешить доступ к папке /etc/pki/tls/certs/ для всех пользователей
sudo chmod 777 /etc/pki/tls/certs/


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

/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, который аутентифицируется по Рутокену

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

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

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

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

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

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

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

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

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

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

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

Настройка автоматического создания каталога
...
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 должен содержать следующие строки:

Настройка автоматического создания каталога
...
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
...


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

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

Для пользователей Astra Linux предложение ввода ПИН-кода не отображается. В поле ввода пароля просто введите ПИН-код от Рутокена:


  • No labels