Active directory linux это

Обновлено: 04.07.2024

Как мне ввести в домен Ubuntu 20.04 | 18.04 к домену Windows? Могу ли я присоединить Debian 10 к домену Active Directory?

Эта статья была написана, чтобы показать вам, как использовать realmd для присоединения сервера или рабочего стола Ubuntu 20.04 | 18.04 / Debian 10 к домену Active Directory. Домен Active Directory является центральным узлом информации о пользователях в большинстве корпоративных сред.

Например, в инфраструктуре моей компании ключевым требованием является то, чтобы все пользователи прошли аутентификацию во всех системах Linux с учетными данными Active Directory. Это должно работать как для Debian, так и для дистрибутивов Linux на основе Red Hat.

В этом руководстве будет показано, как настроить SSSD для получения информации из доменов в одном лесу ресурсов Active Directory. Если вы работаете с несколькими лесами AD, это руководство может вам не подойти. Мы также пойдем дальше и настроим правила sudo для пользователей, которые входят в систему через AD. Вот схема, изображающая установку и как она работает.

Ввести в домен Active Directory (AD) линукс Ubuntu 20.04 | 18.04 / Debian 10

Итак, выполните следующие действия, чтобы присоединиться к домену Ubuntu 20.04 | 18.04 / Debian 10 в Active Directory (AD).

Шаг 1. Обновите свой APT

Начните с обновления вашей системы Ubuntu / Debian Linux.

sudo apt -y update

Это важно, поскольку установка может завершиться ошибкой, если сервер установлен только что.

Для Ubuntu 20.04 | 18.04 добавьте следующие репозитории в файл sources.list

Шаг 2. Задайте имя хоста сервера и DNS

Установите правильное имя хоста для вашего сервера с правильным доменным компонентом.

Подтвердите свое имя хоста:

Ubuntu 20.04 | 18.04 поставляется с systemd-resolve, который вам нужно отключить, чтобы сервер мог напрямую обращаться к вашему сетевому DNS.

sudo systemctl disable systemd-resolved
sudo systemctl stop systemd-resolved
Если вы используете DHCP, вы можете обновить DNS-сервер вручную.
$ sudo unlink /etc/resolv.conf
$ sudo vim /etc/resolv.conf

Шаг 3. Установите необходимые пакеты

Для присоединения системы Ubuntu 20.04 | 18.04 / Debian 10 к домену Active Directory (AD) требуется ряд пакетов.

sudo apt update
sudo apt -y install realmd libnss-sss libpam-sss sssd sssd-tools adcli samba-common-bin oddjob oddjob-mkhomedir packagekit

Только после успешной установки зависимостей вы можете приступить к обнаружению домена Active Directory в Debian 10 / Ubuntu 20.04 / 18.04.

Шаг 4. Откройте для себя домен Active Directory в Debian 10 / Ubuntu 20.04 | 18.04

Команда realm discover возвращает полную конфигурацию домена и список пакетов, которые должны быть установлены для регистрации системы в домене.

Шаг 5. Присоединитесь к Ubuntu 20.04 | 18.04 / Debian 10 к домену Active Directory (AD)

Учетная запись администратора AD требуется для интеграции вашего компьютера Linux с доменом Windows Active Directory. Проверьте и подтвердите учетную запись администратора AD и пароль.

Команда realm join настроит локальный компьютер для использования с указанным доменом, настроив как локальные системные службы, так и записи в домене идентификации. У команды есть несколько параметров, которые можно проверить с помощью:

Команда сначала пытается подключиться без учетных данных, но при необходимости запрашивает пароль.

Просмотр сведений о текущей области.

В системах на основе RHEL домашний каталог пользователя будет создан автоматически. В Ubuntu / Debian вам необходимо включить эту функцию.

sudo bash -c "cat > /usr/share/pam-configs/mkhomedir" <<EOF
Name: activate mkhomedir
Default: yes
Priority: 900
Session-Type: Additional
Session:
required pam_mkhomedir.so umask=0022 skel=/etc/skel
EOF
Затем активируйте с помощью:
sudo pam-auth-update

