пятница, 24 июня 2016 г.

ubuntu 14.04.04 (16.04) join active directory domain + vnc + bash AD users

Ввести в домен рабочую станцию ubuntu 14.04.04 не так уж сложно, в Сети достаточно много материалов на этот счет. Множество инфы было взято с https://help.ubuntu.com/lts/serverguide/sssd-ad.html но здесь самая малость настроек, и кое-чего не хватает до полного счастья.
Предположим, что уже имеется предустановленная система, и она работает. Для начала обновиться:

# apt-get update
# apt-get upgrade
# apt-get dist-upgared

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

apt-get -y install realmd sssd sssd-tools samba-common krb5-user packagekit samba-common-bin samba-libs adcli ntp

При установке новых пакетов нужно будет ввести имя домена, что-то вроде: MYUBUNTU.EXAMPLE.COM

Можно просто скопировать файлик из статьи, и внести свои данные. А еще можно добавить такие строки в конфиг:

default_shell = /bin/bash

cache_credentials = true

Первая строчка дает нам возможность под доменным пользователем иметь нормальный bash, вторая строчка дает возможность логиниться оффлайн, что порой очень важно.

Также необходимо учесть один момент, в официальной инструкции Убунты в файл  /etc/pam.d/common-session нужно внести одну строку, но с небольшими изменениями (в оригинальном виде не заработало, не стал разбираться). Выглядеть строка должна следующим образом:

session    optional    pam_mkhomedir.so skel=/etc/skel/ umask=0022

И перед тем как вводить в домен, нужно в /etc/hosts написать FQDN и ip самой машины в Сети, иначе будет ошибка. Т.е. в /etc/hosts должна быть примерно такая строка:

10.99.0.5      M1.myubuntu.example.com   M1

(Спасибо большое товарищам из Samba, иначе бы ничего не вышло.)

Теперь можно торжественно вводить в домен и проверять доступность доменных имен.



Хотелось бы добавить удаленную поддержку пользователей, и лучше это делать через x11vnc


Устанавливаем:

# apt-get install x11vnc

Создаем конфиг в /etc/init/x11vnc.conf

содержание:

start on login-session-start

script

/usr/bin/x11vnc -xkb -forever -auth /var/run/lightdm/root/:0 -display :0 -rfbauth /etc/x11vnc.pass -rfbport 5900 -bg -o /var/log/x11vnc.log

end script


(очень важно, чтобы строчка после слова script - была цельной, иначе могут быть ошибки при запуске) Теперь надо сгенерировать пароль, делается это:

# x11vnc -storepasswd /etc/x11vnc.pass

После ребута должно все работать, т.е. можно подключаться к Убунте без авторизации пользователя, заодно проверить возможность входа в домен. Возможно в дальнейшем перепишу статью подробнее




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

UPD 05.07.16
Прикладываю рабочий конфиг, он может следующее: 
1. оффлайн авторизация
2. нормальный bash в командной строке
3. возможность устанавливать приложения пользователям AD в группе sudo (баг) 
4. не нужно нажимать смену пользователя при блокировке экрана (баг)

[sssd]
services = nss, pam
config_file_version = 2
domains = MYUBUNTU.EXAMPLE.COM

[nss]

default_shell = /bin/bash

[domain/MYUBUNTU.EXAMPLE.COM]
ad_gpo_map_interactive = +unity
id_provider = ad
access_provider = ad

ad_gpo_access_control=permissive
# Use this if users are being logged in at /.
# This example specifies /home/DOMAIN-FQDN/user as $HOME.  Use with pam_mkhomedir.so
override_homedir = /home/%d/%u

# Uncomment if the client machine hostname doesn't match the computer object on the DC.
# ad_hostname = mymachine.myubuntu.example.com

# Uncomment if DNS SRV resolution is not working
# ad_server = dc.mydomain.example.com

# Uncomment if the AD domain is named differently than the Samba domain
# ad_domain = MYUBUNTU.EXAMPLE.COM

# Enumeration is discouraged for performance reasons.
# enumerate = true

cache_credentials = true


По мере тестирования будут появляться дополнения


UPD 26.08.16

После апдейта sssd до версии 1.13.4 доменные пользователи не могут авторизоваться!
 В системном журнале будет pam_sss(su:account): Access denied for user u.domian

А починить это можно добавить в конфиг /etc/sssd/sssd.conf строчку 


ad_gpo_access_control=permissive

После чего перезапустить сервис sssd, и все заработает.