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

Материал из ALT Linux Wiki
Перейти к: навигация, поиск
м (про avahi-daemon)
(Отображение глобальных групп на локальные: upd)
 
(не показана 1 промежуточная версия этого же участника)
Строка 138: Строка 138:
  
 
= Отображение глобальных групп на локальные =
 
= Отображение глобальных групп на локальные =
 
+
{{note|Первые два пункта данного раздела выполняются автоматически, если АРМ вводится в домен с помощью {{pkg|task-auth-ad-sssd}}}}
 
== Установка модуля ролей ==
 
== Установка модуля ролей ==
 
  apt-get install libnss-role
 
  apt-get install libnss-role
Строка 144: Строка 144:
 
== Настройка ролей и привилегий ==
 
== Настройка ролей и привилегий ==
 
Добавляем роль локальных администраторов:
 
Добавляем роль локальных администраторов:
  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 'Domain Admins' 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>
  
 
= Подключение файловых ресурсов =
 
= Подключение файловых ресурсов =

Текущая версия на 07:35, 1 августа 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

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

Примечание: Первые два пункта данного раздела выполняются автоматически, если АРМ вводится в домен с помощью 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 'Domain Admins' 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).

Через 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


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

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