ActiveDirectory/Login
Инструкция по вводу рабочей станции под управлением 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» и заполните поля. Нажмите кнопку «Применить».
Ввод в домен в командной строке
# 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
Примечания
- Ограничение: имя домена должно указывать на 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 admins
Создаём привилегию на право удалённого доступа (по протоколу 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 admins wheel remote vboxusers
Настраиваем отображение локальных привилегий, назначенных локальным ролям, на глобальные группы безопасности:
roleadd 'Domain Users' users roleadd 'Domain Admins' admins
Просматриваем список назначенных ролей и привилегий:
rolelst id ivan
Данная настройка назначает заданный список локальных групп (привилегий) всем пользователям, входящим в заданные локальные группы (роли). А также назначает локадьные роли для глобальных групп в домене.
Подключение файловых ресурсов
Рассматриваемые способы позволяют подключать файловые ресурсы (file shares) для доменного пользователя без повторного ввода пароля (SSO, Single Sign-On).
Через gvfs
Недостаток такого способа — необходимо открыть ресурс в файловом менеджере (Caja, Pcmanfm). Однако можно открывать любые ресурсы на любых серверах, входящие в домен Active Directory.
1. Устанавливаем необходимые пакеты (с правами root):
apt-get install fuse-gvfs gvfs-backend-smb
2. Включаем для всех пользователей право использования FUSE (с правами root):
control fusermount public systemctl restart systemd-udevd
3. Входим доменным пользователем
4. Открываем ресурс в файловом менеджере (например, по адресу smb://server/sysvol). Ресурс смонтирован по пути /var/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 — каталог в домашней папке пользователя
Групповые политики
Подробнее:
- 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