Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

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

Сервер:

ОС: 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":

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


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


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

 


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


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


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

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

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


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

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


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


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

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

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

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

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


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

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

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

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

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

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


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

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

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


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

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

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

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

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

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

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

Для ручной настройки также потребуется установить библиотеку 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

Сконфигурируем 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
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

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

Настройка Kerberos

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

Копирование корневого сертификата
sudo cp /path/to/ca_cert.pem /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
...


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

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

  • No labels