Ubuntu добавить в домен windows

Была необходимость ввести в домен Windows машину с Ubuntu. Для этих целей обычно используют Samba и Winbind. Но возможен альтернативный вариант с sssd, краткое руководство по нему ниже.

Для примера будем использовать: Контроллер домена = dc.contoso.com Запускаем терминал Ubuntu: 1. Переключаемся под рута

2. Устанавливаем необходимые пакеты apt install sssd heimdal-clients msktutil 3. Редактируем /etc/krb5.conf, в качестве отступов используется табуляция [libdefaults]
default_realm = CONTOSO.COM [realms]
CONTOSO.COM = [login]
krb4_convert = true
krb4_get_tickets = false [domain_realm]
.contoso.com = CONTOSO.COM
contoso.com = CONTOSO.COM

4. Редактируем файл /etc/hosts, указываем FQDN для данного хоста: 127.0.0.1 localhost
127.0.1.1 .contoso.com 5. Пробуем получить Kerberos ticket от имени администратора домена: # kinit YourDomainAdmin
YourDomainAdmin@CONTOSO.COM’s Password: # klist
Credentials cache: FILE:/tmp/krb5cc_0
Principal: YourDomainAdmin@CONTOSO.COM Issued Expires Principal
Dec 1 15:08:27 2018 Dec 2 01:08:22 2018 krbtgt/CONTOSO.COM@CONTOSO.COM Если тикет получен успешно, то теперь можно сгенерировать Kerberos principals для данного хоста, регистр важен:

msktutil -c -b ‘CN=YourComputersOU’ -s HOST/HOSTNAME.contoso.com -k /etc/sssd/HOSTNAME.keytab —computer-name HOSTNAME —upn HOSTNAME$ —server dc.contoso.com —user-creds-only msktutil -c -b ‘CN=YourComputersOU’ -s HOST/HOSTNAME -k /etc/sssd/HOSTNAME.keytab —computer-name HOSTNAME —upn HOSTNAME$ —server dc.contoso.com —user-creds-only Сейчас наш хост должен отобразиться в списке компьютеров в каталоге. Если все так — удаляем полученный Kerberos ticket: 6. Создаем файл /etc/sssd/sssd.conf со следующим содержимым: services = nss, pam
config_file_version = 2
domains = contoso.com entry_negative_timeout = 0
debug_level = 3 ad_domain = contoso.com
ad_server = dc.contoso.com
enumerate = false

id_provider = ad
auth_provider = ad
chpass_provider = ad
access_provider = simple
simple_allow_groups = users # каким группам разрешено логиниться, через запятую. Есть ограничение — названия групп должны быть с маленькой буквы.
ldap_schema = ad
ldap_id_mapping = true
fallback_homedir = /home/%u
default_shell = /bin/bash
ldap_sasl_mech = gssapi
ldap_sasl_authid = $
ldap_krb5_init_creds = true
krb5_keytab = /etc/sssd/ .keytab Описание параметров конфигфайла sssd можно посмотреть тут Устанавливаем права доступа для файла sssd.conf: chmod 600 /etc/sssd/sssd.conf Перезапускаем SSSD service service sssd restart 7. Редактируем настройки PAM

редактируем файл /etc/pam.d/common-session, после строки session required pam_unix.so session required pam_mkhomedir.so skel=/etc/skel umask=0022 переопределить параметры через системные настройки PAM, вызываем и отмечаем пункты sss auth и makehomdir . Это автоматически добавит строчку выше в common-session и она не будет перезатерта при обновлении системы. Теперь мы можем логиниться на машине доменными пользователями, которым разрешен вход.

P.S.: Можно дать права на использование sudo доменным группам. Используя visudo, редактируем файл /etc/sudoers, или, создаем новый файл в /etc/sudoers.d/ и редактируем его visudo -f /etc/sudoers.d/ваш_файл добавляем требуемую группу — например, Domain Admins (если в названии группы есть пробелы — их необходимо экранировать): Источник

Ubuntu/Linux

Ввод компьютера Ubuntu в домен Active Directory Windows

При создании материала использовал следующие источники:

Обновиться

Установить

Настройка DNS

