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

Материал из ALT Linux Wiki
Перейти к: навигация, поиск
(Ввод в домен в командной строке)
(Ссылки)
 
(не показано 69 промежуточных версий 16 участников)
Строка 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
Строка 18: Строка 20:
 
|}
 
|}
  
 +
 +
<div id="prep"></div>
  
 
= Подготовка =
 
= Подготовка =
  
 
== Установка пакетов ==
 
== Установка пакетов ==
С версии {{prg|alterator-auth-0.29.5-alt2}}
 
  
apt-get install task-auth-ad samba
+
{{Attention|Аутентификация через winbind в новых сборках Samba не работает, используйте аутентификацию через {{pkg|task-auth-ad-sssd}}.}}
  
{{note|Для старых версий: <source lang="text">apt-get install samba samba-winbind samba-winbind-clients alterator-auth</source>}}
+
С версии {{prg|alterator-auth-0.31-alt1}}
 +
 
 +
apt-get install task-auth-ad-sssd
 +
 
 +
{{note|Для старых версий: <source lang="text">apt-get install alterator-auth sssd-ad samba-common-tools</source>}}
  
 
Требуемые версии:
 
Требуемые версии:
Строка 32: Строка 39:
 
* {{pkg|alterator-auth}} >= 0.26-alt1
 
* {{pkg|alterator-auth}} >= 0.26-alt1
  
