...
доменное имя: server,astradomain.ad
ip: 10.0.2.15
Клиент:
ОС: Red OS Муром РЕД ОС \ Астра Линукс Смоленск \ Астра Линукс Орел ALT Linux \ Ubuntu
доменное имя: redos.astradomain.ad \ smolensk.astradomain.ad \ orel.astradomain.ad \ ubuntu.astradomain.ad
...
Установите драйверы для работы с Рутокеном на сервер. Их можно получить тут. После этого можно приступить к настройке центра сертификации и выдачи сертификатов для пользователей. Это можно сделать по данной инструкции. Настройку авторизации с помощью сертификатов можно воспроизвести по этой инструкции.
Info | |
---|---|
title | Для пользоватей Linux Для аутентификации пользователей через linux машины. Помимо токенов с ключами и сертификатов пользователей, вам также необходимо направить им корневой сертификат УЦ. Его можно получить здесь: |
...
Настройка подключения к домену
Info | |||||||
---|---|---|---|---|---|---|---|
Astra Linux Smolensk Для Astra Linux Smolensk чтобы подключиться к домену (не настраивая двухфакторную аутентификацию), можно воспользоваться следующей инструкцией. Если во время выполнения инструкции панель "Настройки клиента Active Directory" не будет запускаться, то введите в командной строке следующую команду:
Она предоставит пользователю root доступ к графическому интерфейсу среды. |
...
В первую очередь настроим подключение к домену. Это можно сделать с помощью следующей последовательности команд:
Code Block | ||||
---|---|---|---|---|
| ||||
######################################################### ############## Меняем доменное имя клиента ############## ######################################################### # Меняем имя клиента в нашем домене 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_mkhomedir.so, после pam_sss.so. Содержимое файла будет выглядеть следующем образом:
Code Block | ||||
---|---|---|---|---|
| ||||
... session optional pam_sss.so session required pam_mkhomedir.so skel=/etc/skel/ umask=0022 ... |
...
Если в домене есть пользователь user, под которым можно аутентифицироваться без смарт-карты, то можно проверить предыдущую надстройку аутентифицируясь под ним. Для начала можно попробовать аутнетифицироваться аутентифицироваться через командную строку:
Code Block | ||||
---|---|---|---|---|
| ||||
su user@astradomain.ad |
Настройка клиента для
...
аутентификации в домене с помощью Рутокена
...
Ручная настройка
Для упрощенной настройки можно воспользоваться утилитой для работы с токенами. Описание упрощенной настройки можно прочитать тут.
Ручная настройка
...
Установка необходимых пакетов для работу:
Установите libnss3-tools:
Code Block | ||||
---|---|---|---|---|
| ||||
# для пользователей систем с менеджером пакетов yum sudo yum install -y nss-tools opensc krb5-pkinit # для пользователей систем с менеджером пакетов apt-get sudo apt-get install -y libnss3-tools opensc krb5-pkinit |
Для ручной настройки также потребуется установить библиотеку librtpkcs11ecp. Ее можно получить тут. Установим данную библиотеку.
Code Block | ||||
---|---|---|---|---|
| ||||
# Установка пакета для систем основанных на 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 | ||||
---|---|---|---|---|
| ||||
sudo mkdir /etc/pki/nssdb sudo chmod 777 /etc/pki/nssdb sudo certutil -N -d /etc/pki/nssdb --empty-password |
...
Добавление корневого сертификата в БД:
Code Block | ||||
---|---|---|---|---|
| ||||
sudo certutil -d /etc/pki/nssdb -A -n 'CA-ROOT-CERT' -t CT,CT,CT -a -i /path/to/ca_cert.pem |
...
Добавление сертификатов с Рутокена:
Code Block | ||||
---|---|---|---|---|
| ||||
sudo modutil -dbdir /etc/pki/nssdb -add "Rutoken PKCS11" -libfile librtpkcs11ecp.so |
...
Проверку того, что сертификаты добавились в БД можно осуществить с помощью команды
Code Block | ||||
---|---|---|---|---|
| ||||
# перезапустите сервис pcscd на случай, если он выключен sudo systemctl restart pcscd # проверяем наличие сертификатов в БД sudo certutil -L -d /etc/pki/nssdb -h all |
...
Для того, чтобы аутентификация корректно работала на лок скрине. В настройках sssd нужно указать название сервиса, использующегося при аутентификации через лок скрин, чтобы сделать его доверенным. У каждой графической оболочки свое название данного сервиса. Узнать название вашей графической оболочки можно с помощью команды:
Code Block | ||||
---|---|---|---|---|
| ||||
echo $XDG_CURRENT_DESKTOP |
...
MATE → mate-screensaver
X-Cinnamon → cinnamon-screensaver
fly → <Отсутствует>
KDE → kde
GNOME → xdg-screensaver
Сконфигурируем SSSD. Для этого отредактируем файл /etc/sssd/sssd,conf. Он должен выглядеть примерно следующим образом:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
[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
Code Block | ||||
---|---|---|---|---|
| ||||
sudo systemctl restart sssd |
...
Скопируем корневой сертификат в директорию /etc/pki/tls/certs/.
Code Block | ||||
---|---|---|---|---|
| ||||
sudo cp /path/to/ca_cert.pemsudo 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] должна содержать следующее:
Code Block | |||
---|---|---|---|
| |||
. | 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 | ||||
---|---|---|---|---|
| ||||
# Получение тикета. Должно быть предложено ввести ПИН-код токена kinit user # Проверка получения тикета klist # Сброс тикета kdestroy |
...
Попробуйте аутентифицироваться под доменным пользователем user по смарт-карте в системе:
Code Block | ||||
---|---|---|---|---|
| ||||
su user |
Если аутентификация не прошла успешно, то попробуйте изменить конфигурацию pam модулей, иначе можете пропустить данную часть
...
Файл /etc/pam.d/common-auth должен содержать следующие строки:
Code Block | ||||
---|---|---|---|---|
| ||||
... auth [success=2 default=ignore] pam_sss.so forward_pass auth [success=1 default=ignore] pam_unix.so try_first_pass nullok_secure ... |
...
Файл /etc/pam.d/system-auth должен содержать следующие строки:
Code Block | ||||
---|---|---|---|---|
| ||||
... 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 ... |
...