Изменить настройки DNS на вашей машине, прописав в качестве DNS сервера контроллер домен и в качестве домена поиска — контроллер домен. В Ubuntu Desktop это можно сделать через Network Manager, в Ubuntu Server необходимо изменить содержимое файла /etc/resolv.conf Вместо «mydomain.com» — Ваш домен. Вместо IP-адресов — IP-адреса Ваших контроллеров домена.

Задать нужное имя компьютера в файле /etc/hostname Отредактировать файл /etc/hosts так, чтобы в нём была запись с полным доменным именем компьютера и обязательно коротким именем хоста, ссылающаяся на один из внутренних IP Проверить, что нормально пингуется контроллер домена

Настройка синхронизации времени

Исправить файл /etc/ntp.conf, добавив в него информацию о вашем сервере времени: После чего перезапустить демон ntpd:

Настройка авторизации через Kerberos

Изменить файл /etc/krb5.conf указав название своего домена вместо DOMAIN.COM и своего контроллера домена Обратить внимание на регистр написания имени домена. Везде, где домен был написан в верхнем регистре, его обязательно нужно писать именно в верхнем регистре.

Проверить, что мы можем авторизоваться в домене. Для этого выполнить команду Вместо username вписать имя существующего пользователя домена. Имя домена необходимо писать заглавными буквами! Если не получили никаких ошибок — значит вы настроили всё верно и домен отдаёт вам билет Kerberos. Убедиться в том, что билет получен, можно выполнив команду Удалить все билеты

Настройка Samba и вход в домен

Необходимо прописать правильные настройки в файле /etc/samba/smb.conf После того, как будет отредактирован smb.conf, выполнить команду testparm. Ввести компьютер в домен Если больше никаких сообщений нет — значит всё хорошо. Для проверки выполнить команду

Если всё прошло без ошибок, то успешно вошли в домен! Посмотреть в AD и увидеть добавленный компьютер ubuntu01. Чтобы видеть ресурсы в домене, установите smbclient: Теперь можно просматривать ресурсы компьютеров домена. Для этого нужно иметь билет kerberos — получаем через kinit. Посмотрим какие ресурсы предоставлены в сеть компьютером workstation:

Настройка Winbind

Добавить в файл /etc/samba/smb.conf в секцию [global] следующие строки: Перезапустить демон Winbind и Samba в следующем порядке: Если появится «rlimit_max: rlimit_max (1024) below minimum Windows limit (16384)» То отредактировать файл /etc/security/limits.conf Перегрузиться. Запустить testparm — Не должно быть ошибок. Проверить, что Winbind установил доверительные отношения с AD командой:

Убедиться, что Winbind увидел пользователей и группы из AD командами:

Добавление Winbind в качестве источника пользователей и групп

Измените в файле /etc/nsswitch.conf две строчки, добавив в конце winbind: Привести строку files в файле /etc/nsswitch.conf к виду: Проверить, что Ubuntu запрашивает у Winbind информацию о пользователях и группах, выполнив:

Авторизация в Ubuntu через пользователей домена

Создадим в каталоге домашних папок пользователей подкаталог для доменных пользователей в соответствии с настройками нашего smb.conf (в качестве имени каталога используем NetBIOS-имя домена): Проверить, что после установки библиотеки libpam-winbind соответствующие PAM-модули для Winbind активирован. В появившемся окне должна быть включена (отмечена *) опция «Winbind NT/Active Directory authentication»

Добавьте строку в конец файла /etc/pam.d/common-session Для появиления поля ручного ввода логина необходимо добавить в файл /etc/lightdm/lightdm.conf/ строку greeter-show-manual-login=true Для скрытия списка пользователей необходимо добавить в файл /etc/lightdm/lightdm.conf/ строку greeter-hide-users=true Для разрешения входа пользователей AD группы groupdomain можно исправить файл /etc/pam.d/common-auth добавив параметр require_membership_of к вызову pam_winbind.so Если указанная группа не работает, можно указать SID группы Источник

Включаем Ubuntu в состав домена Windows