Возможно, следует [[Обновление ОС#В пределах версии|обновить]] установленный дистрибутив версии 7.0 из репозитория.
+
Возможно, следует [[Обновление ОС#В пределах версии|обновить]] установленный дистрибутив из репозитория.
  
 
== Синхронизация времени ==
 
== Синхронизация времени ==
Строка 46: Строка 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
Строка 63: Строка 70:
  
 
  ntpdate pool.ntp.org
 
  ntpdate pool.ntp.org
 +
<div id="setup"></div>
 +
 +
= Ввод в домен в Центре управления системой =
  
= Ввод в домен в Центре управления системой =
+
Предварительная настройка - [[PreliminaryActions]]
  
 
В Центре управления системой перейдите в раздел {{path|Пользователи → Аутентификация}}
 
В Центре управления системой перейдите в раздел {{path|Пользователи → Аутентификация}}
  
Для ввода компьютера в Active Directory потребуется установить пакет {{pkg|task-auth-ad}} и все его зависимости.
+
Для ввода компьютера в 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» и заполните поля. Нажмите кнопку «Применить».
  
 
= Ввод в домен в командной строке =
 
= Ввод в домен в командной строке =
 
Убедитесь что служба smb запущена:
 
systemctl enable smb
 
systemctl start smb
 
  
 
<pre># system-auth write ad school.alt host-15 school 'administrator' 'Pa$$word'
 
<pre># system-auth write ad school.alt host-15 school 'administrator' 'Pa$$word'
 
Joined 'HOST-15' to dns domain 'school.alt'</pre>
 
Joined 'HOST-15' to dns domain 'school.alt'</pre>
 +
<div id="check"></div>
 +
= Настройка SSSD =
 +
См. статью [[SSSD/AD]]
  
 
= Проверка работы =
 
= Проверка работы =
  
<pre># wbinfo -u | grep ivan
+
<pre># getent passwd ivan
ivan
 
 
 
# wbinfo -a ivan
 
Enter ivan's password:
 
plaintext password authentication succeeded
 
Enter ivan's password:
 
challenge/response password authentication succeeded
 
 
 
# getent passwd | egrep :[0-9]{5} | grep ^ivan
 
 
ivan:*:10005:10002:ivan:/home/SCHOOL/ivan:/bin/bash
 
ivan:*:10005:10002:ivan:/home/SCHOOL/ivan:/bin/bash
  
Строка 105: Строка 105:
 
Server time: Ср, 22 апр 2015 16:22:47 MSK
 
Server time: Ср, 22 апр 2015 16:22:47 MSK
 
KDC server: 192.168.1.1
 
KDC server: 192.168.1.1
Server time offset: -1</pre>
+
Server time offset: -1
 +
 
 +
# net ads testjoin
 +
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>
 +
# Если у вас домен Windows 2003 (не R2), то в директивы default_tgs_enctypes, default_tkt_enctypes и preferred_enctypes файла /etc/krb5.conf добавьте ещё DES3-CBC-SHA1.
 +
# Для возможности входа в ОС под доменным пользователем при его недоступности можно включить опцию кэширования учетных данных в конфиге 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''')
  
 
= Настройка окна входа =
 
= Настройка окна входа =
Строка 130: Строка 136:
  
 
В новых версиях lightdm-gtk-greeter можно указать кнопки явно:
 
В новых версиях lightdm-gtk-greeter можно указать кнопки явно:
  show-indicators=a11y;power
+
  show-indicators=~a11y;~power
  
 
Полный перечень доступных кнопок:
 
Полный перечень доступных кнопок:
  show-indicators=a11y;power;session;language
+
  show-indicators=~a11y;~power;~session;~language
 +
 
 +
{{Note|В lightdm-gtk-greeter, начиная с версии {{pkg|2.0.7-alt2}}, можно настроить автоматическое заполнение поля «Имя пользователя» именем последнего пользователя входившего в систему. Для этого в файле {{path|/etc/lightdm/lightdm-gtk-greeter.conf}} (группа {{cmd|[greeter]}}) необходимо указать:
 +
<source lang="text">enter-username = true</source>}}
  
 
= Отображение глобальных групп на локальные =
 
= Отображение глобальных групп на локальные =
 
+
{{note|Первые два пункта данного раздела выполняются автоматически, если АРМ вводится в домен с помощью {{pkg|task-auth-ad-sssd}}}}
 
== Установка модуля ролей ==
 
== Установка модуля ролей ==
 
  apt-get install libnss-role
 
  apt-get install libnss-role
Строка 142: Строка 151:
 
== Настройка ролей и привилегий ==
 
== Настройка ролей и привилегий ==
 
Добавляем роль локальных администраторов:
 
Добавляем роль локальных администраторов:
  groupadd -r localadmins
+
  # groupadd -r localadmins
  
 
{{Note|Лучше использовать группу localadmins (вместо admins) по избежание конфликта с группой admins во FreeIPA}}
 
{{Note|Лучше использовать группу localadmins (вместо admins) по избежание конфликта с группой admins во FreeIPA}}
  
 
Создаём привилегию на право удалённого доступа (по протоколу ssh):
 
Создаём привилегию на право удалённого доступа (по протоколу ssh):
  groupadd -r remote
+
  # groupadd -r remote
  
 
Включаем удалённый доступ только для группы remote:
 
Включаем удалённый доступ только для группы remote:
  control sshd-allow-groups enabled
+
  # control sshd-allow-groups enabled
  sed -i 's/AllowGroups.*/AllowGroups = remote/' /etc/openssh/sshd_config
+
  # sed -i 's/AllowGroups.*/AllowGroups = remote/' /etc/openssh/sshd_config
  
 
Настраиваем список привилегий для пользователей (для роли users):
 
Настраиваем список привилегий для пользователей (для роли users):
  roleadd users cdwriter cdrom audio proc radio camera floppy xgrp scanner uucp fuse
+
  # roleadd users cdwriter cdrom audio proc radio camera floppy xgrp scanner uucp fuse
  
 
Настраиваем список привилегий для администраторов (для роли admins):
 
Настраиваем список привилегий для администраторов (для роли admins):
  roleadd localadmins wheel remote vboxusers
+
  # roleadd localadmins wheel remote vboxusers
  
 
Настраиваем отображение локальных привилегий, назначенных локальным ролям, на глобальные группы безопасности:
 
Настраиваем отображение локальных привилегий, назначенных локальным ролям, на глобальные группы безопасности:
  roleadd 'Domain Users' users
+
  # roleadd 'Domain Users' users
  roleadd 'Domain Admins' localadmins
+
или
 +
# roleadd 'Пользователи домена' users
 +
Далее
 +
  # roleadd 'Domain Admins' localadmins
 +
или
 +
# roleadd 'Администраторы домена' localadmins
  
 
Просматриваем список назначенных ролей и привилегий:
 
Просматриваем список назначенных ролей и привилегий:
  rolelst
+
  # rolelst
  id ivan
+
  # id ivan
  
 
Данная настройка назначает заданный список локальных групп (привилегий) всем пользователям, входящим в заданные локальные группы (роли). А также назначает локальные роли для глобальных групп в домене.
 
Данная настройка назначает заданный список локальных групп (привилегий) всем пользователям, входящим в заданные локальные группы (роли). А также назначает локальные роли для глобальных групп в домене.
 +
 +
== Дополнительные роли ==
 +
Соответственно, если надо выдать права администраторов АРМ пользователям, которые не являются Domain Admins,
 +
то нужно завести новую группу в AD (например, PC Admins), добавить туда необходимых пользователей.
 +
Затем на АРМ добавить роль для данной группы:
 +
# roleadd 'PC Admins' localadmins
 +
# rolelst
 +
users: cdwriter cdrom audio video proc radio camera floppy xgrp scanner uucp vboxusers fuse tsusers
 +
localadmins: wheel
 +
domain users: users
 +
domain admins: localadmins
 +
pc admins: localadmins
 +
 +
После этого (и после разрешения [[sudo]] для группы wheel) под пользователем входящим в группу PC Admins
 +
можно запускать команду повышения прав sudo.
 +
<pre>user@alt8 ~ $ su - petrov
 +
Password:
 +
petrov@alt8 ~ $ id
 +
uid=445010929(petrov) gid=445000513(domain users) группы=445000513(domain users),10(wheel),14(uucp),19(proc),
 +
22(cdrom),71(floppy),80(cdwriter),81(audio),83(radio),100(users),458(tsusers), 459(localadmins),466(fuse),468(video),
 +
480(camera),492(vboxusers),498(xgrp),499(scanner),445010930(pc admins)
 +
petrov@alt8 ~ $ sudo apt-get update
 +
Пароль:
 +
Получено: 1 http://ftp.altlinux.org p8/branch/x86_64 release [880B]
 +
Получено: 2 http://ftp.altlinux.org p8/branch/x86_64-i586 release [537B]
 +
Получено: 3 http://ftp.altlinux.org p8/branch/noarch release [673B]
 +
Получено 2090B за 0s (36,9kB/s).
 +
Найдено http://ftp.altlinux.org p8/branch/x86_64/classic pkglist
 +
Найдено http://ftp.altlinux.org p8/branch/x86_64/classic release
 +
Найдено http://ftp.altlinux.org p8/branch/x86_64-i586/classic pkglist
 +
Найдено http://ftp.altlinux.org p8/branch/x86_64-i586/classic release
 +
Найдено http://ftp.altlinux.org p8/branch/noarch/classic pkglist
 +
Найдено http://ftp.altlinux.org p8/branch/noarch/classic release
 +
Чтение списков пакетов... Завершено
 +
Построение дерева зависимостей... Завершено
 +
</pre>
  
 
= Подключение файловых ресурсов =
 
= Подключение файловых ресурсов =
Строка 173: Строка 223:
 
Рассматриваемые способы позволяют подключать файловые ресурсы (file shares) для доменного пользователя без повторного ввода пароля (SSO, Single Sign-On).
 
Рассматриваемые способы позволяют подключать файловые ресурсы (file shares) для доменного пользователя без повторного ввода пароля (SSO, Single Sign-On).
  
== Через gvfs ==
+
== Через gio ==
  
{{note|Способ актуален для дистрибутивов, использующих gvfs (например, Кентавр, Simply Linux, Basealt Workstation, СПТ).}}
+
{{note|Способ актуален для дистрибутивов, использующих gio (ранее — gvfs) (например, Кентавр, Simply Linux, Basealt Workstation, СПТ).}}
  
 
Недостаток такого способа — необходимо открыть ресурс в файловом менеджере (Caja, Pcmanfm). Однако можно открывать любые ресурсы на любых серверах, входящие в домен Active Directory.
 
Недостаток такого способа — необходимо открыть ресурс в файловом менеджере (Caja, Pcmanfm). Однако можно открывать любые ресурсы на любых серверах, входящие в домен Active Directory.
  
 
1. Устанавливаем необходимые пакеты (с правами root):
 
1. Устанавливаем необходимые пакеты (с правами root):
  apt-get install fuse-gvfs gvfs-backend-smb gvfs-utils
+
  apt-get install fuse-gvfs gvfs-backend-smb libgio
  
2. Включаем для пользователя в группу ''fuse'' (с правами root):
+
2. Включаем пользователя в группу ''fuse'' (с правами root):
 
  gpasswd -a <пользователь> fuse
 
  gpasswd -a <пользователь> fuse
  
Как включить доменных пользователей в локальную группу см. выше.
+
{{Attention|Начиная с p9 членства в группе fuse недостаточно, требуется разрешить для всех доступ к fuse под root:
 
 
{{Note|Следующий рецепт не работает:
 
 
  control fusermount public
 
  control fusermount public
systemctl restart systemd-udevd
 
 
}}
 
}}
  
 
3. Входим доменным пользователем
 
3. Входим доменным пользователем
  
4. Открываем ресурс в файловом менеджере (например, по адресу {{path|smb://server/sysvol}}). Ресурс смонтирован по пути {{path|/run/<uid_пользователя>/gvfs}}.
+
4. Открываем ресурс в файловом менеджере (например, по адресу {{path|smb://server/sysvol}}). Ресурс смонтирован по пути {{path|/var/run/<uid_пользователя>/gvfs}} или /var/run/user/<uid_пользователя>/gvfs/smb-share:server=сервер,share=ресурс
  
 
Другой вариант (полезно для скриптов в автозапуске):  
 
Другой вариант (полезно для скриптов в автозапуске):  
  gvfs-mount smb://server/sysvol/
+
  gio 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 ==
Строка 208: Строка 255:
 
  apt-get install pam_mount
 
  apt-get install pam_mount
  
2. Прописываем pam_mount в схему {{path|/etc/pam.d/system-auth-winbind}}:
+
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
 +
 +
{{Attention|Если у Вас ресурс монтируется дважды, то можно исправить это, добавив в session перед строкой с pam_mount:
 +
<pre>session [success=1 default=ignore]  pam_succeed_if.so  service = systemd-user quiet</pre>
 +
}}
  
 
3. Устанавливаем правило монтирования ресурса в файле {{path|/etc/security/pam_mount.conf.xml}} (перед тегом <cifsmount>):
 
3. Устанавливаем правило монтирования ресурса в файле {{path|/etc/security/pam_mount.conf.xml}} (перед тегом <cifsmount>):
<source lang="xml"><volume uid="10000-2000000" 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="10000-20000000"''' — диапазон присваиваемых 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}}, а не имя домена}}
 +
 
 +
{{Attention|По умолчанию для монтирования используется smb версии 1.0, если у вас он отключен, то укажите в параметрах версию 2 или 3.
 +
<source lang="xml"><volume uid="10000-2000200000" fstype="cifs" server="c228" path="sysvol" mountpoint="~/share" options="sec=krb5,vers=2.0,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(USERGID),file_mode=0664,dir_mode=0775" /></source>
 +
}}
 +
 
 +
Для проверки можно попробовать смонтировать ресурс в сессии:
 +
<source> mount.cifs //server/share /mnt/  -o vers=2.0,user=altlinux</source>
 +
Также можно проверить доступность ресурса с помощью smbclient, например:
 +
<source>
 +
smbclient -L server -U altlinux -m SMB2
 +
</source>
 +
 
 +
== Через autofs ==
 +
 
 +
В этом случае заданный ресурс подключается <u>автоматически при каждом обращении</u> пользователя. И отключается после определенного времени бездействия (определяется конфигуацией Autofs).
 +
==== Основная статья AutoFS ====
 +
https://www.altlinux.org/Autofs
 +
==== Для дистрибутивов c KDE ====
 +
1. Устанавливаем {{pkg|kde5-autofs-shares}}:
 +
apt-get install kde5-autofs-shares
 +
 
 +
2. Следуем инструкции по подключению в разделе [[Альт_Рабочая_станция_К_8_советы]].
  
 
= Групповые политики =
 
= Групповые политики =
  
{{Attention|Групповые политики (GPO) на Linux не применяются. Исключение составляет только контроль входа через sssd и средства Centrify}}
+
Групповые политики (GPO) на Linux применяются только контроль входа через [[SSSD]] и средства Centrify.
 +
 
 +
== SSSD ==
 +
 
 +
SSSD имеет внутреннюю поддержку следующих групповых политик:
 +
 
 +
{|class="standard"
 +
!Политика
 +
|-
 +
|{{term|Allow log on locally}}
 +
|-
 +
|{{term|Allow log on through Remote Desktop Services}}
 +
|-
 +
|{{term|Access this computer from the network}}
 +
|-
 +
|{{term|Allow log on as a batch job}}
 +
|-
 +
|{{term|Allow log on as a service}}
 +
|}
 +
 
 +
 
 +
{{Note|Планируется поддержка других групповых политик средствами подключаемых модулей}}
 +
 
 +
{{примечания}}
 +
 
 +
{{note| Получение прав root см. [[root]] }}
  
Подробнее:
+
== Ссылки по групповым политикам ==
 +
* https://fedoraproject.org/wiki/Changes/SssdGpoBasedAccessControl
 
* http://wiki.eri.ucsb.edu/stadm/AD_Samba4
 
* http://wiki.eri.ucsb.edu/stadm/AD_Samba4
 
* http://centrifying.blogspot.ru/2014/01/basics-using-group-policy-on-unixlinux.html
 
* http://centrifying.blogspot.ru/2014/01/basics-using-group-policy-on-unixlinux.html
Строка 237: Строка 340:
  
  
 +
{{Category navigation|title=Samba|category=Samba|sortkey={{SUBPAGENAME}}}}
 
{{Category navigation|title=Домен|category=Домен|sortkey={{SUBPAGENAME}}}}
 
{{Category navigation|title=Домен|category=Домен|sortkey={{SUBPAGENAME}}}}
 
{{Category navigation|title=HOWTO|category=HOWTO|sortkey={{SUBPAGENAME}}}}
 
{{Category navigation|title=HOWTO|category=HOWTO|sortkey={{SUBPAGENAME}}}}
  
 
[[Категория:Active Directory]]
 
[[Категория:Active Directory]]

Текущая версия на 08:38, 15 апреля 2021

Инструкция по вводу рабочей станции под управлением 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'

Настройка SSSD[править]

См. статью SSSD/AD

Проверка работы[править]

# 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. Если у вас домен Windows 2003 (не R2), то в директивы default_tgs_enctypes, default_tkt_enctypes и preferred_enctypes файла /etc/krb5.conf добавьте ещё DES3-CBC-SHA1.
  8. Для возможности входа в ОС под доменным пользователем при его недоступности можно включить опцию кэширования учетных данных в конфиге 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
Примечание: В lightdm-gtk-greeter, начиная с версии 2.0.7-alt2, можно настроить автоматическое заполнение поля «Имя пользователя» именем последнего пользователя входившего в систему. Для этого в файле /etc/lightdm/lightdm-gtk-greeter.conf (группа [greeter]) необходимо указать:
enter-username = true


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

Примечание: Первые два пункта данного раздела выполняются автоматически, если АРМ вводится в домен с помощью task-auth-ad-sssd

Установка модуля ролей[править]

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 'Пользователи домена' users

Далее

# roleadd 'Domain Admins' localadmins

или

# roleadd 'Администраторы домена' localadmins

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

# rolelst
# id ivan

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

Дополнительные роли[править]

Соответственно, если надо выдать права администраторов АРМ пользователям, которые не являются Domain Admins, то нужно завести новую группу в AD (например, PC Admins), добавить туда необходимых пользователей. Затем на АРМ добавить роль для данной группы:

# roleadd 'PC Admins' localadmins
# rolelst
users: cdwriter cdrom audio video proc radio camera floppy xgrp scanner uucp vboxusers fuse tsusers
localadmins: wheel
domain users: users
domain admins: localadmins
pc admins: localadmins

После этого (и после разрешения sudo для группы wheel) под пользователем входящим в группу PC Admins можно запускать команду повышения прав sudo.

user@alt8 ~ $ su - petrov
Password: 
petrov@alt8 ~ $ id
uid=445010929(petrov) gid=445000513(domain users) группы=445000513(domain users),10(wheel),14(uucp),19(proc),
22(cdrom),71(floppy),80(cdwriter),81(audio),83(radio),100(users),458(tsusers), 459(localadmins),466(fuse),468(video),
480(camera),492(vboxusers),498(xgrp),499(scanner),445010930(pc admins)
petrov@alt8 ~ $ sudo apt-get update
Пароль:
Получено: 1 http://ftp.altlinux.org p8/branch/x86_64 release [880B]
Получено: 2 http://ftp.altlinux.org p8/branch/x86_64-i586 release [537B]
Получено: 3 http://ftp.altlinux.org p8/branch/noarch release [673B]
Получено 2090B за 0s (36,9kB/s).
Найдено http://ftp.altlinux.org p8/branch/x86_64/classic pkglist
Найдено http://ftp.altlinux.org p8/branch/x86_64/classic release
Найдено http://ftp.altlinux.org p8/branch/x86_64-i586/classic pkglist
Найдено http://ftp.altlinux.org p8/branch/x86_64-i586/classic release
Найдено http://ftp.altlinux.org p8/branch/noarch/classic pkglist
Найдено http://ftp.altlinux.org p8/branch/noarch/classic release
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено

Подключение файловых ресурсов[править]

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

Через gio[править]

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


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

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

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

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

gpasswd -a <пользователь> fuse
Внимание! Начиная с p9 членства в группе fuse недостаточно, требуется разрешить для всех доступ к fuse под root:
control fusermount public


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

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

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

gio 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
Внимание! Если у Вас ресурс монтируется дважды, то можно исправить это, добавив в session перед строкой с pam_mount:
session [success=1 default=ignore]  pam_succeed_if.so  service = systemd-user quiet


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, а не имя домена


Внимание! По умолчанию для монтирования используется smb версии 1.0, если у вас он отключен, то укажите в параметрах версию 2 или 3.
<volume uid="10000-2000200000" fstype="cifs" server="c228" path="sysvol" mountpoint="~/share" options="sec=krb5,vers=2.0,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(USERGID),file_mode=0664,dir_mode=0775" />


Для проверки можно попробовать смонтировать ресурс в сессии:

 mount.cifs //server/share /mnt/  -o vers=2.0,user=altlinux

Также можно проверить доступность ресурса с помощью smbclient, например:

smbclient -L server -U altlinux -m SMB2

Через autofs[править]

В этом случае заданный ресурс подключается автоматически при каждом обращении пользователя. И отключается после определенного времени бездействия (определяется конфигуацией Autofs).

Основная статья AutoFS[править]

https://www.altlinux.org/Autofs

Для дистрибутивов c KDE[править]

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


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

Ссылки[править]