ActiveDirectory/Login

Материал из ALT Linux Wiki

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

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

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

Подготовка

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

С версии alterator-auth-0.29.5-alt2

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


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

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

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

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

С версии 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 и все его зависимости.

Alterator-auth-new.png

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

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

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

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

# wbinfo -u | grep 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

# 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

Примечания

  1. Ограничение: имя домена должно указывать на DC. Если это не так, поправляйте /etc/krb5.conf и вводите вручную, либо в файл /etc/hosts добавьте строку с контроллером домена (кдц) ДОМЕН.local и перезапустите сеть. После этого проверьте из командной строки ping ДОМЕН.local и вводите в домен
  2. При указании домена, имеющего суффикс .local, потребуется на сервере и подключаемых компьютерах под управлением Linux отключить службу avahi-daemon (доменная зона "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

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

Настройка 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). Ресурс смонтирован по пути /run/<uid_пользователя>/gvfs.

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

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


Через pam_mount

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

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

apt-get install pam_mount

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

auth            optional        pam_mount.so

и

session         optional        pam_mount.so

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

<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" />

где

  • uid="10000-20000000" — диапазон присваиваемых uid для доменных пользователей (см. параметр idmap config * : range в файле /etc/samba/smb.conf)
  • server="c228" — имя сервера с ресурсом
  • path="sysvol" — имя файлового ресурса
  • mountpoint="/home/SCHOOL/%(USER)/share" — путь монтирования. Для доменных пользователей SCHOOL — имя рабочей группы, share — каталог в домашней папке пользователя

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

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


Подробнее:

Ссылки