Встала задача подключить ноутбук с ОС Ubuntu к домену Windows. Если в ОС Windows это сделать проще простого, то в линуксе нужно проделать небольшие манипуляции.

  • Компьютер-сервер с ОС Windows Server 2008 R2:
    • Имя: Server2008R2
    • Домен: myserver.com
    • Роль: контроллер домена ActiveDirectory, DNS-сервер
    • IP-адрес: 172.17.1.3
    • Маска сети: 255.255.255.0
    • Шлюз: 172.17.1.1
    • Имя: FileServer
    • Домен: myserver.com
    • Роль: вторичный контроллер домена ActiveDirectory с настроенной реплекацией
    • IP-адрес: 172.17.1.6
    • Маска сети: 255.255.255.0
    • Шлюз: 172.17.1.1
    • Имя: LaptopUbuntu
    • Сетевые настройки: через DHCP (получает от роутера с IP-адресом 172.17.1.1)

    Т.к. нашей задачей является подключить ноутбук к домену mydomain.com, то необходимо проделать следующие действия:

    sudo apt-get install krb5-user ntp samba winbind

    krb5-user — пакет для протокола Kerberos, который используется для аутентификации в Windows;
    ntp — позволяет синхронизировать время в контроллером домена;
    samba — позволяет стать членом домена;
    winbind — позволяет использовать учетную запись пользователя из ActiveDirectory.

    Теперь перейдем непосредственно к настройкам:

    sudo gedit /etc/resolv.conf

    Изменить содержимое на следующее:

    domain myserver.com
    search myserver.com
    nameserver 172.17.1.3

    Задаем нужное имя ноутбука (LaptopUbuntu) в следующем файле:

    sudo gedit /etc/hostname

    sudo gedit /etc/hostname

    Меняем так, чтобы было (секцию IPv6 не трогаем):

    127.0.0.1 localhost
    172.17.1.2 LaptopUbuntu.myserver.com LaptopUbuntu

    Теперь для применения изменений необходимо перезагрузить ноутбук. После перезагрузки у меня, почему-то, все отредактированные выше файлы сбросились в первоначальное содержимое. Немного подумав, я понял, что виноват тому значащийся в сетевых настройках включенный DHCP. Через Network Manager я отключил DHCP, выбрал пункт «ручная настройка», а затем опять проделал то, что написано выше. Хотя, часть значений параметров можно вписать через все тот же Network Manager.

    Открываем следующий файл:

    sudo gedit /etc/ntp.conf

    и вписываем в него следующее:

    sudo /etc/init.d/ntp restart

    Далее приступим к настройке Kerberos. Редактируем файл:

    sudo gedit /etc/krb5.conf

    Заполняем его следующей информацией:

    [libdefaults]
    default_realm = MYSERVER.COM
    kdc_timesync = 1
    ccache_type = 4
    forwardable = true
    proxiable = true

    [domain_realm]
    .domain.com = MYSERVER.COM
    domain.com = MYSERVER.COM
    [login]
    krb4_convert = false
    krb4_get_tickets = false

    Теперь настраиваем Samba:

    sudo gedit /etc/samba/smb.conf

    Приводим секцию [global] к следующему содержанию:

    workgroup = MYSERVER.COM
    realm = MYSERVER.COM
    security = ADS
    encrypt passwords = true
    dns proxy = no
    socket options = TCP_NODELAY
    domain master = no
    local master = no
    preferred master = no
    os level = 0
    domain logons = no
    load printers = no
    show add printer wizard = no
    printcap name = /dev/null
    disable spoolss = yes

    Для проверки правильности заполнения конфигурационного файла Samba, можно выполнить команду testparm, которая выведет информацию о том, что в конфигурации ошибок нет, либо они есть.

    Теперь перейдем к настройке Winbind, если мы хотим использовать учетные записи из ActiveDirectory у себя на ноутбуке.

    Опять редактируем файл:

    sudo gedit /etc/samba/smb.conf

    И в секцию [global] добавляем:

    idmap uid = 10000 — 40000
    idmap gid = 10000 — 40000
    winbind enum groups = yes
    winbind enum users = yes
    winbind use default domain = yes
    template shell = /bin/bash
    winbind refresh tickets = yes
    winbind offline logon = yes
    winbind cache time = 1440

    После чего необходимо перезапустить демоны:

    sudo /etc/init.d/winbind stop
    sudo smbd restart
    sudo /etc/init.d/winbind start

    Далее идем и редактируем следующий файл:

    sudo gedit /etc/nsswitch.conf

    Добавляем в конец строк passwd и group слово winbind, т.е. файл должнен выглядеть так:

    passwd: compat winbind
    group: compat winbind

    И самое последнее: в файл /etc/pam.d/common-session добавить следующую строчку:

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

    Демонстрация всего того, что описано выше, будет в одной из следующих заметок.