Выберите <OK>

Ввести в домен Active Directory (AD) линукс Ubuntu 20.04 | 18.04 / Debian 10

Ввести в домен Active Directory (AD) линукс Ubuntu 20.04 | 18.04 / Debian 10

Затем выберите <Ok>, чтобы сохранить изменения.

Ваш файл конфигурации sssd.conf находится в /etc/sssd/sssd.conf . При каждом изменении файла требуется перезагрузка.

Статус должен быть запущен.

$ systemctl status sssd

Ограничение для пользователей

Чтобы разрешить пользователю доступ через SSH и консоль, используйте команду:

Это изменит файл sssd.conf .

Если вместо этого вы хотите разрешить доступ всем пользователям, запустите:

$ sudo realm permit --all
Чтобы запретить доступ всем пользователям домена, используйте:
$ sudo realm deny --all

Шаг 7. Настройте доступ через Sudo

По умолчанию у пользователей домена не будет разрешения на повышение привилегий до root. Пользователям должен быть предоставлен доступ на основе имен пользователей или групп.

Давайте сначала создадим файл разрешений sudo.

Добавьте группу с пробелами.

Шаг 8. Проверьте доступ по SSH

Получите доступ к серверу удаленно, поскольку пользователю AD разрешено входить в систему.

$ ssh user1@localhost
The authenticity of host 'localhost (::1)' can't be established.
ECDSA key fingerprint is SHA256:wmWcLi/lijm4zWbQ/Uf6uLMYzM7g1AnBwxzooqpB5CU.
ECDSA key fingerprint is MD5:10:0c:cb:22:fd:28:34:c6:3e:d7:68:15:02:f9:b4:e9.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.

Основной задачей системных администраторов являются попытки совместного изпользования разнообразных окружений. Мы имеем в виду смешивание разных серверных операционных систем (Обычно Microsoft Windows & Unix/Linux). Управление пользователями и аутентификацией на данный момент является наиболее сложной задачей. Популярнейший способ решения это задачи - Directory Server. Существует много открытых и коммерческих решений для разный типов *NIX; однако, только немногие решают проблему взаимодействия с Windows. Активный Каталог (AD) - служба каталогов созданная Microsoft для доменных сетей Windows. Он входит в большинство операционных систем Windows Server. Сервера,на которых запущен AD, называются контроллерами доменов(domain controllers)

Активный каталог используется как главное средство администрирования сети и безопасности.Он отвечает за аутентификацию и авторизацию все пользователей и компьютеров в доменной сети Windows, назначая и следя за правилами безопасности для всех компьютеров в сети, также устанавливая и обновляя ПО на компьютерах в этой сети. Например,когда пользователь авторизуется в компьютер,который является частью доменной сети, AD проверяет его пароль и яляется он обычным пользователем или же системным администратором.

Активный католог использует Lightweight Directory Access Protocol (LDAP) версий 2 и 3, Kerberos и DNS. Эти же стандарты доступны в Linux, но их комбинирование - непростая задача. Эта статья поможет вам настроить хост ArchLinux для аутентификация в домене AD.

Эта статья объясняет, как интегрировать хост Arch Linux в сущестующий домен AD. Перед продолжением у вас должен быть существующий домен AD, и пользователь с правами на добавление пользователей и компьютерных аккаунтов. Эта сатья не предназначена ни как полное описание AD,ни как полно описание работы с Samba. Обратитесь к разделу ресурсов для дополнительной информации.

Contents

Терминология

Если вы не знакомы с AD, здесь приведены некоторые ключевые слова, которые будет полезно знать.

Настройка

Настройка AD

Важно: Эта часть не была проверена, продолжайте с отсторожностью.

Обновление GPO

Возможно, нужно будет отключить Digital Sign Communication (Always) в настройках групп AD. А именно:

Local policies -> Security policies -> Microsoft Network Server -> Digital sign communication (Always) -> выбрать define this policy и поставить "галочку" на disable .

Если вы используете Windows Server 2008 R2, то вам нужно настроить GPO в GPO for Default Domain Controller Policy -> Computer Setting -> Policies -> Windows Setting -> Security Setting -> Local Policies -> Security Option -> Microsoft network client: Digitally sign communications (always)

Настройка Linux хоста

Следующие несколько шагов - начало конфигурации хоста. Вам понадобиться root или sudo доступ.

Установка

Обновление DNS

AD сильно зависит от DNS. Вам нужно будет обновить /etc/resolv.conf , чтобы использовать контроллеры доменов AD:

Замените <IP1> и <IP2> IP адресами для сервера AD.Есили ваши AD домены не позволяют использовать DNS форвардинг или рекурсию,возможно,придётся добавить некоторые вещи. Если ваша машина имеет дуалбут Windows и Linux, стоит использовать разные имена DNS и netbios для linux,если обе операционные системы будут членами одного домена.

Настройка NTP

См. NTPd или OpenNTPD для инструкции по настройке NTP. Стоит отметить, что OpenNTPD больше не поддерживается.

При настройке используйте IP адреса серверов AD.Как альтернативу можно использовать другие NTP сервера,которые обеспечат синхронизацию AD в то же место.Тем не менее,AD обычно запускают NTP в качестве службы.

Убедитесь,что демон настроен на sync automatically on startup.

Kerberos

Примечание: Heimdal 1.3.1 не принимает DES шифрование,которое необходимо для аутентификации AD до Windows Server 2008. Скорее всего вам придётся добавить в раздел [libdefaults]

Создание ключа Kerberos

Теперь во можете запросить ключи для AD (верхний регистр необходим):

Можно использовать любое имя пользователя,у которого есть права администратора домена.

Подтверждение ключа

Запустите klist чтобы проверить,получили ли вы токен,должно быть нечто подобное:

pam_winbind.conf

Если вы получаете ошибки "/etc/security/pam_winbind.conf не найден",создайте этот файл и отредактируйте его следующим образом:

Samba

Samba — бесплатная реализация протокола SMB/CIFS. Также она включает инструменты для Linux машин,которые заставляют их вести себя будто Windows сервера и клиенты.

Примечание: Настройка может разниться в зависимости от конфигурации сервера Windows. Будьте готовы изучать и решать проблемы.

В этом разделе мы сначала сфокусируемся на работе аутентификации с помощью изменения секции 'Global'. Далее, мы вернёмся к остальным.

Теперь надо "объяснить" Samba, что мы будет использовать базы даннх PDC для аутенификации.Будем использовать winbindd, который входит в поставку Samba.Winbind указывает UID и GID Linux машины для AD. Winbind использует UNIX реализацию RPC вызовов, Pluggable Authentication Modules (aka PAM) и Name Service Switch (NSS), чтобы разрешить допуск пользователей и Windows AD на Linux-машинах. Лучшая часть winbindd то,что вам не нужно размечать самому, от вас требуется только указать диапазон UID и GID! Именно их мы объявили в smb.conf.

Обновите файл настроек samba чтобы включить демона winbind

Далее, настройте samba так, для запуска вместе со стартом системы. См. Daemons для подробностей.

Запуск и проверка сервисов

Запуск Samba

Надеемся,вы ещё не перезагрузились! Хорошо. Если у вас запущена X-сессия - выходите из неё,чтобы проверить вход в другой терминал не выходя из своей сессии.

Запуск Samba (включая smbd, nmbd и winbindd):

Если вы проверите список процессов,то заметите,что на самом деле winbind не запустился. Быстрый осмотр логов говорит,что SID для этого хоста может быть получен от домена:

Присоединение к Домену

Вам нужен аккаунт администратора AD чтобы сделать это. Пусть наш логин: Administrator. Комана - 'net ads join'

Перезапуск Samba

winbindd не смог запуститься потому,что пока что мы не домен.

Перезапустите сервис Samba и winbind тоже должен запуститься.

NSSwitch говорит Linux хосту как получить игформацию из различных источников и к каком порядке это сделать. В нашем случае мы добаим AD как дополнительный источник для пользователей, групп и хостов.

Проверка Winbind

Проверим, может ли winbind получить доступ к AD. Следующие команды возвращают список пользователей AD:

Можно сделать то же самое для групп AD:

Проверка nsswitch

Дабы убедиться,что нащ хост имеет доступ к домену для пользователей и групп, мы проверим настройки nsswitch, используя 'getent'. Следующий вывод показывает,как оно дожно выглядеть на нетронутом ArchLinux:

Проверка команд Samba

Попробуйте некоторые команды,чтобу увидеть,может ли Samba взаимодействовать с AD:

Настройка PAM

Теперь мы будем менять разные правила в PAM, чтобы допустить пользователей AD к использованию системы для входа и к sudo доступу. Когда вы меняете правила, запоминание их порядка и помечены ли они как required или как sufficient критически важно,если вы хотите,чтобы всё работало,как вы задумали.Вам не стоит отклоняться от этих правил,если только вы не знаете как писать правила для PAM

В случае со входом,PAM следует сначала запросить аккаунт AD и проверять локальные аккаунты только если аккаунту AD не соответствует локальный аккаунт.Поэтому, мы добавим записи,которые включат pam_winbindd.so в процесс аутентификации.

Главный процесс аутентификации в конфигурации PAM ArchLinux находится в /etc/pam.d/system-auth . Начав со стандартной конфигурации из pambase , измените её следующим образом:

system-auth

Раздел "auth"

Удалите её, и замените следующим:

Раздел "account"

Под ней допишите следующее:

Раздел "session"

Под ней допишите следующее:

Раздел "password"

Удалите её и замените следующими:

Проверка входа

Теперь запустите новую сессию/войдите через ssh и попробуйте войти,использую данные аккаунта AD. Имя домена опционально, так как это было задано в настройках Winbind как 'default realm'. Заметьте,что в случае с ssh, вам нужно изменить /etc/ssh/sshd_config , чтобы он разрешал аутентификацию через kerberos: (KerberosAuthentication yes) .

Войдите в другую сессию использую аккаунт Linux. Удостоверьтесь,что всё ещё можете войти как root - запомните,что вы должны быть под аккаунтом root как минимум в одной сессии!

Настройка общих файлов

Ранее мы пропустили настройку общих файлов. Теперь,когда всё работает, вернитесь к /etc/smb.conf и добавьте эксопрт для хостов,которые вы желаете сделать доступными в Windows

В примере выше, ключевое слово NETWORK. Не путайте его с именем домена. Для добавления групп,добавьте символ '@' к группе. Заметьте, Domain Admins заключается в "цитаты", чтобы Samba корректно считывала их,когда просматривает файл конфигурации.

Добавление файла keytab и включение беспарольного входа на машину через Kerber и ssh

Это объясняет,как сгенерировать keytab файл,который вам нужен,например,чтобы включить беспарольный вход на машину через Kerber и ssh с другой машины в том же домене. Допустим, что у вас много компьютеров в домене и вы только что добавили сервер/рабочую станцию использую описание выше в ваш домен, в котором пользователям нужен ssh для работы - например рабочаю станция GPU или вычислительный узел OpenMP и т.д. В этом случае вам, наверное, не захочется вводить пароль каждый раз при входе. С другой стороны аутентификация с помощью ключа используется множеством пользователей, в этом случае нужных полномочий для,например,монтирования общего NFSv4 с Kerberos. Так что это поможет включить беспарольные входы на машины используя "kerberos ticket forwarding".

Создание key tab файла

Запустите 'net ads keytab create -U administrator' как суперпользователь дабы создать keytab файл в '/etc/krb5.keytab'. Она напишет ваи,что необходимо включить аутентификацию с помощью keytab в файле конфигурации, чтобы мы могли совершить следующий шаг. Иногда возникают проблемы, если файл krb5.keytab уже существует,в таком случае нужно переименовать его и запустить команду ещё раз, это должно помочь.

Проверьте содержание файла следующим образом:

Включение входа через keytab

Теперь вам нужно указать winbind,что он должен использовать keytab файлы,добавив следующий строки в /etc/samba/smb.conf:

В итоге всё должно выглядеть примерно так:

Перезапустите winbind.service с помощью 'systemctl restart winbind.service' с привелегиями суперпользователя.

Проверьте,всё ли работает,получив тикет для вашей системы и запустив

Эта команда не должна написать ничего в консоль,ондако 'klist' должен показать что-то вроде этого:

Подготовка sshd на сервере

Всё,что нам нужно сделать - это добавить некоторые опции в sshd_config и перезапустить sshd.service.

Измените '/etc/ssh/sshd_config' чтобы он выглядел так в нужных местах:

Добавление опций, нужных для клиента

Для начала нам нужно убедиться в том, что тикеты доступны для клиента. Обычно всё работает, но, на всякий случай, используйте следующий параметр:

Далее надо добавить опции:

в наш файл .ssh/config , который говорит ssh использовать эту опцию, как альтернативу: можно использовать 'ssh -o' (смотрите страницу справочного руководства ssh(1) ).

Проверка установки

Убедитесь,что у вас правильный тикет, используя 'kinit'. Затем подключитесь к своем машине через ssh

Вы должны подключится без просьбы ввести пароль

Если у вас также включна аутентификация ключем,нужно выполнить

чтобы увидеть,какой метод аутентификации используется на самом деле.

Для дебага вы можете включить DEBUG3 на сервере и посмотреть лог через 'journalctl'

Настройка для полной аутентификации Kerberos без пароля.

Если ваши клиенты не используют доменные аккаунты на их локальных машинах (по какой бы то не было причине),довольно сложно будет научить их использовать 'kinit' перед тем,как ssh подключится к рабочей станции.Так что есть классный способ это решить:

Использование Samba 4 в роли контроллера домена Active Directory. Такой способ позволяет вводить Windows 7/8 в домен безо всяких манипуляций с реестром.

Содержание

Поддерживаются базовые возможности Active Directory:

  • Аутентификация рабочих станций Windows и Linux и служб;
  • Авторизация и предоставление ресурсов;
  • Групповые политики (GPO);
  • Перемещаемые профили (Roaming Profiles);
  • Поддержка инструментов Microsoft для управления серверами (Remote Server Administration Tools) с компьютеров под управлением Windows ( под WINE не работает );
  • Поддержка протоколов SMB2 и SMB3 (в том числе с поддержкой шифрования);
  • Репликация с другими серверами (в том числе с Windows 2012).

Не поддерживаются следующие возможности[1]:

  • Не реплицируется хранилище SYSVOL (можно использовать osync[2][3]);
  • Доверительные отношения с некоторыми ограничениями[4]):
    • Правила SID filtering не реализованы;
    • Невозможно добавить пользователей и группы в доменные группы доверенного домена;
    • В Samba отсутствует полноценная поддержка фантомных объектов[6];
    • Проблемы при построении структуры AD (Active Directory browser), проблемы при поиске объектов в другом домене;
    • При применении групповых политик в многодоменной среде могут быть проблемы с определением, в каком домене находится компьютер;
    Внимание! Samba AD DC несовместима с OpenLDAP и MIT Kerberos, поэтому службы, использующие MIT Kerberos, несовместимы с ним. Внимание! Samba AD DC функционирует на уровне контроллера доменов Windows 2008 R2. Вы можете ввести его в домен Windows 2012 как клиента, но не как контроллер домена. Примечание: До версии 4.3.1 требовалось явно установить пакеты: samba-DC python-module-samba-DC samba-DC-common samba-DC-winbind-clients samba-DC-winbind samba-DC-client krb5-kinit

    2. Так как Samba в режиме контроллера домена (Doman Controller, DC) использует свой сервер LDAP, свой центр распределения ключей KDC (сервер Kerberos) и свой сервер DNS (если не включен плагин BIND9_DLZ), перед установкой остановите конфликтующие службы krb5kdc и slapd , а также bind :

    Примечание: Вы так же можете отключить службы и выключить автозагрузку служб графическим способом. В ALT Linux Server зайдите в Система > Администрирование > ЦУС > Режим эксперта> Системные службы. Примечание: При использовании плагина BIND9_DLZ, после настройки, службу bind потребуется включить.


    По умолчанию в Samba используется dns-backend = SAMBA_INTERNAL, для возможности переключения режимов dns_backend для сервера SAMBA_INTERNAL/BIND9_DLZ требуется внести следующие изменения:

    Установить необходимые пакеты на сервер: bind , bind-utils

    Установить необходимые пакеты на клиент: task-auth-ad-sssd

    В smb.conf блок [global] (на сервере) добавить строку:

    Подключить плагин BIND_DLZ:

    Привести /etc/bind/options.conf к виду (вместо <> подставить свои параметры в ""):

    При выполнении команды создания домена одной командой указать тип dns-backend = BIND_DLZ:

    Выполнить остановку bind:

    Далее произвести рестарт - samba, bind.

    Очищаем базы и конфигурацию Samba (если уже создавался домен):

    Внимание! Обязательно удаляйте /etc/samba/smb.conf перед созданием домена:

    Имя домена для разворачиваемого DC должно состоять минимум из двух компонентов, разделённых точкой.

    При этом должно быть установлено правильное имя узла и домена для сервера:

    Внимание! При указании домена, имеющего суффикс .local, потребуется на сервере и подключаемых компьютерах под управлением Linux отключить службу avahi-daemon .

    Создание контроллера домена domain.alt с паролем администратора Pa$$word:

    Примечание: У Samba свой собственный DNS-сервер. В DNS forwarder IP address нужно указать внешний DNS-сервер, чтобы DC мог разрешать внешние доменные имена.

    В примере показано создание домена domain.alt.

    Запустите samba-tool domain provision :

    При запросе ввода нажимайте Enter за исключением запроса пароля администратора («Administrator password:» и «Retype password:»).

    Примечание: Пароль администратора должен быть не менее 7 символов и содержать символы как минимум трёх групп из четырёх возможных: латинских букв в верхнем и нижнем регистрах, чисел и других небуквенно-цифровых символов.


    Параметры --use-rfc2307 --use-xattrs=yes позволяют поддерживать расширенные атрибуты типа UID и GID в схеме LDAP и ACL на файловой системе Linux.

    Установите службу по умолчанию и запустите её:

    Примечание: Если служба после установки никаким способом не запускается, перезагрузите сервер

    Откройте от имени суперпользователя файл /etc/krb5.conf.

    Раскомментируйте строку "default realm" и введите название области заглавными буквами.

    Ниже, под строкой [realms] вместо EXAMPLE.COM введите название области, а вместо example.com в "default domain" введите IP-адрес сервера с Samba.

    В момент создания домена Samba автоматически конфигурирует шаблон файла krb5.conf для вашего домена, и оставляет его в директории /var/lib/samba/private/krb5.conf

    Как следствие, можно его просто скопировать с заменой:

    Примечание: Samba на базе Heimdal Kerberos использует KDC несовместимый с MIT Kerberos, поэтому на контроллере домена на базе Heimdal Kerberos из пакета samba-dc , для совместимости с клиентской библиотекой libkrb5, в krb5.conf необходимо отключить использование ядерного кеша ключей - KEYRING:persistent:% .

    1. Общая информация о домене:

    2. Просмотр предоставляемых служб:

    3. Проверка конфигурации DNS

    3.1 Убедитесь в наличии nameserver 127.0.0.1 в /etc/resolv.conf :

    3.2 Проверяем имена хостов:

    • адрес _kerberos._udp.*адрес домена с точкой
    • адрес _ldap._tcp.*адрес домена с точкой
    • адрес хоста.*адрес домена с точкой

    Если имена не находятся, проверяйте выключение службы named .


    4. Проверка Kerberos:

    Внимание! Имя домена должно быть в верхнем регистре, иначе выдаст:

    Просмотр полученного билета:

    Внимание! Для серверов, не внесённых в зону обратного просмотра DNS, авторизация через nslcd по GSSAPI будет вылетать с диагностикой:

    Просмотреть доступных пользователей:

    Изменить пароль пользователя:

    Не забудьте разблокировать пользователя:

    Внимание! Не допускайте одинаковых имён для пользователя и компьютера, это может привести к коллизиям (например, такого пользователя нельзя добавить в группу). [13]


    Если компьютер с таким именем заведён, удалить его можно командой:

    Добавить пользователя в группу:

    Удалить пользователя из группы:

    Смотрим значение memberOf.

    Имя узла: dc2.domain.alt (192.168.1.106). Предполагается, что пакет task-samba-dc уже установлен.

    1. Заводим IP-адрес для dc2 на PDC (с версии Samba 4.7 и выше - запись вносится автоматически):

    Внимание! Указание аутентифицирующей информации (имени пользователя и пароля) обязательно!

    2. На dc2.domain.alt правим файл /etc/krb5.conf :

    Примечание: Перед вводом в домен в resolvconf обязательно должен быть добавлен PDC как nameserver .


    3. Получаем билет и убеждаемся, что билет получен:

    Внимание! Имя домена должно быть указано в верхнем регистре

    4. Вводим в домен:

    Если всё нормально, в конце видим:

    5. После успешного ввода в домен в resolvconf необходимо сменить адрес PDC на адрес вторичного DC (в нашем примере 192.168.1.106).

    6. Делаем службу samba запускаемой по умолчанию:

    7. Запускаем службу, соответственно:

    Внимание! Помните, что без успешной двунаправленной репликации в течение 14 дней DC исключается из Active Directory Внимание! Указание аутентифицирующей информации (имени пользователя и пароля) обязательно!

    1. Реплицируем на вторичном DC (с первичного):

    (сначала указывается приемник, затем источник, после этого реплицируемая ветка в LDAP).

    2. Реплицируем на вторичном DC (на первичный):

    (сначала указывается приемник, затем источник, после этого реплицируемая ветка в LDAP).

    Если вам нужно просто предоставить сетевой доступ к ресурсам Linux компьютера, то смотрите статью Samba.


    В этой статье мы опишем как подключить Linux компьютер к домену под управлением Microsoft Active Directory и сделать из него файловый сервер.

    После выполнения этой инструкции мы будем иметь в сети файловый сервер под управлением ОС Линукс, входящий в домен Windows 2003 и ничем не отличающийся от файлового сервера под Windows. Пользователи домена смогут обращаться к его ресурсам под своими учётными записями. Доступ регулируется группами домена AD.

    По этой инструкции настраивались Debian (4, 5), Ubuntu 9.10, создавалась она на основе официальной документации и многих рекомендаций и инструкций из Интернета. Остальные Linux'ы настраиваются сходным образом.

    Проверка требований

    • Проверяем что Samba собрана с поддержкой Kerberos:
    • Также проверим что поддерживается LDAP
    • Для корректной работы Samba в домене Windows 2003 нужны версии MIT Kerberos version >=1.3.1. Проверим:
    • Для корректной работы с Windows 2008 серверами сама Samba должна быть достаточно свежая:

    Установка Samba

    При настройке krb5-config лучше указывать IP адреса контроллеров домена, а не их DNS имена.

    Настройка Samba

    Мы описали два общих каталога:

    • backup - доступ имеют только пользователи входящие в группу BackupGroup в Active Directory. Они могут создавать и удалять файлы/каталоги
    • distrib - доступ имеют все пользователи входящие в группу DistribGroup в Active Directory

    В приведённой конфигурации подразумевается, что eth0 - это сетевой интерфейс в локальную сеть, где домен имеет полное имя WORKGROUP.DOMAIN.LOCAL

    • редактируем /etc/nsswitch:
    • Проверим, что в /etc/hosts есть корректная запись для нашего сервера, также можно добавить записи для контроллеров доменов:
    • Удаляем если есть (или переносим в резервные копии) файл /etc/samba/secrets.tdb и все файлы из /var/lib/samba/*.tdb
    • Проверяем конфигурацию (не обязательно):
    1. testparm -s

    В Ubunto testparm находится в пакете samba-common-bin

    • Проверим как Samba-3 winbind общается с контроллером домена Active Directory посредством протокола Kerberos:

    На рассхождение времени в секундах указывает строка "Server time offset: -5". Обратите внимание, что протокол Kerberos зависим от времени, и расхождение с часами контроллера домена допускается лишь незначительное, поэтому желательно настроить NTP клиент (см. статьи по настройке NTP). В Ubuntu это указывается в файле /etc/default/ntpdate:

    • В Debian (и его сыновьях, таких как Ubuntu и внуках вроде Linux Mint) при установке пакета krb5-cofig сразу предлагается его настройка. Лучше всего попробовать работать с этими настройками, но если ничего предложено не было или мы хотим что-то изменить, то редактируем /etc/krb5.conf (я для более стабильной работы использовал ip адреса вместо имён серверов):
    • Проверим работает ли Kerberos, постараемся получить билет и просмотреть его:
    • Удалим полученный билет:
    • Присоединяемся к домену:

    Всё, компьютер включен в домен, что можно проверить на контроллере. Даже если после приведённых строк получили следующие:

    Проверка работы и отладка

    • Для удобства отладки сделаем ссылку на каталог журналов:
    • Запускаем samba и winbind:
    • Для проверки правильно ли подключение к домену можно посмотреть список пользователей и групп домена (не обязательно):

    Если нас не понимают, то подсказываем пароль для wbinfo и смотрим: список доменов в сети, информацию о домене WORKGROUP, список пользователей и групп домена:

    • Проверяем, как работает NSS. Команда getent показывает инфо о пользователе, который может быть как в домене, так и юниксовый:
    • Теперь можно использовать ресурсы на линукс-сервере, на которые мы дали доступ, как обычные доменные ресурсы.

    Дополнительная настройка

    • Можно также сопоставить (но это не обязательно) локальные учётные данные и из домена Windows. Для сопоставления пользователей редактируем файл /etc/samba/smbusers.conf:
    • для сопоставления (мапирования от англ. Map) групп домена и групп UNIX выполняем:
    • После того как всё отлажено, можно понизить уровень записи в журнал до "1". В /etc/samba/smb.conf:

    Доступ к Samba из Windows 7 и 2008 r2

    Начиная с этих версий параметры авторизации у MS поменялись. Скорее всего Samba вскоре это учтёт, а пока подружить системы можно изменив на Win7 свойства сетевой безопасности:

    Пуск - Панель управления - Администрирование - Локальная политика безопасности - Локальные политики - Параметры безопасности

    Работа над ошибками

    Winbind не запускается

    При запуске Samba обнаруживаем, что winbind не запустился:

    В журнале log.winbindd обнаруживаем запись:

    Видим, что добавлен "встроенный домен" (BUILTIN) и домен "название компьютера" (STORAGE), подключиться к домену AD не удалось.

    Решение: Переподключить компьютер в домен. Удалять придётся с самого контроллера, т.к. комадна net ads leave скорее всего не поможет.

    Ошибка получения билета Kerberos

    При попытке получить билет Kerberos получили:

    Решение: указать имя домена в другом регистре. Скорее всего нужны все заглавные

    Читайте также: