ActiveDirectory/Login: различия между версиями

Материал из ALT Linux Wiki
м (про avahi-daemon)
(не показана 41 промежуточная версия 8 участников)
Строка 1: Строка 1:
Инструкция по вводу рабочей станции под управлением ALT Linux в домен Active Directory (работающий под Windows или под [[SambaAD|Samba в режиме AD DC]]).
Инструкция по вводу рабочей станции под управлением ALT Linux в домен Active Directory (работающий под Windows или под [[SambaAD|Samba в режиме AD DC]]).
Устаревшая инструкция: [[Ввод в домен на базе Windows 2003]]
Устаревшая инструкция: [[Ввод в домен на базе Windows 2003]]
{{Attention|Если Ваш домен имеет суффикс .local - необходимо отключить avahi-daemon (подробнее [[ActiveDirectory/Login#Примечания|ниже, пункт 2 примечаний]]).}}


'''Параметры домена'''
'''Параметры домена'''
Строка 11: Строка 13:
|Рабочая группа||SCHOOL
|Рабочая группа||SCHOOL
|-
|-
|Имя компьютера в Netbios||HOST-15
|Имя компьютера в Netbios||WS
|-
|-
|Имя пользователя-администратора||Administrator
|Имя пользователя-администратора||Administrator
Строка 17: Строка 19:
|Пароль администратора||Pa$$word
|Пароль администратора||Pa$$word
|}
|}
<div id="prep"></div>
<div id="prep"></div>
= Подготовка =
= Подготовка =


Строка 48: Строка 53:
===== Способ 2: По протоколу [https://tools.ietf.org/html/rfc867 RFC 867] =====
===== Способ 2: По протоколу [https://tools.ietf.org/html/rfc867 RFC 867] =====


На сервере включается через xinetd daytime-tcp:
На сервере включается через xinetd daytime-tcp <ref>Cм получение прав root: </ref>:


  # chkconfig --list | grep daytime-tcp
  # chkconfig --list | grep daytime-tcp
Строка 66: Строка 71:
  ntpdate pool.ntp.org
  ntpdate pool.ntp.org
<div id="setup"></div>
<div id="setup"></div>
= Ввод в домен в Центре управления системой =
 
= Ввод в домен в Центре управления системой =  
 
Предварительная настройка - [[PreliminaryActions]]


В Центре управления системой перейдите в раздел {{path|Пользователи → Аутентификация}}
В Центре управления системой перейдите в раздел {{path|Пользователи → Аутентификация}}


Для ввода компьютера в Active Directory потребуется установить пакет {{pkg|task-auth-ad-sssd}} и все его зависимости.
Для ввода компьютера в Active Directory потребуется установить пакет {{pkg|task-auth-ad-sssd}} и все его зависимости.
 
[[Файл:Qwe.png|мини|слева|x400px|Clear|]]  
[[Файл:Alterator-auth-new.png]]
<div style="clear:{{{1|both}}};"></div>


Выберите пункт «Домен Active Directory» и заполните поля. Нажмите кнопку «Применить».
Выберите пункт «Домен Active Directory» и заполните поля. Нажмите кнопку «Применить».
Строка 83: Строка 91:
= Проверка работы =
= Проверка работы =


<pre># getent passwd | egrep :[0-9]{5} | grep ^ivan
<pre># getent passwd ivan
ivan:*:10005:10002:ivan:/home/SCHOOL/ivan:/bin/bash
ivan:*:10005:10002:ivan:/home/SCHOOL/ivan:/bin/bash


Строка 98: Строка 106:
# net ads testjoin
# net ads testjoin
Join is OK</pre>
Join is OK</pre>
{{Note| Вы не увидите пользователей из AD с помощью команды <code># getent passwd </code> на клиентской машине. Этот функционал отключен по-умолчанию для того чтобы сократить нагрузку на серверы. Поэтому для проверки необходимо точно указать имя пользователя <code># getent passwd имя_пользователя </code>. Список пользователей можно посмотреть на сервере командой <code># samba-tool user list</code>}}


= Примечания =
= Примечания =
# Ограничение: имя домена должно указывать на DC. Если это не так, поправляйте /etc/krb5.conf и вводите вручную, либо в файл /etc/hosts добавьте строку с контроллером домена (кдц) ДОМЕН.local и перезапустите сеть. После этого проверьте из командной строки ping ДОМЕН.local и вводите в домен
# Ограничение: имя домена должно указывать на DC. Если это не так, поправляйте /etc/krb5.conf и вводите вручную, либо в файл /etc/hosts добавьте строку с контроллером домена (кдц) ДОМЕН.local и перезапустите сеть. После этого проверьте из командной строки ping ДОМЕН.local и вводите в домен
# При указании домена, имеющего суффикс '''.local''', потребуется на сервере и подключаемых компьютерах под управлением Linux <u>'''отключить''' службу {{cmd|avahi-daemon}}</u> (доменная зона "local." используется в технологии zeroconf).
# При указании домена, имеющего суффикс '''.local''', потребуется на сервере и подключаемых компьютерах под управлением Linux <u>'''отключить''' службу {{cmd|avahi-daemon}}</u> - <code># chkconfig avahi-daemon off; reboot </code> (доменная зона "local." используется в технологии zeroconf).
# Следите за синхронизацией времени на клиенте и сервере.
# Следите за синхронизацией времени на клиенте и сервере.
# Для предотвращения кэширования имён пользователя отключите службу {{cmd|nscd}}.
# Для предотвращения кэширования имён пользователя отключите службу {{cmd|nscd}}.
# В новых версиях Samba до запуска службы {{cmd|winbind}} должна запускаться служба {{cmd|smb}}.
# В новых версиях Samba до запуска службы {{cmd|winbind}} должна запускаться служба {{cmd|smb}}.
# Если возникает проблема просмотра билетов Kerberos под доменным пользователем, скопируйте правильный krb5.conf из samba:  
# Если возникает проблема просмотра билетов Kerberos под доменным пользователем, скопируйте правильный krb5.conf из samba: <source lang="bash">rm -f /etc/krb5.conf
<source lang="bash">rm -f /etc/krb5.conf
cp /var/lib/samba/smb_krb5/krb5.conf* /etc/krb5.conf</source>
cp /var/lib/samba/smb_krb5/krb5.conf* /etc/krb5.conf</source>
<div id="login"></div>
# Для возможности входа в ОС под доменным пользователем при его недоступности можно включить опцию кэширования учетных данных в конфиге SSSD (подробнее [https://www.altlinux.org/SSSD/AD#.D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0_sssd-.D0.BC.D0.BE.D0.B4.D1.83.D0.BB.D1.8F тут], опция '''cache_credentials''')
 
= Настройка окна входа =
= Настройка окна входа =


Строка 186: Строка 196:
3. Входим доменным пользователем
3. Входим доменным пользователем


4. Открываем ресурс в файловом менеджере (например, по адресу {{path|smb://server/sysvol}}). Ресурс смонтирован по пути {{path|/run/<uid_пользователя>/gvfs}}.
4. Открываем ресурс в файловом менеджере (например, по адресу {{path|smb://server/sysvol}}). Ресурс смонтирован по пути {{path|/var/run/<uid_пользователя>/gvfs}}.


Другой вариант (полезно для скриптов в автозапуске):  
Другой вариант (полезно для скриптов в автозапуске):  
  gvfs-mount smb://server/sysvol/
  gvfs-mount smb://server/sysvol/


{{note|Если необходимо открывать что-то с ресурса в WINE, в {{cmd|winecfg}} добавьте диск с путём {{path|/run/<uid_пользователя>/gvfs}}.}}
{{note|Если необходимо открывать что-то с ресурса в WINE, в {{cmd|winecfg}} добавьте диск с путём {{path|/var/run/<uid_пользователя>/gvfs}}.}}


== Через pam_mount ==
== Через pam_mount ==
Строка 201: Строка 211:


2. Прописываем pam_mount в схему {{path|/etc/pam.d/system-auth-sss}}:
2. Прописываем pam_mount в схему {{path|/etc/pam.d/system-auth-sss}}:
(перед {{term|auth            required        pam_sss.so}})
  auth            optional        pam_mount.so
  auth            optional        pam_mount.so
и
и в секцию session:
  session        optional        pam_mount.so
  session        optional        pam_mount.so


3. Устанавливаем правило монтирования ресурса в файле {{path|/etc/security/pam_mount.conf.xml}} (перед тегом <cifsmount>):
3. Устанавливаем правило монтирования ресурса в файле {{path|/etc/security/pam_mount.conf.xml}} (перед тегом <cifsmount>):
<source lang="xml"><volume uid="10001-2000200000" fstype="cifs" server="c228" path="sysvol" mountpoint="/home/SCHOOL/%(USER)/share" options="sec=krb5,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(USERGID),file_mode=0664,dir_mode=0775" /></source>
<source lang="xml"><volume uid="10000-2000200000" fstype="cifs" server="c228" path="sysvol" mountpoint="~/share" options="sec=krb5,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(USERGID),file_mode=0664,dir_mode=0775" /></source>
где
где
* '''uid="10001-2000200000"''' — диапазон присваиваемых uid для доменных пользователей (см. параметр {{cmd|idmap config * : range}} в файле {{path|/etc/samba/smb.conf}})
* '''uid="10000-2000200000"''' — диапазон присваиваемых для доменных пользователей UID (подходит и для Winbind и для SSSD)
* '''server="c228"''' — имя сервера с ресурсом
* '''server="c228"''' — имя сервера с ресурсом
* '''path="sysvol"''' — имя файлового ресурса
* '''path="sysvol"''' — имя файлового ресурса
* '''mountpoint="/home/SCHOOL/%(USER)/share"''' — путь монтирования. Для доменных пользователей SCHOOL — имя рабочей группы, share — каталог в домашней папке пользователя
* '''mountpoint="~/share"''' — путь монтирования в домашней папке пользователя
 
{{Attention|Обязательно указывайте настоящее имя сервера в параметре {{term|server}}, а не имя домена}}
 
== Через autofs ==
 
В этом случае заданный ресурс подключается <u>автоматически при каждом входе</u> пользователя.
 
1. Устанавливаем {{pkg|kde5-autofs-shares}}:
apt-get install kde5-autofs-shares
 
2. Следуем инструкции по подключению в разделе [[Альт_Рабочая_станция_К_8_советы]].


= Групповые политики =
= Групповые политики =
Строка 237: Строка 260:


{{Note|Планируется поддержка других групповых политик средствами подключаемых модулей}}
{{Note|Планируется поддержка других групповых политик средствами подключаемых модулей}}
{{примечания}}
{{note| Получение прав root см. [[root]] }}


== Ссылки по групповым политикам ==
== Ссылки по групповым политикам ==

Версия от 12:30, 28 июня 2019

Инструкция по вводу рабочей станции под управлением ALT Linux в домен Active Directory (работающий под Windows или под Samba в режиме AD DC). Устаревшая инструкция: Ввод в домен на базе Windows 2003

Внимание! Если Ваш домен имеет суффикс .local - необходимо отключить avahi-daemon (подробнее ниже, пункт 2 примечаний).


Параметры домена

Параметр Значение
Имя домена SCHOOL.ALT
Рабочая группа SCHOOL
Имя компьютера в Netbios WS
Имя пользователя-администратора Administrator
Пароль администратора Pa$$word


Подготовка

Установка пакетов

Внимание! Аутентификация через winbind в новых сборках Samba не работает, используйте аутентификацию через task-auth-ad-sssd.


С версии alterator-auth-0.31-alt1

apt-get install task-auth-ad-sssd
Примечание: Для старых версий:
apt-get install alterator-auth sssd-ad samba-common-tools


Требуемые версии:

  • pam-config >= 1.7.0-alt1
  • alterator-auth >= 0.26-alt1

Возможно, следует обновить установленный дистрибутив из репозитория.

Синхронизация времени

С версии alterator-auth 0.28 синхронизация времени производится автоматически с контроллером домена.

Для более ранних версий:

Способ 1: Через net time
net time set -S <имя домена>
Способ 2: По протоколу RFC 867

На сервере включается через xinetd daytime-tcp [1]:

# chkconfig --list | grep daytime-tcp
        daytime-tcp:    вкл

А на клиенте — служба settime-rfc867:

chkconfig settime-rfc867 on
service settime-rfc867 start
Способ 3: Через Центр управления системой → Дата и время

Включите флажок «Получать точное время с NTP-сервера» и укажите в поле справа pool.ntp.org. После этого нажмите кнопку «Применить».

Способ 4: Через ntpdate
ntpdate pool.ntp.org

Ввод в домен в Центре управления системой

Предварительная настройка - PreliminaryActions

В Центре управления системой перейдите в раздел Пользователи → Аутентификация

Для ввода компьютера в Active Directory потребуется установить пакет task-auth-ad-sssd и все его зависимости.

Qwe.png

Выберите пункт «Домен Active Directory» и заполните поля. Нажмите кнопку «Применить».

Ввод в домен в командной строке

# system-auth write ad school.alt host-15 school 'administrator' 'Pa$$word'
Joined 'HOST-15' to dns domain 'school.alt'

Проверка работы

# getent passwd ivan
ivan:*:10005:10002:ivan:/home/SCHOOL/ivan:/bin/bash

# net ads info
LDAP server: 192.168.1.1
LDAP server name: c228.school.alt
Realm: SCHOOL.ALT
Bind Path: dc=SCHOOL,dc=ALT
LDAP port: 389
Server time: Ср, 22 апр 2015 16:22:47 MSK
KDC server: 192.168.1.1
Server time offset: -1

# net ads testjoin
Join is OK
Примечание: Вы не увидите пользователей из AD с помощью команды # getent passwd на клиентской машине. Этот функционал отключен по-умолчанию для того чтобы сократить нагрузку на серверы. Поэтому для проверки необходимо точно указать имя пользователя # getent passwd имя_пользователя . Список пользователей можно посмотреть на сервере командой # samba-tool user list


Примечания

  1. Ограничение: имя домена должно указывать на DC. Если это не так, поправляйте /etc/krb5.conf и вводите вручную, либо в файл /etc/hosts добавьте строку с контроллером домена (кдц) ДОМЕН.local и перезапустите сеть. После этого проверьте из командной строки ping ДОМЕН.local и вводите в домен
  2. При указании домена, имеющего суффикс .local, потребуется на сервере и подключаемых компьютерах под управлением Linux отключить службу avahi-daemon - # chkconfig avahi-daemon off; reboot (доменная зона "local." используется в технологии zeroconf).
  3. Следите за синхронизацией времени на клиенте и сервере.
  4. Для предотвращения кэширования имён пользователя отключите службу nscd.
  5. В новых версиях Samba до запуска службы winbind должна запускаться служба smb.
  6. Если возникает проблема просмотра билетов Kerberos под доменным пользователем, скопируйте правильный krb5.conf из samba:
    rm -f /etc/krb5.conf
    cp /var/lib/samba/smb_krb5/krb5.conf* /etc/krb5.conf
    
  7. Для возможности входа в ОС под доменным пользователем при его недоступности можно включить опцию кэширования учетных данных в конфиге SSSD (подробнее тут, опция cache_credentials)

Настройка окна входа

Настройка LightDM

В /etc/lightdm/lightdm.conf раскомментируйте строку в группе [SeatDefaults]:

greeter-hide-users=true

Это позволит вводить имя пользователя вручную, а не прокручивать огромный список доступных доменныx пользователей.

Также полезно выключить выбор языка. В файле /etc/lightdm/lightdm-gtk-greeter.conf в группе [greeter] укажите

show-language-selector=false

В новых версиях lightdm-gtk-greeter можно указать кнопки явно:

show-indicators=a11y;power

Полный перечень доступных кнопок:

show-indicators=a11y;power;session;language

Отображение глобальных групп на локальные

Установка модуля ролей

apt-get install libnss-role

Настройка ролей и привилегий

Добавляем роль локальных администраторов:

groupadd -r localadmins
Примечание: Лучше использовать группу localadmins (вместо admins) по избежание конфликта с группой admins во FreeIPA


Создаём привилегию на право удалённого доступа (по протоколу ssh):

groupadd -r remote

Включаем удалённый доступ только для группы remote:

control sshd-allow-groups enabled
sed -i 's/AllowGroups.*/AllowGroups = remote/' /etc/openssh/sshd_config

Настраиваем список привилегий для пользователей (для роли users):

roleadd users cdwriter cdrom audio proc radio camera floppy xgrp scanner uucp fuse

Настраиваем список привилегий для администраторов (для роли admins):

roleadd localadmins wheel remote vboxusers

Настраиваем отображение локальных привилегий, назначенных локальным ролям, на глобальные группы безопасности:

roleadd 'Domain Users' users
roleadd 'Domain Admins' localadmins

Просматриваем список назначенных ролей и привилегий:

rolelst
id ivan

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

Подключение файловых ресурсов

Рассматриваемые способы позволяют подключать файловые ресурсы (file shares) для доменного пользователя без повторного ввода пароля (SSO, Single Sign-On).

Через gvfs

Примечание: Способ актуален для дистрибутивов, использующих gvfs (например, Кентавр, Simply Linux, Basealt Workstation, СПТ).


Недостаток такого способа — необходимо открыть ресурс в файловом менеджере (Caja, Pcmanfm). Однако можно открывать любые ресурсы на любых серверах, входящие в домен Active Directory.

1. Устанавливаем необходимые пакеты (с правами root):

apt-get install fuse-gvfs gvfs-backend-smb gvfs-utils

2. Включаем для пользователя в группу fuse (с правами root):

gpasswd -a <пользователь> fuse

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

Примечание: Следующий рецепт не работает:
control fusermount public
systemctl restart systemd-udevd


3. Входим доменным пользователем

4. Открываем ресурс в файловом менеджере (например, по адресу smb://server/sysvol). Ресурс смонтирован по пути /var/run/<uid_пользователя>/gvfs.

Другой вариант (полезно для скриптов в автозапуске):

gvfs-mount smb://server/sysvol/
Примечание: Если необходимо открывать что-то с ресурса в WINE, в winecfg добавьте диск с путём /var/run/<uid_пользователя>/gvfs.


Через pam_mount

В этом случае заданный ресурс подключается с заданного сервера автоматически при каждом входе доменным пользователем.

1. Устанавливаем pam_mount:

apt-get install pam_mount

2. Прописываем pam_mount в схему /etc/pam.d/system-auth-sss:

(перед auth required pam_sss.so)

auth            optional        pam_mount.so

и в секцию session:

session         optional        pam_mount.so

3. Устанавливаем правило монтирования ресурса в файле /etc/security/pam_mount.conf.xml (перед тегом <cifsmount>):

<volume uid="10000-2000200000" fstype="cifs" server="c228" path="sysvol" mountpoint="~/share" options="sec=krb5,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(USERGID),file_mode=0664,dir_mode=0775" />

где

  • uid="10000-2000200000" — диапазон присваиваемых для доменных пользователей UID (подходит и для Winbind и для SSSD)
  • server="c228" — имя сервера с ресурсом
  • path="sysvol" — имя файлового ресурса
  • mountpoint="~/share" — путь монтирования в домашней папке пользователя
Внимание! Обязательно указывайте настоящее имя сервера в параметре server, а не имя домена


Через autofs

В этом случае заданный ресурс подключается автоматически при каждом входе пользователя.

1. Устанавливаем kde5-autofs-shares:

apt-get install kde5-autofs-shares

2. Следуем инструкции по подключению в разделе Альт_Рабочая_станция_К_8_советы.

Групповые политики

Групповые политики (GPO) на Linux применяются только контроль входа через SSSD и средства Centrify.

SSSD

SSSD имеет внутреннюю поддержку следующих групповых политик:

Политика
Allow log on locally
Allow log on through Remote Desktop Services
Access this computer from the network
Allow log on as a batch job
Allow log on as a service


Примечание: Планируется поддержка других групповых политик средствами подключаемых модулей


  1. Cм получение прав root:
Примечание: Получение прав root см. root


Ссылки по групповым политикам

Ссылки