Описание стенда
Сервер:
ОС: 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
Настройка подключения к домену
В первую очередь настроим подключение к домену. Это можно сделать с помощью следующей последовательности команд:
######################################################### ############## Меняем доменное имя клиента ############## ######################################################### # Меняем имя клиента в нашем домене 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 # для пользователей Astra Linux дополнительно потребуется поставить пакет packagekit 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-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
Настройка клиента для аутентфикации в домене с помощью Рутокена
Упрощенная настройка
Для упрощенной настройки можно воспользоваться утилитой для работы с токенами. Описание упрощенной настройки можно прочитать тут.
Ручная настройка
Установка необходимых пакетов для работу:
# для пользователей систем с менеджером пакетов yum sudo yum install -y nss-tools opensc # для пользователей систем с менеджером пакетов apt-get sudo apt-get install -y libnss3-tools opensc
Для ручной настройки также потребуется установить библиотеку librtpkcs11ecp. Ее можно получить тут. Установим данную библиотеку.
# Установка пакета для систем основанных на 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
Добавление корневого сертификата и сертификатов токена в БД
Инициализируем БД:
mkdir /etc/pki/nssdb sudo certutil -N -d /etc/pki/nssdb --empty-password
Добавление корневого сертификата в БД:
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. Он должен выглядеть примерно следующим образом:
[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
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] должна содержать следующее:
... [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, который аутентифицируется по Рутокену
# Получение тикета. Должно быть предложено ввести ПИН-код токена kinit user # Проверка получения тикета klist # Сброс тикета kdestroy
Попытка аутентификации по смарт-карте
Попробуйте аутентифицироваться под доменным пользователем 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 ...
Аутентфикация через гритер
Проверьте аутентификацию через гритер через лок скрин.