Перейти к содержимому

Почему в linux нет контроллера домена

  • автор:

Поднимаем контроллер домена на Ubuntu Server

Этот вариант может быть полезен для небольших организаций с компьютерами под управлением Windows.
Нет необходимости приобретать недешевую Windows Server для организации AD и CAL лицензии для доступа к контроллеру домена.
В конечном итоге имеем плюшки AD: групповые политики, разграничение прав доступа к ресурсам и т.д.

Я попытался написать подробный алгоритм действий необходимых для организации Active Directory (AD) Domain Controller (DC) на базе Ubuntu Server.

Рассмотрим настройку контроллера домена на примере Ubuntu Server 12.04.4 LTS или Ubuntu Server 13.10, инструкция подходит для обоих вариантов без дополнительных изменений

1. Установка Ubuntu

Думаю установка Ubuntu-server не вызовет проблем даже у большинства пользователей компьютеров.
Желательно при установке ОС сразу правильно указать название машины в сети (hostname) с указанием домена (для примера использую dc1.domain.local), чтобы в дальнейшем меньше надо было править конфигурацию в файлах.
Если в сети не присутствует DHCP-сервер, установщик предложит ввести IP-адрес, маску сети, шлюз и DNS.
Во время установки, также желательно установить OpenSSH server, чтобы иметь удаленный доступ к серверу, а также правильно указать часовой пояс, в котором находится машина.

2. Настройка параметров сетевого адаптера

Настройки сети хранятся в файле /etc/network/interfaces
Редактируем его на свой вкус. В качестве редактора можно использовать nano, vi и т.п.
Для редактирования файлов понадобятся root права, их можно получить например командой после этого, Вы будете работать из под пользователя root.
О том что Вы работаете с правами root пользователя свидетельствует знак # в приглашении командной строки
Либо Вы можете перед каждой командой, которая требует root доступа, приписывать sudo

В конфигурации Вашего сетевого интерфейса, скорее всего, будет

auto eth0
iface eth0 inet static
address 192.168.10.1
netmask 255.255.255.0
gateway 192.168.10.10
dns-nameservers 192.168.10.10
dns-search domain.local domain

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

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

Если Вы все же не установили OpenSSH server на первом этапе, это можно сделать командой
Перед установкой чего либо, лучше сначала обновить систему и пакеты командой
Для того, чтобы компьютеры сети сверяли время по нашему серверу установим ntp-сервер

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

4. Сборка Samba4

после чего необходимо перезагрузить компьютерНе забываем про root права
Скачиваем последнюю стабильную версию Samba из GIT репозитария
конфигурируем, компилируем и устанавливаем Samba Параметр —enable-debug необходим для отображения более подробной информации в логах Samba.

После того, как соберется и установится Samba (это долгое занятие), для удобства её использования, необходимо прописать пути до исполняемых файлов /usr/local/samba/sbin и /usr/local/samba/bin в файлах /etc/sudoers переменная secure_path и /etc/environment переменная PATH, добавив строку :/usr/local/samba/sbin:/usr/local/samba/bin
должна получится строчка что-то вроде этой:

перезагрузимся еще раз (на всякий случай)

5. Поднимаем AD

В качестве DNS сервера AD будем использовать Samba, поэтому отключаем bind командой

Для манипуляций с AD в Samba существует инструмент samba-tool.
Для первоначальной настройки Samba вводим команду

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

то перед повторным выполнением первоначальной настройки, необходимо удалить содержимое каталогов /usr/local/samba/private/ и /usr/local/samba/etc/
Если необходимо изменить сложность паролей это можно сделать командой эта команда отключает требование сложности, отключает сроки действия паролей, устанавливает минимальную длину пароля 6 символов

Далее необходимо подправить настройки Samba и добавить туда следующие строки в секцию [global]

Это позволит динамически обновлять DNS-записи на сервере, при входе рабочей станции (под управлением windows) в домен и отключит поддержку печати, которая постоянно выдает ошибки в лог.

В файле /etc/resolvconf/resolv.conf.d/head необходимо указать наш DNS-сервер Samba 127.0.0.1
и перезапустить сервис resolvconf
Также установим Kerberos клиенти настроим на AD с помощью файла созданного на этапе samba-tool domain provision
Для автоматического запуска сервиса Samba необходим скрипт:

6. Проверяем работоспособность сервера

Name: dc1.domain.local
Address: 192.168.10.1

Вот и всё.
Можно вводить в домен клиентов, заводить пользователей.

Управлять AD можно:
частично при помощи samba-tool на Ubuntu
при помощи Administration Tools Pack на Windows XP
при помощи Remote Server Administration Tools (RSAT) на Windows 7 и выше

сервер linux в качестве контроллера домена

Превращаем Ubuntu Server в контроллер домена с помощью samba-tool

С помощью Samba можно превратить сервер, работающий под управлением ОС семейства Linux, в контроллер домена (Domain Controller, DC) Active Directory. Тот DC, который мы собираемся поднять, сможет работать как контроллер домена Windows NT4. Он подойдёт для централизованного хранения данных учётных записей пользователей и компьютеров.

Начнём с установки необходимого ПО.

Установка

Первый шаг — установка на сервер пакетов Samba и Winbind. Сделать это можно с помощью следующей команды:

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

После установки можно приступать к настройкам.

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

Здесь IP_ADDRESS_OF_SERVER — это реальный адрес сервера Samba. Проверьте, чтобы файл содержал актуальные данные.

На рисунке ниже показаны результаты исполнения этих команд, которыми можно будет воспользоваться для того, чтобы удалить ненужные файлы. Если же подобные файлы в системе не существуют — можно сразу двигаться дальше.

9e3b044d9ae224112152676ef568d611
Поиск файлов, которые надо удалить

Использование samba-tool

Прежде чем продолжать, позаботьтесь о регистрации пользователей в Samba. Этот шаг очень важен — иначе пользователям не удастся пройти аутентификацию. Делается это следующими командами:

Здесь USERNAME — имя существующего пользователя, которого надо добавить к Samba. Указать пароль нужно будет лишь после ввода первой команды. Первая команда добавляет нового пользователя и запрашивает пароль для него; вторая — активирует созданный аккаунт.

Настройка DNS-сервера

Тут же имеются настройки использования сетевым интерфейсом статического IP-адреса. Обратите внимание на то, что всё, набранное ЗАГЛАВНЫМИ буквами, надо настроить в соответствии с параметрами вашей системы.

После выполнения настроек перезапустите сетевые сервисы такой командой:

Настройка Kerberos

Тестируем и подключаемся

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

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

55cc4821e1b44cdc97645b21e5d4e2fc
Успешное подключение

Итоги

Уважаемые читатели! А какие варианты взаимодействия экосистем Linux и Windows кажутся вам наиболее интересными и полезными?

Контроллер домена на Linux?

Добрый день.
Хотелось бы поделиться с вами одним интересным моим опытом – Контроллер домена на Linux. В данной статье я скорее всего напишу небольшой мини обзор систем с помощью которых я пытался реализовать альтернативу ActiveDirectory.

