После выполнения всех действий по инструкции "7.5. Настройка доверенных отношений Avanpost DS с MS Active Directory" можно переходить к настройке доверенных отношений на рабочих станциях.
Для настройки рабочих станций под управлением ОС RedOS в домене Avanpost DS для работы с MS AD требуется подключиться к ним по SSH и выполнить шаги:
ВНИМАНИЕ:
В инструкции приведены команды для двух операционных систем: REDOS 8REDOS 7
Для шагов с отличающимися в зависимости от ОС действиями указаны команды для обоих ОС. Необходимо выполнять команды только для используемой вами ОС.
Шаг 1. Перевести SELinux в режим "permissive" и отключить службу "iptables" (только для RedOS 7).
Для этого необходимо выполнить команды:
RedOS 8 | НЕ выполняем данный шаг на RedOS 8 | |
---|---|---|
RedOS 7 | sudo sed -i "s/SELINUX=enforcing/SELINUX=permissive/" /etc/selinux/config sudo systemctl stop iptables && sudo systemctl disable iptables |
Шаг 2. Установить необходимые пакеты.
Для этого необходимо выполнить команды:
RedOS 8 | sudo dnf install authselect-compat nss-pam-ldapd kstart | |
---|---|---|
RedOS 7 | sudo dnf install authselect-compat nss-pam-ldapd sssd-proxy sudo wget https://dl.fedoraproject.org/pub/archive/epel/7/x86_64/Packages/k/kstart-4.2-7.el7.x86_64.rpm sudo rpm -i kstart-4.2-7.el7.x86_64.rpm |
Шаг 3. Ввести рабочую станцию в домен Avanpost DS.
Для этого необходимо выполнить действия согласно инструкции "6.7. Введение в домен рабочих станций".
Рисунок 99. Пример успешного введения станции в домен
Шаг 4. Остановить службы "sssd" и "nslcd".
Для этого необходимо выполнить команду:
sudo systemctl stop sssd nslcd
Шаг 5. Проверить провайдер и функции authselect.
Для этого необходимо:
5.1. Проверить, что в качестве провайдера используется "sssd" и включены необходимые функции, с помощью команды:
sudo authselect current
ВАЖНО:
Если провайдер autheselect не настроен, то после каждого изменения настройки сбрасываются до значений по умолчанию.
$ sudo authselect current Идентификатор профиля: sssd Включенные функции: - with-mkhomedir - with-silent-lastlog - with-fingerprint - with-mdns4 - with-pamaccess
5.2. Если какая-либо из функций выключена, то включить ее одной из команд:
sudo authselect enable-feature with-mkhomedir sudo authselect enable-feature with-silent-lastlog sudo authselect enable-feature with-fingerprint sudo authselect enable-feature with-mdns4 sudo authselect enable-feature with-pamaccess
Шаг 6. Внести изменения в конфигурационные файлы authselect.
Для этого необходимо:
6.1. Открыть для редактирования конфигурационный файл "/etc/authselect/system-auth".
sudo nano /etc/authselect/system-auth
6.2. Добавить строки в файл "/etc/authselect/system-auth".
auth sufficient pam_ldap.so account sufficient pam_ldap.so password sufficient pam_ldap.so session sufficient pam_ldap.so
ВАЖНО:
Указанные строки требуется добавлять в строго определенные места файла "/etc/authselect/system-auth" по следующему алгоритму:
Каждую строку нужно поместить в блок со строками с таким же свойством (auth, account, password или session) сразу после строки с параметром "pam_unix.so".
# Generated by authselect # Do not modify this file manually, use authselect instead. Any user changes will be overwritten. # You can stop authselect from managing your configuration by calling 'authselect opt-out'. # See authselect(8) for more details. auth required pam_env.so auth required pam_faildelay.so delay=2000000 auth sufficient pam_fprintd.so auth [default=1 ignore=ignore success=ok] pam_usertype.so isregular auth [default=1 ignore=ignore success=ok] pam_localuser.so auth sufficient pam_unix.so nullok auth sufficient pam_ldap.so auth [default=1 ignore=ignore success=ok] pam_usertype.so isregular auth sufficient pam_sss.so forward_pass auth required pam_deny.so account required pam_access.so account required pam_unix.so account sufficient pam_ldap.so account sufficient pam_localuser.so account sufficient pam_usertype.so issystem account [default=bad success=ok user_unknown=ignore] pam_sss.so account required pam_permit.so password requisite pam_pwquality.so local_users_only password sufficient pam_unix.so yescrypt shadow nullok use_authtok password sufficient pam_ldap.so password [success=1 default=ignore] pam_localuser.so password sufficient pam_sss.so use_authtok password required pam_deny.so session optional pam_keyinit.so revoke session required pam_limits.so -session optional pam_systemd.so session optional pam_oddjob_mkhomedir.so session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid session required pam_unix.so session sufficient pam_ldap.so session optional pam_sss.so
6.3. Открыть для редактирования конфигурационный файл "/etc/authselect/password-auth".
sudo nano /etc/authselect/password-auth
6.4. Добавить строки в файл "/etc/authselect/password-auth".
auth sufficient pam_ldap.so account sufficient pam_ldap.so password sufficient pam_ldap.so session sufficient pam_ldap.so
ВАЖНО:
Указанные строки требуется добавлять в строго определенные места файла "/etc/authselect/password-auth" по следующему алгоритму:
Каждую строку нужно поместить в блок со строками с таким же свойством (auth, account, password или session) сразу после строки с параметром "pam_unix.so".
# Generated by authselect # Do not modify this file manually, use authselect instead. Any user changes will be overwritten. # You can stop authselect from managing your configuration by calling 'authselect opt-out'. # See authselect(8) for more details. auth required pam_env.so auth required pam_faildelay.so delay=2000000 auth [default=1 ignore=ignore success=ok] pam_usertype.so isregular auth [default=1 ignore=ignore success=ok] pam_localuser.so auth sufficient pam_unix.so nullok auth sufficient pam_ldap.so auth [default=1 ignore=ignore success=ok] pam_usertype.so isregular auth sufficient pam_sss.so forward_pass auth required pam_deny.so account required pam_access.so account required pam_unix.so account sufficient pam_ldap.so account sufficient pam_localuser.so account sufficient pam_usertype.so issystem account [default=bad success=ok user_unknown=ignore] pam_sss.so account required pam_permit.so password requisite pam_pwquality.so local_users_only password sufficient pam_unix.so yescrypt shadow nullok use_authtok password sufficient pam_ldap.so password [success=1 default=ignore] pam_localuser.so password sufficient pam_sss.so use_authtok password required pam_deny.so session optional pam_keyinit.so revoke session required pam_limits.so -session optional pam_systemd.so session optional pam_oddjob_mkhomedir.so session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid session required pam_unix.so session sufficient pam_ldap.so session optional pam_sss.so
6.5. Открыть для редактирования конфигурационный файл "/etc/authselect/fingerprint-auth".
sudo nano /etc/authselect/fingerprint-auth
6.6. Добавить строки в файл "/etc/authselect/fingerprint-auth".
account sufficient pam_ldap.so session sufficient pam_ldap.so
ВАЖНО:
Указанные строки требуется добавлять в строго определенные места файла "/etc/authselect/fingerprint-auth" по следующему алгоритму:
Каждую строку нужно поместить в блок со строками с таким же свойством (auth, account, password или session) сразу после строки с параметром "pam_unix.so".
# Generated by authselect # Do not modify this file manually, use authselect instead. Any user changes will be overwritten. # You can stop authselect from managing your configuration by calling 'authselect opt-out'. # See authselect(8) for more details. auth required pam_env.so auth [success=done default=bad] pam_fprintd.so auth required pam_deny.so account required pam_unix.so account sufficient pam_localuser.so account sufficient pam_usertype.so issystem account [default=bad success=ok user_unknown=ignore] pam_sss.so account required pam_permit.so password required pam_deny.so session optional pam_keyinit.so revoke session required pam_limits.so -session optional pam_systemd.so session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid session required pam_unix.so session optional pam_sss.so
6.7. Открыть для редактирования конфигурационный файл "/etc/pam.d/sssd-shadowutils".
sudo nano /etc/pam.d/sssd-shadowutils
6.8. Добавить строки в файл "/etc/pam.d/sssd-shadowutils".
auth sufficient pam_ldap.so account sufficient pam_ldap.so
ВАЖНО:
Указанные строки требуется добавлять в строго определенные места файла "/etc/pam.d/sssd-shadowutils" по следующему алгоритму:
Каждую строку нужно поместить в блок со строками с таким же свойством (auth, account, password или session) сразу после строки с параметром "pam_unix.so".
#%PAM-1.0 auth [success=done ignore=ignore default=die] pam_unix.so nullok try_first_pass auth sufficient pam_ldap.so auth required pam_deny.so account required pam_unix.so account sufficient pam_ldap.so account required pam_permit.so
6.9. Открыть для редактирования конфигурационный файл "/etc/pam.d/runuser".
sudo nano /etc/pam.d/runuser
6.10. Добавить строки в файл "/etc/pam.d/runuser".
session sufficient pam_ldap.so
ВАЖНО:
Указанные строки требуется добавлять в строго определенные места файла "/etc/pam.d/runuser" по следующему алгоритму:
Каждую строку нужно поместить в блок со строками с таким же свойством (auth, account, password или session) сразу после строки с параметром "pam_unix.so".
#%PAM-1.0 auth sufficient pam_rootok.so session optional pam_keyinit.so revoke session required pam_limits.so session required pam_unix.so session sufficient pam_ldap.so
Шаг 7. Настроить конфигурационный файл "/etc/nsswitch.conf".
Для этого необходимо:
7.1. Открыть для редактирования конфигурационный файл "/etc/nsswitch.conf".
sudo nano /etc/nsswitch.conf
7.2. Указать в конфигурационном файле "/etc/nsswitch.conf" параметр "ldap" во всех свойствах с параметром "sss".
# Generated by authselect # Do not modify this file manually, use authselect instead. Any user changes will be overwritten. # You can stop authselect from managing your configuration by calling 'authselect opt-out'. # See authselect(8) for more details. # In order of likelihood of use to accelerate lookup. passwd: files sss systemd ldap shadow: files sss ldap group: files sss systemd ldap hosts: files myhostname dns mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] ldap services: files sss ldap netgroup: files sss ldap automount: files sss ldap aliases: files ethers: files gshadow: files networks: files dns protocols: files publickey: files rpc: files
Шаг 8. Настроить службу "sssd".
Для этого необходимо:
8.1. Открыть для редактирования конфигурационный файл "/etc/sssd/sssd.conf".
sudo nano /etc/sssd/sssd.conf
8.2. Изменить значение параметра "id_provider" в блоке "domain/ВАШ.ДОМЕН" на "proxy".
id_provider = proxy
8.3. Добавить строки в блок "domain/ВАШ.ДОМЕН":
proxy_lib_name = ldap proxy_pam_target = sssdproxyldap enumerate = true
[sssd] config_file_version = 2 reconnection_retries = 3 services = nss, pam, sudo domains = AVANPOST.LOCAL [nss] filter_groups = root filter_users = root reconnection_retries = 3 memcache_timeout = 5 [pam] reconnection_retries = 3 [sudo] [domain/AVANPOST.LOCAL] entry_cache_timeout = 5 ldap_user_name = cn debug_level = 9 cache_credentials = False id_provider = proxy auth_provider = krb5 chpass_provider = krb5 access_provider = simple proxy_lib_name = ldap proxy_pam_target = sssdproxyldap enumerate = true dns_discovery_domain = default.avanpost.local ldap_uri = _srv_ ldap_schema = rfc2307bis ldap_referrals = False ldap_sudo_search_base = ou=sudoers,dc=system ldap_sudo_full_refresh_interval=86400 ldap_sudo_smart_refresh_interval=3600 ldap_search_base = dc=avanpost,dc=local ldap_user_search_base = dc=avanpost,dc=local ldap_user_object_class = krbPrincipal ldap_search_timeout = 60 ldap_network_timeout = 60 ldap_opt_timeout = 60 ldap_access_filter = (host=ALL) ldap_force_upper_case_realm = True ldap_id_use_start_tls = False ldap_sasl_mech = GSSAPI ldap_sasl_authid = host/cl08.avanpost.local@AVANPOST.LOCAL #ldap_default_bind_dn = cn=redos7,ou=hosts,dc=avanpost,dc=local #ldap_default_authtok_type = obfuscated_password #ldap_default_authtok = AAAQAC1KoRjLa4r8BW0uxfw6yeU98ftcPyLS/aSg/XdPLVGb/QHbFVJufkAye16gVVdDK9y8ahVvfyVG9HYXPwTkymwAAQID krb5_realm = AVANPOST.LOCAL krb5_canonicalize = False krb5_server = _srv_ krb5_kpasswd = _srv_
Шаг 9. Настроить службу "nslcd".
Для этого необходимо:
9.1. Открыть для редактирования конфигурационный файл "/etc/nslcd.conf".
sudo nano /etc/nslcd.conf
9.2. Изменить параметры в файле "/etc/nslcd.conf" по шаблону:
uid nslcd gid ldap uri ldap://[FQDN КД Avanpost DS] # FQDN или IP контроллера домена Avanpost DS base dc=[Домен2ур],dc=[Домен1ур] # Base DN для поиска объектов sasl_mech GSSAPI sasl_realm [REALM] # REALM домена Avanpost DS krb5_ccname /tmp/[FQDN РС].tkt # FQDN введенной в домен рабочей станции filter group (objectclass=posixGroup) map passwd uid krbPrincipalName
Заменить в строке 3 [FQDN КД Avanpost DS] на свой FQDN или IP контроллера домена Avanpost DS;
Заменить в строке 4 [Домен1ур] на свой домен первого уровня, а [Домен2ур] — на свой домен второго уровня;
Заменить в строке 6 [REALM] на свой REALM домена Avanpost DS;
Заменить в строке 7 [FQDN РС] на свой FQDN рабочей станции.
uid nslcd gid ldap uri ldap://192.168.1.23/ base dc=avanpost,dc=local sasl_mech GSSAPI sasl_realm AVANPOST.LOCAL krb5_ccname /tmp/cl08.avanpost.local.tkt filter group (objectclass=posixGroup) map passwd uid krbPrincipalName
Шаг 10. Настроить службу "k5start".
Для обновления тикетов Kerberos в crontab требуется добавить автозапуск скрипта.
Для этого необходимо:
10.1. Создать директорию "/opt/avanpost" и скрипт "/opt/avanpost/k5start_script.sh".
sudo mkdir /opt/avanpost sudo touch /opt/avanpost/k5start_script.sh && nano /opt/avanpost/k5start_script.sh
10.2. Поместить в "/opt/avanpost/k5start_script.sh" содержимое по шаблону:
#!/bin/bash /usr/bin/k5start -b -p /var/run/nslcd/k5start_nslcd.pid -o nslcd -g ldap -m 600 -f /etc/krb5.keytab -K 60 -u host/[FQDN РС] -k /tmp/[FQDN РС].tkt
Заменить в строке 2 [FQDN РС] на свой FQDN рабочей станции.
#!/bin/bash /usr/bin/k5start -b -p /var/run/nslcd/k5start_nslcd.pid -o nslcd -g ldap -m 600 -f /etc/krb5.keytab -K 60 -u host/cl08.avanpost.local -k /tmp/cl08.avanpost.local.tkt
Примечание:
Параметр "-u host/cl-rd-01.avanpost.local" - указывает на полный FQDN рабочей станции.
Параметр "-k /tmp/cl-rd-01.avanpost.local.tkt" - указывает путь к файлу, в который будет сохранен тикет, так же, к этому файлу будет обращаться NSLCD за тикетами.
10.3. Разрешить запуск скрипта "/opt/avanpost/k5start_script.sh".
sudo chmod +x /opt/avanpost/k5start_script.sh
10.4. Запустить crontab.
sudo crontab -e
10.5. Добавить настройку запуска скрипта "/opt/avanpost/k5start_script.sh" и сохранить.
@reboot /opt/avanpost/k5start_script.sh * */12 * * * /opt/avanpost/k5start_script.sh
10.6. Проверить настройку crontab.
sudo crontab -l
[root@cl-rd-01 ~]# sudo crontab -l @reboot /opt/avanpost/k5start_script.sh * */12 * * * /opt/avanpost/k5start_script.sh
Шаг 11. Запустить службы "sssd" и "nslcd", добавить службу "nslcd" в автозапуск.
Для этого необходимо выполнить команды:
sudo systemctl start sssd sudo systemctl enable --now nslcd
Шаг 12. Очистить кэш.
Для этого необходимо выполнить команду:
sudo sss_cache -E
Шаг 13. Перезагрузить рабочую станцию.
Для этого необходимо выполнить команду:
sudo reboot -i
Шаг 14. Проверить работу DNS серверов.
Для этого необходимо выполнить команды по шаблону:
dig srv _ldap._tcp.[REALM ADS] | grep 389 dig srv _ldap._tcp.[REALM MS AD] | grep 389
Заменить [REALM ADS] на свой REALM домена Avanpost DS;
Заменить [REALM MS AD] на свой REALM домена MS AD;
dig srv _ldap._tcp.avanpost.local | grep 389 dig srv _ldap._tcp.windomen.adds | grep 389
Рисунок 100. Пример вывода команд
Шаг 15. Авторизоваться на рабочей станции под доменным и под доверенным пользователем.
Для этого необходимо выполнить команды по шаблону и ввести пароли по запросу:
su - [Username ADS]@[REALM ADS] su - [Username MS AD]@[REALM MS AD]
Заменить [Username ADS] на свой username пользователя из домена Avanpost DS;
Заменить [REALM ADS] на свой REALM домена Avanpost DS;
Заменить [Username MS AD] на свой username пользователя из домена MS AD;
Заменить [REALM MS AD] на свой REALM домена MS AD;
su - lipov@AVANPOST.LOCAL #Заходим под доменным юзером Avanpost DS su - admin@windomen.adds #Заходим под доменным юзером MS AD
Рисунок 101. Пример успешных авторизаций
Внимание:
Логин для авторизации на рабочей станции указывается по шаблону: username@REALM
Для авторизации под пользователями, находящимися в домене Avanpost DS, требуется вводить REALM в верхнем регистре, например: "user@AVANPOST.LOCAL".
Для авторизации на рабочей станции под пользователем из доверенного домена MS AD следует указывать REALM в том регистре, который используется для домена в MS AD.
Рассмотрим примеры:
Рисунок 102. Пример домена в MS AD в нижнем регистре
В данном случае используется нижний регистр, значит REALM для входа следует указывать в нижнем регистре: "user@co.avanpost.com".
Рисунок 103. Пример домена в MS AD в комбинированном регистре
В данном случае используется комбинированный регистр, значит REALM для входа следует указывать также: "user@TRUST01.local".
Если авторизации под доменным пользователем, созданном в Avanpost DS, и под доверенным пользователем, созданном в MS AD, успешны, настройка доверенных отношений на рабочей станции завершена.