ActiveDirectory/Login
Материал из ALT Linux Wiki
(→Проверка работы) |
|||
(41 промежуточная версия не показана) | |||
Строка 17: | Строка 17: | ||
|Пароль администратора||Pa$$word | |Пароль администратора||Pa$$word | ||
|} | |} | ||
- | + | <div id="prep"></div> | |
- | + | ||
- | + | ||
= Подготовка = | = Подготовка = | ||
== Установка пакетов == | == Установка пакетов == | ||
- | apt-get install | + | |
+ | {{Attention|Аутентификация через winbind в новых сборках Samba не работает, используйте аутентификацию через {{pkg|task-auth-ad-sssd}}.}} | ||
+ | |||
+ | С версии {{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>}} | ||
Требуемые версии: | Требуемые версии: | ||
* {{pkg|pam-config}} >= 1.7.0-alt1 | * {{pkg|pam-config}} >= 1.7.0-alt1 | ||
* {{pkg|alterator-auth}} >= 0.26-alt1 | * {{pkg|alterator-auth}} >= 0.26-alt1 | ||
+ | |||
+ | Возможно, следует [[Обновление ОС#В пределах версии|обновить]] установленный дистрибутив из репозитория. | ||
== Синхронизация времени == | == Синхронизация времени == | ||
Строка 58: | Строка 65: | ||
ntpdate pool.ntp.org | ntpdate pool.ntp.org | ||
- | + | <div id="setup"></div> | |
= Ввод в домен в Центре управления системой = | = Ввод в домен в Центре управления системой = | ||
В Центре управления системой перейдите в раздел {{path|Пользователи → Аутентификация}} | В Центре управления системой перейдите в раздел {{path|Пользователи → Аутентификация}} | ||
+ | |||
+ | Для ввода компьютера в Active Directory потребуется установить пакет {{pkg|task-auth-ad-sssd}} и все его зависимости. | ||
[[Файл:Alterator-auth-new.png]] | [[Файл:Alterator-auth-new.png]] | ||
Выберите пункт «Домен Active Directory» и заполните поля. Нажмите кнопку «Применить». | Выберите пункт «Домен Active Directory» и заполните поля. Нажмите кнопку «Применить». | ||
- | |||
- | |||
= Ввод в домен в командной строке = | = Ввод в домен в командной строке = | ||
Строка 73: | Строка 80: | ||
<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> | |
= Проверка работы = | = Проверка работы = | ||
- | <pre> | + | <pre># getent passwd ivan |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | # getent passwd | + | |
ivan:*:10005:10002:ivan:/home/SCHOOL/ivan:/bin/bash | ivan:*:10005:10002:ivan:/home/SCHOOL/ivan:/bin/bash | ||
Строка 96: | Строка 94: | ||
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 | + | 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 и вводите в домен | ||
+ | # При указании домена, имеющего суффикс '''.local''', потребуется на сервере и подключаемых компьютерах под управлением Linux <u>'''отключить''' службу {{cmd|avahi-daemon}}</u> (доменная зона "local." используется в технологии zeroconf). | ||
+ | # Следите за синхронизацией времени на клиенте и сервере. | ||
+ | # Для предотвращения кэширования имён пользователя отключите службу {{cmd|nscd}}. | ||
+ | # В новых версиях Samba до запуска службы {{cmd|winbind}} должна запускаться служба {{cmd|smb}}. | ||
+ | # Если возникает проблема просмотра билетов Kerberos под доменным пользователем, скопируйте правильный krb5.conf из samba: | ||
+ | <source lang="bash">rm -f /etc/krb5.conf | ||
+ | cp /var/lib/samba/smb_krb5/krb5.conf* /etc/krb5.conf</source> | ||
+ | <div id="login"></div> | ||
= Настройка окна входа = | = Настройка окна входа = | ||
Строка 115: | Строка 128: | ||
Полный перечень доступных кнопок: | Полный перечень доступных кнопок: | ||
show-indicators=a11y;power;session;language | show-indicators=a11y;power;session;language | ||
+ | |||
+ | = Отображение глобальных групп на локальные = | ||
+ | |||
+ | == Установка модуля ролей == | ||
+ | apt-get install libnss-role | ||
+ | |||
+ | == Настройка ролей и привилегий == | ||
+ | Добавляем роль локальных администраторов: | ||
+ | groupadd -r localadmins | ||
+ | |||
+ | {{Note|Лучше использовать группу 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 == | ||
+ | |||
+ | {{note|Способ актуален для дистрибутивов, использующих 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 | ||
+ | |||
+ | Как включить доменных пользователей в локальную группу см. выше. | ||
+ | |||
+ | {{Note|Следующий рецепт не работает: | ||
+ | control fusermount public | ||
+ | systemctl restart systemd-udevd | ||
+ | }} | ||
+ | |||
+ | 3. Входим доменным пользователем | ||
+ | |||
+ | 4. Открываем ресурс в файловом менеджере (например, по адресу {{path|smb://server/sysvol}}). Ресурс смонтирован по пути {{path|/run/<uid_пользователя>/gvfs}}. | ||
+ | |||
+ | Другой вариант (полезно для скриптов в автозапуске): | ||
+ | gvfs-mount smb://server/sysvol/ | ||
+ | |||
+ | {{note|Если необходимо открывать что-то с ресурса в WINE, в {{cmd|winecfg}} добавьте диск с путём {{path|/run/<uid_пользователя>/gvfs}}.}} | ||
+ | |||
+ | == Через pam_mount == | ||
+ | |||
+ | В этом случае заданный ресурс подключается с заданного сервера <u>автоматически при каждом входе</u> доменным пользователем. | ||
+ | |||
+ | 1. Устанавливаем {{pkg|pam_mount}}: | ||
+ | apt-get install pam_mount | ||
+ | |||
+ | 2. Прописываем pam_mount в схему {{path|/etc/pam.d/system-auth-sss}}: | ||
+ | |||
+ | (перед {{term|auth required pam_permit.so}}) | ||
+ | auth optional pam_mount.so | ||
+ | и | ||
+ | session optional pam_mount.so | ||
+ | |||
+ | 3. Устанавливаем правило монтирования ресурса в файле {{path|/etc/security/pam_mount.conf.xml}} (перед тегом <cifsmount>): | ||
+ | <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-2000200000"''' — диапазон присваиваемых для доменных пользователей UID (подходит и для Winbind и для SSSD) | ||
+ | * '''server="c228"''' — имя сервера с ресурсом | ||
+ | * '''path="sysvol"''' — имя файлового ресурса | ||
+ | * '''mountpoint="~/share"''' — путь монтирования в домашней папке пользователя | ||
+ | |||
+ | {{Attention|Обязательно указывайте настоящее имя сервера в параметре {{term|server}}, а не имя домена}} | ||
+ | |||
+ | = Групповые политики = | ||
+ | |||
+ | Групповые политики (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|Планируется поддержка других групповых политик средствами подключаемых модулей}} | ||
+ | |||
+ | == Ссылки по групповым политикам == | ||
+ | * https://fedoraproject.org/wiki/Changes/SssdGpoBasedAccessControl | ||
+ | * http://wiki.eri.ucsb.edu/stadm/AD_Samba4 | ||
+ | * http://centrifying.blogspot.ru/2014/01/basics-using-group-policy-on-unixlinux.html | ||
+ | * https://www.youtube.com/watch?v=2cJWnUZ8qLI | ||
= Ссылки = | = Ссылки = | ||
* https://wiki.archlinux.org/index.php/Active_Directory_Integration | * https://wiki.archlinux.org/index.php/Active_Directory_Integration | ||
* [[Ввод в домен на базе Windows 2003]] | * [[Ввод в домен на базе Windows 2003]] | ||
+ | * https://fedorahosted.org/sssd/wiki/Configuring_sssd_with_ad_server | ||
+ | * https://wiki.samba.org/index.php/Setup_Samba_as_an_AD_Domain_Member | ||
+ | |||
- | |||
{{Category navigation|title=Домен|category=Домен|sortkey={{SUBPAGENAME}}}} | {{Category navigation|title=Домен|category=Домен|sortkey={{SUBPAGENAME}}}} | ||
+ | {{Category navigation|title=HOWTO|category=HOWTO|sortkey={{SUBPAGENAME}}}} | ||
+ | |||
+ | [[Категория:Active Directory]] |
Текущая версия на 15:16, 13 июня 2017
Инструкция по вводу рабочей станции под управлением ALT Linux в домен Active Directory (работающий под Windows или под Samba в режиме AD DC). Устаревшая инструкция: Ввод в домен на базе Windows 2003
Параметры домена
Параметр | Значение |
---|---|
Имя домена | SCHOOL.ALT |
Рабочая группа | SCHOOL |
Имя компьютера в Netbios | HOST-15 |
Имя пользователя-администратора | Administrator |
Пароль администратора | Pa$$word |
Содержание |
Подготовка
Установка пакетов
С версии 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:
# 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
Ввод в домен в Центре управления системой
В Центре управления системой перейдите в раздел Пользователи → Аутентификация
Для ввода компьютера в Active Directory потребуется установить пакет task-auth-ad-sssd и все его зависимости.
Выберите пункт «Домен 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
# getent passwd
на клиентской машине. Этот функционал отключен по-умолчанию для того чтобы сократить нагрузку серверы. Поэтому для проверки необходимо точно указать имя пользователя # getent passwd имя_пользователя
. Список пользователей можно посмотреть на сервере командой # samba-tool user list
Примечания
- Ограничение: имя домена должно указывать на DC. Если это не так, поправляйте /etc/krb5.conf и вводите вручную, либо в файл /etc/hosts добавьте строку с контроллером домена (кдц) ДОМЕН.local и перезапустите сеть. После этого проверьте из командной строки ping ДОМЕН.local и вводите в домен
- При указании домена, имеющего суффикс .local, потребуется на сервере и подключаемых компьютерах под управлением Linux отключить службу avahi-daemon (доменная зона "local." используется в технологии zeroconf).
- Следите за синхронизацией времени на клиенте и сервере.
- Для предотвращения кэширования имён пользователя отключите службу nscd.
- В новых версиях Samba до запуска службы winbind должна запускаться служба smb.
- Если возникает проблема просмотра билетов Kerberos под доменным пользователем, скопируйте правильный krb5.conf из samba:
rm -f /etc/krb5.conf cp /var/lib/samba/smb_krb5/krb5.conf* /etc/krb5.conf
Настройка окна входа
Настройка 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
Создаём привилегию на право удалённого доступа (по протоколу 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
Недостаток такого способа — необходимо открыть ресурс в файловом менеджере (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). Ресурс смонтирован по пути /run/<uid_пользователя>/gvfs.
Другой вариант (полезно для скриптов в автозапуске):
gvfs-mount smb://server/sysvol/
Через pam_mount
В этом случае заданный ресурс подключается с заданного сервера автоматически при каждом входе доменным пользователем.
1. Устанавливаем pam_mount:
apt-get install pam_mount
2. Прописываем pam_mount в схему /etc/pam.d/system-auth-sss:
(перед auth required pam_permit.so)
auth optional pam_mount.so
и
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" — путь монтирования в домашней папке пользователя
Групповые политики
Групповые политики (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 |
Ссылки по групповым политикам
- https://fedoraproject.org/wiki/Changes/SssdGpoBasedAccessControl
- http://wiki.eri.ucsb.edu/stadm/AD_Samba4
- http://centrifying.blogspot.ru/2014/01/basics-using-group-policy-on-unixlinux.html
- https://www.youtube.com/watch?v=2cJWnUZ8qLI
Ссылки
- https://wiki.archlinux.org/index.php/Active_Directory_Integration
- Ввод в домен на базе Windows 2003
- https://fedorahosted.org/sssd/wiki/Configuring_sssd_with_ad_server
- https://wiki.samba.org/index.php/Setup_Samba_as_an_AD_Domain_Member