Немного истории:
Написано мною в Январе 2009: Вообще я далеко не профи в *nix системах, но всё таки активно интересуюсь и изучаю их. В компании, где я работаю, около 3-4 моих серверов на базе Debian и FreeBSD. Которые выполняют различные задачи для обеспечения основных бизнес процессов компании.
По поводу домена на linux я слышал множество упрёков и похвал. И вот более года назад задался вопросом поднятия домена на Linux. Во первых просто интересно, а во вторых он абсолютно бесплатен, что и требовала компания где я работал. За год перебрал кучу вариантов, кучу сборок. Поднимал в ручную… ldap+samba+krb на BSD и Linux системах. Но мне казалось что всё это не то. Либо безумно неудобно управлять, либо куча лишнего. Куча лишнего было в готовых дистрибутивах (аля-домен за одну минуту.). Было боязно внедрять их в мою не большую и не маленькую компанию(Более 80-100 рабочих станций в одном только офисе). Во первых неизвестно что и как разработчики делали с дистрибутивом, во вторых электронная поддержка на иностранном языке ))) А самому разгребать последствия не хочется.

d4ec1410680d4221a36325576538e2c4

Чуть ниже я напишу мини обзор некоторых готовых вариантов поднятия домена. А в самом низу читайте мои итоги и выводы относительно всего этого опыта. Прошу заметить что выводы мои собственные и никого ни к чему не призывают… просто так решил.

1.Mandriva Directory Server.

Пожалуй самый удачный вариант из всех что имеется. Ничего лишнего (то что лишнее можно спокойно выключить). Mandriva Directory Server это не тупо сборка или готовый дистрибутив который можно развернуть за 5 минут. MDS это пожалуй единственный вариант который совмещает в себе ручную работу системного администратора по сборке и настройке основных компонентов домена + готовые решения от Mandriva по управлению всеми основными службами контроллера домена. Кстати говоря эти решения нужно так же ставить и настраивать в ручную.

Управление производится через удобный Web интерфейс.

Mandriva Directory Server может управлять следующими службами:

1.Расширенный почтовый сервер Postfix, с поддержкой Imap и POP3 сервера (Dovecot), с проверкой на вирусы и фильтрации почты (Amavis, Spamassassin, ClamAV), SMTP сервером, с поддержкой квот, SSL и TSL. (можно не ставить )
2.Сам контроллер домена (Ldap+samba)
3.Корпоративный кэширующий прокси сервер (SQUID). (Можно не ставить)
4.DNS сервер (Bind).
5.CUPS сервер печати
6.Управлением общими сетевыми ресурсами.
7.Служба DHCP
8.Перемещаемые профиля

*Плюс к этому MDS не ограничивает вас в службах сервера. Вы можете так же оснастить сервер к примеру NFS сервером, антивирусной защитой и т.д.

Так же есть система плагинов… которые пишутся на уровне PHP и Phyton (есть офф документация).
Собственно этот вариант мне и подошёл.

e5b34cddf37b52962238fab994092281
b484c8fc52caa19f66f8b8dbfa934687
39239b30dae8c18eb4c4e76c69afae90

Довольно интересное решение… созданное Сергеем Бутаковым, (город Лесной Свердловской области. Написано на сайте )

Распространяется в качестве готового дистрибутива основанного на GNU/Linux (какой именно непонятно).
Это специализированный дистрибутив, заточенный только под надобности сервера. По поводу того, можно ставить на него ещё что ни будь или нет… ничего не могу сказать.

Управление производится на уровне консоли а так же имеется удобный web интерфейс.

Основные возможности
Централизованное управление учётными данными пользователей
Сервер динамической сетевой настройки узлов (DHCP)
Первичный контроллер Samba домена (совместимый с MS Windows NT4 PDC) с поддержкой перемещаемых профилей и домашних каталогов пользователей
Файловый сервер (протокол SMB/CIFS)

Немного не понятный проект. Распространяется в качестве готового дистрибутива на базе CentOS… в который напихано всё что можно.

«ClarkConnect мощнейшее серверное программное решение разработанное для малых и средних организаций. Тем не менее ClarkConnect поставляется с эксклюзивным перечнем функций и интегрированных служб, решение которое легко конфигурируется через удобный web-интерфейс.» (С)

Не понравился он мне тем что в нём есть много лишнего. Мне бы не хотелось делить на сервере контроллер домена и интернет шлюз.

ClarkConnect это интегрированный антивирус который проверяет на вирусы всё… почту трафик и шары. Так же это backup сервер, интернет сервер, сервер ldap, samba, VPN, Mysql, Mail, FTP и т.д.

Имеется Community Edition версия. А для тех кто хочет поддержку, могут приобрести Enterprise версию.

Так же есть неофициальный русский сайт с поддержкой.

a0a5c03beeaf5471cead521d24430379

4.Fedora Directory Server (она же 389 Directory Server)

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

Собственно Mandriva Directory Server построен на базе Fedora Directory Server. Только FDS немного глобальнее.
Здесь и поддержка синхронизации с Active Directory доменом (на базе 2000/2003 win), и управление производится через java консоль. Так же есть несколько интересных приблуд.

Используя одно из этих решений вы получаете домен уровня NT4. Тобишь Samba3+Ldap. Этот стандарт ниже чем домен на базе Windows 2003\2008.
На мой взгляд данные решения подойдут компаниям в которых парк машин не превышает 80.
Плюсы данного решения состоят в том, что оно бесплатное а так же есть возможность интегрировать БЕЗ ПРОБЛЕМ *nix машины на уровне ldap, что позволит создать своего рода гетерогенную локальную сеть.

Windows машины ведут в домене на Linux себя как рыба в воде. Всё отлично работает, профиля сохраняются… подключаются сетевые диски и даже есть возможность реализовать частично ГРУППОВЫЕ ПОЛИТИКИ (http://hidx.wordpress.com/2009/01/28/gpo-samba-domen/), но только на уровне NT4 домена.

Глобальные GPO которые есть в Windows 2003\2008 реализовать не получится. Это в принципе основная причина которая затрудняет использование данного домена в организациях с 100+ парком машин.

Я остановился на Mandriva Directory Server на базе Debian Lenny. Вот только, внедрил я её уже в другую организацию.
В любом случае опыт который получаешь в процессе сборки домена, очень полезен.

Поднимаем контроллер домена на Ubuntu Server

Этот вариант может быть полезен для небольших организаций с компьютерами под управлением Windows.
Нет необходимости приобретать недешевую Windows Server для организации AD и CAL лицензии для доступа к контроллеру домена.
В конечном итоге имеем плюшки AD: групповые политики, разграничение прав доступа к ресурсам и т.д.

Я попытался написать подробный алгоритм действий необходимых для организации Active Directory (AD) Domain Controller (DC) на базе Ubuntu Server.

Рассмотрим настройку контроллера домена на примере Ubuntu Server 12.04.4 LTS или Ubuntu Server 13.10, инструкция подходит для обоих вариантов без дополнительных изменений

1. Установка Ubuntu

Думаю установка Ubuntu-server не вызовет проблем даже у большинства пользователей компьютеров.
Желательно при установке ОС сразу правильно указать название машины в сети (hostname) с указанием домена (для примера использую dc1.domain.local), чтобы в дальнейшем меньше надо было править конфигурацию в файлах.
Если в сети не присутствует DHCP-сервер, установщик предложит ввести IP-адрес, маску сети, шлюз и DNS.
Во время установки, также желательно установить OpenSSH server, чтобы иметь удаленный доступ к серверу, а также правильно указать часовой пояс, в котором находится машина.

2. Настройка параметров сетевого адаптера

Настройки сети хранятся в файле /etc/network/interfaces
Редактируем его на свой вкус. В качестве редактора можно использовать nano, vi и т.п.
Для редактирования файлов понадобятся root права, их можно получить например командой после этого, Вы будете работать из под пользователя root.
О том что Вы работаете с правами root пользователя свидетельствует знак # в приглашении командной строки
Либо Вы можете перед каждой командой, которая требует root доступа, приписывать sudo

В конфигурации Вашего сетевого интерфейса, скорее всего, будет

auto eth0
iface eth0 inet static
address 192.168.10.1
netmask 255.255.255.0
gateway 192.168.10.10
dns-nameservers 192.168.10.10
dns-search domain.local domain

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

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

Если Вы все же не установили OpenSSH server на первом этапе, это можно сделать командой
Перед установкой чего либо, лучше сначала обновить систему и пакеты командой
Для того, чтобы компьютеры сети сверяли время по нашему серверу установим ntp-сервер

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

4. Сборка Samba4

/dev/mapper/dc1—vg-root / ext4 user_xattr,acl,barrier=1,errors=remount-ro 0 1

после чего необходимо перезагрузить компьютерНе забываем про root права
Скачиваем последнюю стабильную версию Samba из GIT репозитария
конфигурируем, компилируем и устанавливаем Samba Параметр —enable-debug необходим для отображения более подробной информации в логах Samba.

После того, как соберется и установится Samba (это долгое занятие), для удобства её использования, необходимо прописать пути до исполняемых файлов /usr/local/samba/sbin и /usr/local/samba/bin в файлах /etc/sudoers переменная secure_path и /etc/environment переменная PATH, добавив строку :/usr/local/samba/sbin:/usr/local/samba/bin
должна получится строчка что-то вроде этой:

перезагрузимся еще раз (на всякий случай)

5. Поднимаем AD

В качестве DNS сервера AD будем использовать Samba, поэтому отключаем bind командой

Для манипуляций с AD в Samba существует инструмент samba-tool.
Для первоначальной настройки Samba вводим команду

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

ERROR(ldb): uncaught exception — 0000052D: Constraint violation — check_password_restrictions: the password is too short. It should be equal or longer than 7 characters!

то перед повторным выполнением первоначальной настройки, необходимо удалить содержимое каталогов /usr/local/samba/private/ и /usr/local/samba/etc/
Если необходимо изменить сложность паролей это можно сделать командой эта команда отключает требование сложности, отключает сроки действия паролей, устанавливает минимальную длину пароля 6 символов

Далее необходимо подправить настройки Samba и добавить туда следующие строки в секцию [global]

allow dns updates = nonsecure and secure
printing = bsd
printcap name = /dev/null

Это позволит динамически обновлять DNS-записи на сервере, при входе рабочей станции (под управлением windows) в домен и отключит поддержку печати, которая постоянно выдает ошибки в лог.

В файле /etc/resolvconf/resolv.conf.d/head необходимо указать наш DNS-сервер Samba 127.0.0.1
и перезапустить сервис resolvconf
Также установим Kerberos клиенти настроим на AD с помощью файла созданного на этапе samba-tool domain provision
Для автоматического запуска сервиса Samba необходим скрипт:

6. Проверяем работоспособность сервера

Name: dc1.domain.local
Address: 192.168.10.1

Warning: Your password will expire in 41 days on Wed Apr 23 18:49:14 2014

Valid starting Expires Service principal
12/03/2014 19:17 13/03/2014 05:17 krbtgt/DOMAIN.LOCAL@DOMAIN.LOCAL

Domain=[DOMAIN] OS=[Unix] Server=[Samba 4.1.6]
. D 0 Wed Mar 12 18:46:48 2014
… D 0 Wed Mar 12 18:49:15 2014

Вот и всё.
Можно вводить в домен клиентов, заводить пользователей.

Управлять AD можно:
частично при помощи samba-tool на Ubuntu
при помощи Administration Tools Pack на Windows XP
при помощи Remote Server Administration Tools (RSAT) на Windows 7 и выше

Операционные системы Astra Linux

Оперативные обновления и методические указания

Операционные системы Astra Linux предназначены для применения в составе информационных (автоматизированных) систем в целях обработки и защиты 1) информации любой категории доступа 2) : общедоступной информации, а также информации, доступ к которой ограничен федеральными законами (информации ограниченного доступа).

1) от несанкционированного доступа;
2) в соответствии с Федеральным законом от 27.07.2006 № 149-ФЗ «Об информации, информационных технологиях и о защите информации» (статья 5, пункт 2).

Операционные системы Astra Linux Common Edition и Astra Linux Special Edition разработаны коллективом открытого акционерного общества «Научно-производственное объединение Русские базовые информационные технологии» и основаны на свободном программном обеспечении. С 17 декабря 2019 года правообладателем, разработчиком и производителем операционной системы специального назначения «Astra Linux Special Edition» является ООО «РусБИТех-Астра».

На web-сайтах https://astralinux.ru/ и https://wiki.astralinux.ru представлена подробная информация о разработанных операционных системах семейства Astra Linux, а также техническая документация для пользователей операционных систем и разработчиков программного обеспечения.

Мы будем признательны Вам за вопросы и предложения, которые позволят совершенствовать наши изделия в Ваших интересах и адаптировать их под решаемые Вами задачи!

Репозитория открытого доступа в сети Интернет для операционной системы Astra Linux Special Edition нет. Операционная система распространяется посредством DVD-дисков.

Информацию о сетевых репозиториях операционной системы Astra Linux Common Edition Вы можете получить в статье Подключение репозиториев с пакетами в ОС Astra Linux и установка пакетов.

В целях обеспечения соответствия сертифицированных операционных систем Astra Linux Special Edition требованиям, предъявляемым к безопасности информации, ООО «РусБИтех-Астра» осуществляет выпуск очередных и оперативных обновлений.

Очередные обновления (версии) предназначены для:

Оперативные обновления предназначены для оперативного устранения уязвимостей в экземплярах, находящихся в эксплуатации, и представляют собой бюллетень безопасности, который доступен в виде:

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

Linux в домене Active Directory

Перед администраторами иногда встают задачи интеграции Linux серверов и рабочих станций в среду домена Active Directory. Обычно требуется:
1. Предоставить доступ к сервисам на Linux сервере пользователям домена.
2. Пустить на Linux сервер администраторов под своими доменными учётными данными.
3. Настроить вход на Linux рабочую станцию для пользователей домена, причём желательно, чтобы они могли при этом вкусить все прелести SSO (Я, например, не очень люблю часто вводить свой длинный-предлинный пароль).

Обычно для предоставления Linux системе пользователей и групп из домена Active Directory используют winbind либо настраивают библиотеки nss для работы с контроллером домена Active Directory по LDAP протоколу. Но сегодня мы пойдём иным путём: будем использовать PowerBroker Identity Services (Продукт известен также под именем Likewise).

Установка.

Есть две версии продукта: Enterprise и Open. Мне для реализации моих задач хватило Open версии, поэтому всё написанное далее будет касаться её.
Получить Open версию можно на сайте производителя, но ссылку Вам предоставят в обмен на Ваше имя, название компании и e-mail.
Существуют 32-х и 64-х пакеты в форматах rpm и deb. (А также пакеты для OS X, AIX, FreeBSD, SOlaris, HP-UX)
Исходники (Open edition) доступны в git репозирории: git://source.pbis.beyondtrust.com/pbis.git
Я устанавливал PBIS на Debian Wheezy amd64:

Содержимое пакета устанавливается в /opt/pbis. Также в системе появляется новый runscript lwsmd, который собственно запускает агента PBIS.
В систему добавляется модуль PAM pap_lsass.so.
Утилиты (большей частью консольные), необходимые для функционирования PBIS, а также облегчающие жизнь администратору размещаются в /opt/pbis/bin

Ввод в домен.

Перед вводом в домен следует убедиться, что контроллеры домена доступы и доменные имена корректно разворачиваются в ip. (Иначе следует настроить resolv.conf)
Для ввода в домен предназначены две команды: /opt/pbis/bin/domainjoin-cli и /opt/pbis/bin/domainjoin-gui. Одна из них работает в командной строке, вторая использует libgtk для отображения графического интерфеса.
Для ввода в домен потребуется указать: имя домена, логин и пароль доменного пользователя с правами для ввода ПК в домен, контейнер для размещения объекта компьютера в домене — всё то же самое, что и при вводе в домен windows ПК.

После ввода в домен потребуется перезагрузка.
Обратите внимание — PBIS умеет работать с сайтами Active Directory. Клиент PBIS будет работать с контроллерами того сайта, в котором он находится!

После перезагрузки.

После перезагрузки и id, и getent выдадут вам пользователей и группы домена (национальные символы обрабатываются корректно. Пробелы заменяются на символ «^»).
В доменной DNS зоне появится запись с именем вашего ПК.
Не спешите входить от имени доменного пользователя. Сначала имеет смысл (но вовсе не обязательно) настроить PBIS.

Одно из отличий Enterprise версии — возможность управлять этими настройками через GPO.
Стоит обратить внимание на HomeDirPrefix, HomeDirTemplate.
Я также сразу задал «RequireMembershipOf» — только пользователи, члены групп или SID из этого списка могут авторизоваться на компьютеры.
Описание каждого параметра можно получить, например так:

Значение параметра устанавливается например так:

Обратите внимание — PBIS не использует атрибуты SFU либо иные другие атрибуты Acrive Directory для получения loginShell пользователя, а также его uid и gid.
loginShell для доменных пользователей задаётся в настройках PBIS, причём установка различных loginShell различным пользователям — возможна только в Enterprise версии.
uid формируется как хэш SID пользователя.
gid — как хэш SID primaryGroup пользователя.
Таким образом на двух ПК пользователь получит всегда одинаковые uid и gid.

Теперь можно входить в систему от имени доменного пользователя. После входа доменного пользователя обратите внимание на вывод klist — PBIS получит для пользователя необходимые билеты kerberos. После этого можно безпроблемно обращаться к ресурсам на windows ПК (Главное, чтобы используемое ПО поддерживало GSSAPI). Например: теперь я без дополнительных запросов паролей (и пароль мой нигде не сохранён!) открываю любые smb ресурсы домена в Dolphin. Также Firefox (при настройке network.negotiate-auth.trusted-uris) позволяет использовать SSO при доступе к Web-порталам с доменной авторизацией (естественно если SSO настроена на сервере)

А как же SSO при доступе к ресурсам на Linux ПК?

Можно и так! PBIS заполняет /etc/krb5.keytab и поддерживает его актуальным. Поэтому серверное ПО с поддержкой GSSAPI может быть сконфигурировано для SSO.
Например, для доступа к серверу по ssh, в конфигурационный файл /etc/ssh/sshd_config (путь в вашей системе может отличаться)
И при подключении указать доменное имя компьютера (присутствующее в его SPN — иначе билет kerberos не сможет быть выписан)
UsePAM yes

(PBIS предоставляет модуль для PAM в том числе)
Также логично будет добавить директиву «AllowGroups» и указать через пробел доменные группы, пользователям которых вы намерены дать доступ к ssh серверу.

На клиентском Linux ПК в конфигурацию клиента ssh достаточно включить:

Естественно на клиентском Linux компьютере должен быть настроен kerberos. Простейший способ выполнить это условие — так же ввести клиентский компьютер в домен и работать от имени доменного пользователя.

Если вы намереваетесь организовать таким образом ssh доступ администраторов к linux серверам — хорошей идеей будет запретить на них вход root по ssh и добавить linux-администраторов (а ещё лучше их доменную группу) в файл sudoers.

Это не единственные сценарии применения PBIS. если статья покажется Вам интересной — в следующей напишу как организовать samba файловый сервер в домене для доменных пользователей без winbind.

Дополнительную информацию по теме можно получить на форуме сообщества PowerBroker Identity Services: forum.beyondtrust.com

UPD 2 Пришла обратная связь от пользователя sdemon72. Возможно кому-то будет полезно.

Здравствуйте! Попробовал ваш рецепт на свежей linuxmint-18-mate-64bit, все получилось с некоторыми оговорками:
1. С получением программы через сайт у меня возникли сложности (не захотел писать реальный номер телефона, а бутафорский не прокатил — пришло письмо с сомнениями по его поводу), зато нашел репозиторий с наисвежайшими версиями: repo.pbis.beyondtrust.com/apt.html
2. При запуске программы выдает ошибки, чтобы их избежать, нужно перед запуском сделать следующее:
2.1. Установить ssh:
sudo apt-get install ssh
2.2. Поправить /etc/nsswitch.conf:
hosts: files dns mdns4_minimal [NOTFOUND=return]
(т.е. переносим dns с конца строки на вторую позицию)
2.3. Поправить /etc/NetworkManager/NetworkManager.conf:
#dns=dnsmasq
(т.е. комментируем эту строчку)
2.4. Перезапустить network-manager:
sudo service network-manager restart

После этого все сработало на ура! Буду очень благодарен, если внесете эти дополнения в статью, т.к. в поиске по сабжу она выпадает в первых строках. Оставлять комментарии я не могу (запрещает сайт), поэтому пишу вам лично.

Если интересно — история моих изысканий тут: linuxforum.ru/topic/40209

С уважением, Дмитрий

UPD 3: Почему бесплатную версию PBIS не получится применить в большой компании
В бесплатной версии работает только один алгоритм генерации UNIX iD (uid и gid) по SID доменного пользователя. Так вот он не обеспечивает уникальности
этих идентификаторов. Когда у вас очень старый домен или просто много пользователей очень высок риск, что два и более пользователя получат одинаковые идентификаторы в системе с OpenPBIS. В платной версии есть возможность выбора между алгоритмами генерации id, но она стоит значительно дороже аналогичного продукта от Quest Software ;(.

How to Create a Domain Controller on Linux for AD

Boost your career with the AWS Certified Solutions Architect certification. Get a FREE prep guide: deep dive into exam domains, preparation tips, and valuable resources. Download.

Table of Contents

A domain controller on Linux server?! Impossible! The reaction is valid, especially for those who hear the concept for the first time. Turns out that not only can you set up a domain controller Linux server, but you can also do so for free!

Whether you opt for Linux for cost, standardization, or greener, leaner tech stack, learning how to set up a Linux DC is a good skill for every administrator.

Read on to learn how to use Samba as a reliable domain controller Linux server.

Scan Your AD for 930+ Million Compromised Passwords. Download Specops Password Auditor, a FREE read only tool that identifies password-related vulnerabilities.

Prerequisites

This tutorial will be a hands-on demonstration. If you’d like to follow along, be sure you have an Ubuntu Server. This tutorial will use an Ubuntu Server 22.04 LTS with the following configuration.

  • Hostname: oddjobs-dc
  • IP Address: 192.168.8.10
  • Domain: OJI.COM
  • FQDN: oddjobs-dc.oji.com

Preparing the Domain Controller on Linux Server

After meeting all the prerequisites, you must ensure there are no default operating system settings that might hamper the functioning of the DC. Don’t worry. This step is not as complicated as it may sound. Follow the below steps to accomplish this task.

Setup the Hosts File Entry

The first task is to add your server’s hostname and FQDN entries in the local hosts ( /etc/hosts ) file.

1. First, open your preferred SSH client and log in to your Ubuntu server.

2. Open your hosts (/etc/hosts) file in a text editor, such as nano.

3. Delete any entry that maps your hostname or FQDN to any IP besides the static IP. For example, this server’s static IP address is 192.168.8.10, so leave this entry if it exists. Refer to the example below.

Delete unnecessary hosts entry

Delete unnecessary hosts entry

4. Next, add an entry to map your host’s FQDN and static IP address. In this tutorial, the server FQDN is oddjobs-dc.oji.com, so the entry to add is:

Add your domain controller Linux server FQDN and host

Add your domain controller Linux server FQDN and host

5. Save the hosts (/etc/hosts) file and exit the editor.

Confirm Hostname and FQDN Resolution

Run the commands below to confirm the server’s hostname and that the FQDN resolves to the correct IP address.

As you can see below, the commands returned the expected FQDN and IP address.

Verify the FQDN and IP resolution

Verify the FQDN and IP resolution

Disable the Network Name Resolution Service

Ubuntu has a service called systemd-resolved , which takes care of the DNS resolution requests. This service is unsuitable for Samba, and you must disable it and manually configure the DNS resolver instead.

1. Disable the systemd-resolved service by running the command below.

Disable the DNS resolver service

Disable the DNS resolver service

2. Next, remove the symbolic link to the file /etc/resolv.conf.

3. Create a new /etc/resolv.conf file in your text editor. This example uses nano.

4. Populate the /etc/resolv.conf file with the following information. Replace 192.168.8.10 with your server’s IP address and oji.com with your domain. Leave the nameserver 1.1.1.1 as the fallback DNS resolver, which is the public DNS resolver by Cloudflare.

Your /etc/resolv.conf should look similar to the screenshot below.

Update the DNS resolver file

Update the DNS resolver file

5. Save the file and exit the editor.

Installing Samba

After completing the server preparation, it is time to install Samba and other required packages to provision the domain controller.

1. First, ensure that the repository cache is up to date by running the below command.

2. Run the command below to install the required packages for a fully functioning domain controller.

3. On the Configuring Kerberos Authentication step, type the DNS domain in uppercase. In this example, the default realm domain is OJI.COM. Highlight Ok, and press Enter to accept the value.

Configure the default realm

Configure the default realm

4. On the next screen asking for the Kerberos servers for your realm, type the server hostname and press Enter.

Type the Kerberos server hostname

Type the Kerberos server hostname

5. On the next screen asking for the Administrative server for your Kerberos realm, type the server hostname and press Enter.

Type the administrative server hostname

Type the administrative server hostname

6. After the configuration, disable the unnecessary services (winbind, smbd, and nmbd).

Disable unnecessary services

Disable unnecessary services

7. Enable and activate the samba-ad-dc service. This service is what Samba needs to act as an Active Directory domain controller Linux server.

Activate and enable the samba-ad-dc service

Activate and enable the samba-ad-dc service

Provisioning the Domain Controller Linux Server

Using the samba-tool binary, you can now provision the domain controller upon your Samba installation. Samba-tool is a configuration tool to interact with and configure various aspects of a Samba-based AD.

1. For good measure, backup the existing /etc/samba/smb.conf and /etc/krb5.conf files.

2. Run the below command to promote the Samba to an Active Directory domain controller Linux server.

The –use-rfc2307 switch enables the Network Information Service (NIS) extension, which allows the DC to manage UNIX-based user accounts appropriately.

3. Answer the prompts as follows.

  • Realm – the tool automatically detects your Kerberos realm. In this example, the realm is OJI.COM . Press Enter to accept the default.
  • Domain – the tool automatically detects the NetBIOS domain name. In this example, the NetBIOS is OJI . Press Enter to continue.
  • Server role – the tool automatically populates the server role as a domain controller ( dc ). Press Enter to continue.
  • DNS backend – the default is SAMBA_INTERNAL . Press Enter to accept the default.
  • DNS forwarder IP address – type the fallback resolver address you specified in resolve.conf earlier, which is 1.1.1.1 . Press Enter to continue.
  • Administrator password – set the password of the default domain administrator. The password you specify must meet Microsoft’s minimum complexity requirements. Press Enter to proceed.
  • Retype password – retype the default domain administrator password and press Enter.

Configure the domain controller Linux server

Configure the domain controller Linux server

At the end of the configuration, you’ll see the following information.

Domain provisioning results

Domain provisioning results

4. The samba-tool command generated the Samba AD Kerberos configuration file at /var/lib/samba/private/krb5.conf. You must copy this file to /etc/krb5.conf. To do so, run the following command.

5. Finally, start the samba-ad-dc service.

As you can see below, the service status is now active (running).

active (running)

active (running)

Testing the Domain Controller Linux Server

The Samba AD DC server is now running. In this section, you will perform a few post-installation tests to confirm key components are functioning as desired. One such test is to attempt logging into the default network shares on the DC.

Run the smbclient command to log on as the default administrator account and list (ls) the contents of the netlogon share.

Enter the default admin password. The share should be accessible without errors if the DC is in a good state. As you can see below, the command listed the netlogon share directory.

List the netlogon share

List the netlogon share

Verifying DNS Resolution for Key Domain Records

Run the commands below to look up the following DNS records.

  • TCP-based LDAP SRV record for the domain.
  • UDP-based Kerberos SRV record for the domain.
  • A record of the domain controller.

Each command should return the following results, indicating that the DNS resolution works.

Query the DNS SRV and A records

Query the DNS SRV and A records

Testing Kerberos

The last test is to attempt to issue a Kerberos ticket successfully.

1. Execute the kinit command for the administrator user. The command automatically appends the realm to the user account. For example, the administrator will become [email protected], where OJI.com is the realm.

2. Type the administrator password on the prompt and press Enter. If the password is correct, you’ll see a Warning message about the password expiration, as shown below.

Acquiring a Kerberos ticket

Acquiring a Kerberos ticket

3. Run the klist command below to list all tickets in the ticket cache.

The screenshot below shows that the Kerberos ticket for the administrator account is in the ticket cache. This result indicates that Kerberos authentication works on your domain controller Linux server.

View Kerberos tickets in the ticket cache

View Kerberos tickets in the ticket cache

Extend the functionality of Group Policy and simplify the management of fine-grained password policies. Target any GPO level, group, user, or computer with dictionary and passphrase settings with Specops Password Policy. Try it Free!

Conclusion

Congratulations on reaching the end of this tutorial. You have now learned to stand up an Active Directory domain controller Linux server quickly. Deepen your knowledge on the subject by learning to create users and join client computers in the domain.

Hate ads? Want to support the writer? Get many of our tutorials packaged as an ATA Guidebook.

More from ATA Learning & Partners

Recommended Resources!

Recommended Resources for Training, Information Security, Automation, and more!

Get Paid to Write!

ATA Learning is always seeking instructors of all experience levels. Regardless if you’re a junior admin or system architect, you have something to share. Why not write on a platform with an existing audience and share your knowledge with the world?

ATA Learning Guidebooks

ATA Learning is known for its high-quality written tutorials in the form of blog posts. Support ATA Learning with ATA Guidebook PDF eBooks available offline and with no ads!

unixforum.org

Достойный контроллер домена на Linux. (Подробный HowTo) (MDS, Ldap, Samba, Postfix, SQUID)

  • Перейти на страницу:

Достойный контроллер домена на Linux. (Подробный HowTo)

Сообщение HidX » 18.01.2009 20:39

Глава I – Настройка сервера и домена.

Добрый вечер. Хотелось бы поделиться с вами одним интересным моим проектом – Контроллер домена на Linux. В данной теме реализован подробный мануал (Howto) по настройке и внедрению рабочего домена с консолью управления – Mandriva Directory Server.

Немного истории:
Вообще я далеко не профи в *nix системах, но всё таки активно интересуюсь и изучаю их. По поводу домена на linux я слышал множество упрёков и похвал. И вот около года назад задался вопросом поднятия домена на Linux. Во первых просто интересно, а во вторых он абсолютно бесплатен, что и требовала компания где я работал. За год перебрал кучу вариантов, кучу сборок С подобной реализацией на сомнительных диструбутивах, поднял несчётное количество ПАКетов ldap SAmba. Но мне казалось что всё это не то. Либо безумно неудобное управление, либо куча лишнего. Куча лишнего было в готовых дистрибутивах (аля-домен за одну минуту.). Было боязно внедрять их в мою не большую и не маленькую компанию(Более 100 рабочих станций в одном только офисе). Во первых неизвестно что и как разработчики делали с дистрибутивом, во вторых поддержка на иностранном языке ))) А самому разгребать последствия не хочется.

Не так давно, наткнулся на статью Oliver Meyer. По сборке и настройке домена на Debian ИСПользуя консоль управления Mandriva Directory Server. Оказалось то что нужно. Ничего лишнего, простота управления доменом. Есть конечно свои минусы и багги.
Статья Оливера была отличной, но имела свои минусы ( да и вообще она была на немецком ). На основе этой статьи я начал писать свой проект.

Собственно мой проект — это перевод статьи Оливера (безумно спасибо ему!) + я добавил что то своё, поправил некоторые моменты из за которых могли возникнуть большие проблемы, и написал несколько дополнений (групповые политики для настройки рабочих сред пользователей, дополнительные модули для консоли и т.д.)
В итоге получилось . Довольно удачный проект который позволяет, даже мало знающему в Linux человеку, поднять рабочий стабильный PDC с удобной консолью управления, а так же в перспективе написания к этой консоли своих собственных модулей на уровне phyton ИЛИ PHP .

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

Сам процесс

Итак. Для начала ставим сам Debian. У меня под рукой оказался debian-40r5 — я ставлю его. Стандартная установка. При установке выбрал Русский язык и вбил вручную настройки сети.
В ходе проделанной работы по этому мануалу мы получим:

• OpenLdap сервер.
• Samba сервер в качестве первичного контроллера домена (PDC), а так же файлсервера.
• DNS сервер (Bind).
• Корпоративный DHCP сервер.
• Административная консоль управления службами Mandriva Directory Server.
• Групповые политики для автоматической настройки рабочих станций на Windows (начиная c XP).!
• Корпоративный кэширующий прокси сервер (SQUID).
• Расширенный почтовый сервер Postfix, с поддержкой Imap и POP3 сервера (Dovecot), с проверкой на вирусы и фильтрации почты (Amavis, Spamassassin, ClamAV), SMTP сервером, с поддержкой квот, SSL и TSL.
• Сервер синхронизации времени.
• Сервер печати Cups.
• NFS сервер.
• MMC php плагины.

Планы на ближайшее время. Реализовать

• BDC – Дополнительный (резервный) контроллер домена.
• SQUID — Проверка на вирусы, аутентификация по группам домена, модуль статистики для MDS (на основе lightsquid) — УжЕ готово.

Установки сервера

Имя компьютера – pdc
Имя домена Samba – adsl.com
Хостнэйм сервера – pdc.adsl.com
Ip адрес сервера – 192.168.50.237
Ip адрес шлюза – 192.168.50.235
Мой админский пароль – example

1. Настройка Debian.

Предполагается что установка Debian прошла без сюрпризов и сервер полностью готов для настройки. Первоначально я буду пользоваться текстовым редактором vim, он в отличие от vi более удобен, но чуть позже, когда мы обновим репозитарии, я поставлю редактор ee т.к. он на мой взгляд самый удобный ( и вообще напоминает о freebsd ). Единственное, в Debian редактор ee немного глючит: может не правильно вставить скопированный текст. Так что лучше проверять конфиги после переноса.. или продолжать пользоваться редактором vim.
Для начала проверим сетевые настройки. А именно файлы hosts, hostname, interfaces, resolv.conf

Что бы не было конфликтов при установке пакетов, идём в ребут.

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

Сеть настроили, теперь приступим за обновления репозитариев для Debian. Собственно настройка производится путём редактирования файла /etc/apt/sources.list. В нём нужно вписать путь к серверу с пакетами.

По умолчанию там стоит ссылка на пакеты с CD диска установки Debian и ссылка на сервера с обновлениями безопасности для Debian.
Т.к. у меня установочный диск с Debian не постоянно в Cd-Rom приводе, комментируем эту строку, путём добавления вперёд значка # (удалять не буду, малоли пригодится.)
Далее добавляем ниже ссылки на стандартные сервера с пакетами Dibian. Оттуда будут устанавливаться стандартное программное обеспечение:

Ещё ниже добавляем ссылку на сервер Mandriva Directory Server. Оттуда будет ставиться сама главная консоль управления доменом и службами:

Ниже добавляем ссылку на сервер с которого будет ставиться такие пакеты как ClamAV & Spamassassin. Ну и + обновления для них от туда же будет подтягиваться:

# Debian Volatile
deb http://volatile.debian.org/debian-volatile etch/volatile main contrib non-free

Ниже добавляем ссылку на сервер бэкпорт с которого будет ставиться самый свежий пакет Devecot:

# Debian Etch Backports
deb http://www.backports.org/debian etch-backports main

Сохраняем и выходим из редактирования файла.

В итоге у меня получился вот такой файл репозитариев /etc/apt/sources.list

Обновляем репозитарии командой:

В конце обновления, система может написать ошибку. Что то вроде этого:

Предлагаю не обращать внимания на это, пакеты всё равно будут устанавливаться с проблемных серверов.

Далее настраиваем поддержку ACL, это необходимо для шар самбы, что бы корректно сохранялись права виндовых машин, что бы эти права наследовались, что бы профиль пользователя Windows перемещался корректно ну и т.д.

В этом файле добавляем опцию ”acl” между опциями defaults,acl,errors=remount-ro, в раздел где будут храниться шары самбы сервера. В моём случае это раздел ”/”.

Далее нужно перемонтировать этот раздел:

После исполнения этой команды должен появиться список разделов с различными опциями. В моём разделе должна стоять опция acl, это означает что поддержка acl включена.
/dev/sda1 on / type ext3 (rw, acl ,errors=remount-ro)

2. Установка необходимого программного обеспечения.

Для начала установим простые утилиты для удобства настройки сервера. Их у меня будет три – это текстовый редактор ee, файловый менеджер Midnight commander и SSH сервер для удобства администрирования. Midnight commander – что то вроде Norton Commander, с ним легко и быстро можно перемещаться по файловой системе сервера, хоть в данном мануале использовать его я практически не буду, тем не менее я считаю что его нужно поставить.

apt-get install ee
apt-get install mc
apt-get install ssh openssh-server

Далее буду редактировать файлы через ee.

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

apt-get install ntp

Итак, теперь пришло время установки основного программного обеспечения сервера. На этих программах и будет всё держаться.

apt-get install mmc-web-base mmc-web-mail mmc-web-network mmc-web-proxy mmc-web-samba mmc-agent python-mmc-plugins-tools python-mmc-base python-mmc-mail python-mmc-network python-mmc-proxy python-mmc-samba postfix postfix-ldap sasl2-bin libsasl2 libsasl2-modules amavisd-new libdbd-ldap-perl libnet-ph-perl libnet-snpp-perl libnet-telnet-perl lzop nomarch zoo clamav clamav-daemon gzip bzip2 unzip unrar-free unzoo arj spamassassin libnet-dns-perl razor pyzor slapd ldap-utils libnss-ldap libpam-ldap dhcp3-server dhcp3-server-ldap bind9 samba smbclient smbldap-tools cupsys cupsys-client foomatic-db-engine foomatic-db foomatic-db-hpijs foomatic-db-gutenprint foomatic-filters foomatic-filters-ppds fontconfig hpijs-ppds linuxprinting.org-ppds make mkisofs

К слову – пакет mkisofs нужен для утилиты бэйкапа шар самбы, так что важно его поставить.

Ставим пакеты dovecot

apt-get install -t etch-backports dovecot-common dovecot-imapd dovecot-pop3d

При установке нужно будет ответить на несколько вопросов. Нужно ввести ответы, без кавычек:
• LDAP попросит ввести пароль админа, вначале я написал, что буду везде использовать пароль «example», его и ввожу.
• SAMBA спросит имя домена у меня это «ADSL». Вторым она спросит про smb.conf файл. Отвечаем «No».
• При установке почтовых пакетов будет задан ряд вопросов. Тут в принципе всё по умолчанию должно быть нормально. Конфигурация «Internet Site», имя почты «pdc.adsl.com».
• Затем идёт конфигурация Libnss-LDAP. В Сервер URI LDAP вводим « ldap ://127.0.0.1/», имя базы поиска вводим «dc=adsl,dc=com», версию Ldap указываем «3», Ldap акаунт для рута вводим «cn=admin,dc=adsl,dc=com», пароль для Ldap админа – example.
• Ну и наконец Libpam-LDAP. Выберите «Да», когда Вас спросят, должен ли локальный root быть админом базы данных. На вопрос о логине Ldap базы данных вводим «Нет». Ldap акаунт для рута вводим «cn=admin,dc=adsl,dc=com». И последнее вводим пароль от Ldap «example»

Так, далее ставим пакет dcc-client. Т.к. я его не нашёл в репозитариях Dibian, будем ставить его же от Ubuntu. Я ставил его на рабочий домен, вроде всё подходит, конфликтов не возникало. Для этого находим его на сайте поиска пакетов для Ubuntu. (http://packages.ubuntu.com).
Итак, создаём у себя папку для хранения закаченных пакетов пакетов.

Далее входим на страницу с найденным пакетом http://packages.ubuntu.com/ru/dapper/dcc-client. В разделе Загрузка пакета выбираем вашу архитектуру сервера, у меня это i386. Откроется страница с серверами. Выбираем любой и копируем ссылку на пакет.
Входим в нашу папку и закачиваем туда выбранный пакет.

Тут есть одна тонкость, пакет dcc-client, зависит от пакета dcc-common. Так что его тоже нужно закачать и установить. Находим его на том же сайте (http://packages.ubuntu.com/ru/dapper/dcc-common) и так же закачиваем с любого сервера.

pdc:/webpkg# ls
dcc-client_1.2.74-2_i386.deb dcc-common_1.2.74-2_i386.deb

dpkg -i dcc-client_1.2.74-2_i386.deb dcc-common_1.2.74-2_i386.deb

3. Конфигурация домена.

Slapd

Всё, все пакеты и компоненты установлены. Теперь необходимо их настроить. Сначало будем настраивать самое трудное это slapd, samba, nss и т.д. от них зависит работоспособность сервера.

Переносим схемы MMC, которые мы будем прописывать в LDAP. Всего их 6, это схемы dns, dhcp, samba, mail, mmc, printer. По их названию можно понять для чего каждая схема служит.

cp /usr/share/doc/python-mmc-base/contrib/ldap/mmc.schema /etc/ldap/schema/
cp /usr/share/doc/python-mmc-base/contrib/ldap/mail.schema /etc/ldap/schema/
zcat /usr/share/doc/python-mmc-base/contrib/ldap/samba.schema.gz > /etc/ldap/schema/samba.schema
zcat /usr/share/doc/python-mmc-base/contrib/ldap/printer.schema.gz > /etc/ldap/schema/printer.schema
zcat /usr/share/doc/python-mmc-base/contrib/ldap/dnszone.schema.gz > /etc/ldap/schema/dnszone.schema
zcat /usr/share/doc/python-mmc-base/contrib/ldap/dhcp.schema.gz > /etc/ldap/schema/dhcp.schema

Далее пропишем в конфиге Ldap эти схемы

там прямо ниже уже прописанных схем (include /etc/ldap/schema/inetorgperson.schema) вставляем следующее:

Сохраняем и выходим из файла.
Далее нужно получить наш админский пароль от LDAP в шифрованном виде. Шифруем с помощью SSHA.

slappasswd -s example

Я получил вот такую строчку zgbmt9l5XDohI+3FquZbTRLWsJD2+3Pg (у вас он будет другой) открываем блокнот, и сохраняем эту строчку туда, она нам понадобиться. Далее мы снова открываем конфиг Ldap.

Находим строчку — #rootdn «cn=admin,dc=ads,dc=com» (у вас она будет другой). И раскоментируем её, убирая спереди знак #. Ниже неё добавляем переменную rootpw с нашим шифрованным паролем. В итоге получим:

В этом же файле находим строчку # Indexing options for database #1 нижеё строка index objectClass eq удаляем её. И в место неё вставляем следующие строки

Находим в этом же файле строку access to attrs=userPassword,shadowLastChange и изменяем её на следующее:

Далее находим строчку loglevel 0 и вписываем вместо 0 число 256. Это нужно что бы работал журнал в mmc.
В итоге у меня получился вот такой конфиг файла slapd.conf — Сверьте со своим конфигом! :

Теперь правил файл /etc/ldap/ldap.conf добавляя в самый его низ две строчки:

Настройка ldap окончена, рестартим его:

Да, кстати по поводу журналов в mmc. Мы так же должны добавить в файл /etc/syslog.conf следующее (Где то в середине, я думаю вы поймёте куда добавлять):

SAMBA

Теперь перейдём к настройке SAMBA:
Стапаем самбу что бы не было конфликтов.
/etc/init.d/samba stop

Копируем конфиг самбы который идёт в состав mmc:
cp /usr/share/doc/python-mmc-base/contrib/samba/smb.conf /etc/samba/

И переходим к его редактированию:
ee /etc/samba/smb.conf

Конфиг должен быть таким (подставьте свои значения) — Сверьте со своим конфигом! Обязательно проследите что бы последовательность строчек была такой же как в эталоном конфиге (иначе могут быть проблемы.) :

Сохраняем конфиг и выходим.

Теперь нужно протестировать конфиг самбы на ошибки командой testparm:

Теперь получим SID нашего домена:

net getlocalsid ADSL

В ответ он мне выдаст номер Sid’a. Сохраните его в какой ни будь файл. Он нам понадобится очень скоро.

Проверяем регистрацию сида в Ldap:
slapcat | grep sambaDomainName
В ответ что то типа:

Ура, самба закончилась. Перейдём к конфигурации smbLdap tools. Это так же важная часть домена:
Для начала созданим файлы конфигурации для smbldap-tools.

Сейчас будем настраивать главный файл конфиграции smbldap-tools. В него нужно вставить номер нашего SID , котопрый мы получили чуть выше… А так же подставить свои значения.

Ставим права на конфиг файлы smbldap-tools:

chmod 0644 /etc/smbldap-tools/smbldap.conf
chmod 0600 /etc/smbldap-tools/smbldap_bind.conf

Так. Всё готово. Теперь нужно наполнить нашу ldap базу. А так же создать глобальный аканут администратора ldap. (Administrator).

smbldap-populate -m 512 -a Administrator

Вас попросят ввести пароль администратора. Я ввёл example. Так же, в будующем, нужно будет изменить uid номер учётной записи администратора. Иначе будут проблемы с почтой для этого акаунта.

Дополнительно мы добавим Administrator в группу Domain Users.

smbldap-usermod -u 3000 -G «Domain Users» Administrator

Так. Теперь конфигурируем NSS LDAP. Что бы иметь позможность получать списки и данные Ldap.
Копируем предорженый файл mmc в /etc/nsswitch.conf

cp /usr/share/doc/python-mmc-base/contrib/ldap/nsswitch.conf /etc/nsswitch.conf

После этого создадим необходимые директории для samba. Которые мы указывали в её конфиге:

mkdir -p /home/samba/shares/public/
mkdir /home/samba/netlogon/
mkdir /home/samba/profiles/
mkdir /home/samba/partage/
mkdir /home/samba/archives/

И зададим им соответствующие права:
chown -R :»Domain Users» /home/samba/
chmod 777 /var/spool/samba/ /home/samba/shares/public/
chmod 755 /home/samba/netlogon/
chmod 770 /home/samba/profiles/ /home/samba/partage/
chmod 700 /home/samba/archives/

PAM Ldap

Сделали почти половину. Сейчас займёмся Конфигурацией PAM LDAP. Тут нужно будет добавить поддержку ldap в Pam, путём добавления некоторых строк в файлы pam. Эти файлы должны иметь примерно следующий вид:

После этой надстроки. Мы должны ОБЯЗАТЕЛЬНО перезагрузиться.

Итак. Кульминационный момент. После перезагрузки. Мы должны дать право группе Domain Admins добавлять машины в домен (обязательно в команде замените имя домена на свой.):

net -U Administrator rpc rights grant ‘ADSL\Domain Admins’ SeMachineAccountPrivilege

Если после выполнения команды ошибок не обнаружилось, то всё хорошо. Настройка домена прошла успешно, теперь остались мелочи… настройка вспомогательных служб сервера.
Если же были выявлены ошибки. То советую не продолжать дальнейшие действия, а искать проблему вашей ошибку. Скорей всего что то не правильно в конфиге samba и slapd. Обязательно проверте каждую строчку конфига и сравните её с этой же строчкой моего мануала.

4. Конфигурация дополнительных служб домена.

Mail

Так. Домен мы настроили, это уже пол дела. Теперь будем настраивать дополнительные службы домена. Это почта, прокси сервер, антивирус, антиспам и т.д. А начнём мы пожалуй с почтового сервера.
Настроим протокол безопасности SSL. Для этого создадим файл конфигурации:

Теперь создадим наш SSL сертификат, используя наш файл конфигурации:
openssl req -x509 -new -config /etc/ssl/mail.cnf -out /etc/ssl/certs/mail.pem -keyout /etc/ssl/private/mail.key -days 365 -nodes -batch
Так. Наш ключик создан. Теперь поставим на него права. Что бы только root имел право его читать:
chmod 600 /etc/ssl/private/mail.key

Далее, настраиваем пакет аутентификации SASL. Его настройка нужна т.к. почтовый сервер Postfix использует его для атентификации юзеров в LDAP.

mkdir -p /var/spool/postfix/var/run/saslauthd/
ee /etc/default/saslauthd

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *