Думаю если вы попали на эту страницу, значит тем или иным путем пришли к выводу о том, что необходимо настроить систему централизованного управления учетными записями в локальной сети вашего предприятия, скорее всего это контроллер домена на Ubuntu или Windows. У вас как обычно 3 основных пути для реализации своего плана:
-
- Выкинуть деньги на ветер
- Сесть за пиратство
- Использовать какое-либо решение на базе линукса
Если честно, есть еще 4-й вариант, и он очень даже неплох. Основывается он на Synology NAS, обладающих просто божественными возможностями даже в самых маленьких реализациях.
Но вернемся к нашим реалиям. Наш вариант номер 3. В деталях он выглядит примерно так:
- У нас в сети нет ни одного серверного решения Microsoft
- Мы не хотим появления в нашей сети пиратских серверных решений Microsoft
- В большинстве своем наша сеть состоит из машин с ОС Ubuntu Desktop, но есть и пара ноутбуков с вендами.
- У нас есть необходимость централизованного управления учётными записями
- У нас есть одно или несколько сетевых хранилищ и мы хотим управлять доступом к хранимой на них информации, предоставляя его через протоколы NFS и CIFS(smb). Сетевые хранилища могут быть реализованы как на голых ubuntu server, так на различных решениях типа FreeNAS, NAS4Free и тд, так и на покупных решениях, типа QNAP, Synology и тд.
Реализовывать контроллер домена на Ubuntu мы будем на хосте ESXi с примерно следующими характеристиками:
- CPU: 1 ядро на 2.2-2.8 GHz
- RAM: 2 Gb
- HDD: 1 hdd 32Gb
- Network: 1 Сетевая карта
- Имя сервера: ag-dc
- Имя домена: adminguide.lan
Что касается физической машины, то подойдет любая не сильно мощная машина. Но если там хотя бы 4‑х ядерный CPU и 4+ гига оперативной памяти, я рекомендовал бы запилить на неё бесплатный гипервизор ESXi и уже с его помощью полностью утилизировать имеющиеся мощности.
Поправка к инструкции: Везде в тексте инструкции, имя тестового samba домена изменено с adminguide.local на adminguide.lan. зона .local может вызывать глюки в виндовых сетях. Если вы видите на скриншоте adminguide.local, на самом деле там должно быть adminguide.lan
-
Устанавливаем Ubuntu Server 18.04 LTS amd64
-
Изменяем имя сервера на ag-dc
- После изменения имени сервера в соответствии с инструкцией, перезагружаем сервер следующей командой:
sudo reboot -h now
- Проверяем имя сервера
После загрузки сервера, авторизовываемся и смотрим результат командыhostnamectl
. Должно быть следующее:
Важно понимать, что после того, как вы настроите контроллер домена на Ubuntu, смена имени его сервера приведет к непредвиденным последствиям, поэтому не надо пытаться превратить свою тестовую попытку, в рабочее решение. После того как вы один или несколько раз инициализируете свой ad-dc и убедитесь в его работоспособности, удалите все свои достижения и уже только после этого выполняйте чистовую работу, полностью отдавая себе отчет в производимых действиях.
- После изменения имени сервера в соответствии с инструкцией, перезагружаем сервер следующей командой:
-
Настраиваем статический IP адрес
- На данном этапе, пока у нас еще не стоит самба и не инициализирован домен, наши настройки будут следующими:
IP адрес и маска сети сервера: 192.168.1.100/24
Шлюз 192.168.1.1 (роутер в тестовой сети)
dns сервер 192.168.1.1 (роутер в тестовой сети). Переходим по ссылке и выполняем все по инструкции приводя настройки сети к следующему виду:dhcp4: no dhcp6: no addresses: [192.168.1.100/24, ] gateway4: 192.168.1.1 nameservers: addresses: [192.168.1.1, ]
Вот как выглядит файл настроек на тестовом сервере:
Главным ДНС сервером на данный момент должен быть указан локальный роутер, или любой другой днс сервер, например 8.8.8.8, способный выполнять эти функции.
- На данном этапе, пока у нас еще не стоит самба и не инициализирован домен, наши настройки будут следующими:
-
Отключаем systemd-resolved
- Останавливаем сервис systemd-resolved
sudo service systemd-resolved stop
- Убираем systemd-resolved из автозапуска
sudo systemctl disable systemd-resolved.service
- Удаляем ссылку /etc/resolv.conf
sudo rm /etc/resolv.conf
- Открываем на редактирование файл /etc/resolv.conf
sudo nano /etc/resolv.conf
По факту, на данный момент этого файла еще не существует, он будет создан при сохранении изменений.
- Добавляем переадресацию на наш днс сервер и указываем search домен в resolv.conf .
nameserver 192.168.1.1 search adminguide.lan
На данном этапе, nameserver должен указывать на тот же адрес, что и в пункте 3.1
В search указывается имя нашего будущего домена Active Directory.
Файл /etc/resolv.conf должен выглядеть следующим образом:
- Сохраняем изменения нажав Ctrl+O
- Останавливаем сервис systemd-resolved
-
Настраиваем файл /etc/hosts
- Одним из обязательных условий, является резолв имени нашего сервера, на его IP в локальной сети. Если сервер находится в сети 192.168.1.0/24 и его IP 192.168.1.100, то набирая на нем команду ping ag-dc или же ping ag-dc.adminguide.lan должен резолвиться адрес 192.168.1.100. Имя контроллера домена, не должно резолвиться на локальный адрес 127.0.0.1 или какой либо другой адрес, кроме того, что назначен сетевому интерфейсу который использует DC.
sudo nano /etc/hosts
- Приводим файл hosts к следующему виду:
127.0.0.1 localhost.localdomain localhost 192.168.1.100 ag-dc.adminguide.lan ag-dc
- Сохраняем с помощью команды
Ctrl+O
- Одним из обязательных условий, является резолв имени нашего сервера, на его IP в локальной сети. Если сервер находится в сети 192.168.1.0/24 и его IP 192.168.1.100, то набирая на нем команду ping ag-dc или же ping ag-dc.adminguide.lan должен резолвиться адрес 192.168.1.100. Имя контроллера домена, не должно резолвиться на локальный адрес 127.0.0.1 или какой либо другой адрес, кроме того, что назначен сетевому интерфейсу который использует DC.
-
Проверяем что не запущено никаких самвобых процессов
Для этого понадобится следующая команда:
ps ax | egrep "samba|smbd|nmbd|winbindd"
Если есть хоть один процесс и вы видите что-то типа этого:
таки возможно вы настраиваете AD-DC не на новом сервере или на сервере развернутом не из оригинального образа. Если вы решите на свой страх и риск продолжить установку, то вам необходимо убить все процессы с именами samba, smbd, nmbd, winbindd. Чтобы убить процесс, надо использовать команду sudo kill <id-процесса>:sudo kill 3135
-
Устанавливаем Samba
На этом этапе так же важно знать, что после того как вы инициализируете контроллер домена на Ubuntu, вы не сможете изменить его название. Если вы называете свой домен ADMINGUIDE.LAN, он на веки вечные останется доменом ADMINGUIDE.LAN . Самба не поддерживает изменение имени домена. После его инициализации, чтобы изменить название, вам придется вывести из него все машины что вы успели зарегистрировать в нем, удалить старый домен, инициализировать новый и зарегистрировать машины повторно. Стоит ли говорить, что даже при 25 рабочих станциях — это уже проблема
- Устанавливаем samba и все необходимые пакеты командой:
sudo apt -y install samba krb5-config winbind smbclient krb5-user
- Область по умолчанию для Kerberos версии 5
- Серверы Kerberos для вашей области
- Управляющий сервер вашей области Kerberos
- Ожидаем окончание установки
- Устанавливаем samba и все необходимые пакеты командой:
-
Бэкапим стандартную конфигурацию Samba
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bkp
-
Инициируем контроллер домена на Ubuntu 18.04
-
Запускаем инициализацию в интерактивном режиме
Из своего домена, мы так же будем управлять пользователями и группами линуксовых машин. Поэтому нам нужно заранее включить поддержку NIS, с помощью команды —use-rfc2307
sudo samba-tool domain provision --use-rfc2307 --interactive
Включение поддержки NIS, не имеет никаких противопоказаний к применению, даже если ваш домен никогда не будет обслуживать линуксовые машины. В то же время, если инициализировать домен без поддержки NIS, и когда-нибудь в него войдут линуксовые машины и захочется управлять их учётками, расширять схему Active Directory и добавлять поддержку NIS, придётся уже ручками на свой страх и риск.
-
Указываем параметры домена
Если в процессе настройки не было допущено ошибок, все необходимые данные установщик поместит в квадратные скобки в виде стандартных значений:
Realm [ADMINGUIDE.LAN]: Domain [ADMINGUIDE]: Server Role (dc, member, standalone) [dc]: DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: DNS forwarder IP address (write 'none' to disable forwarding) [192.168.1.1]: Administrator password: Retype password:
Когда установщик запросит пароль, рекомендую указать пароль понадежнее. Это будет пароль от учетной записи администратора домена.
Если на этом этапе в квадратных скобках у вас указано не то значение которое вам бы хотелось, значит вероятнее всего в настройках ранее вы допустили серьезный косяк.
-
Смотрим результаты инициализации
Следующие строки возвестят о том, что контроллер домена на Ubuntu успешно завершил инициализацию:
A Kerberos configuration suitable for Samba AD has been generated at /var/lib/samba/private/krb5.conf Setting up fake yp server settings Once the above files are installed, your Samba AD server will be ready to use Server Role: active directory domain controller Hostname: ag-dc NetBIOS Domain: ADMINGUIDE DNS Domain: adminguide.lan DOMAIN SID: S-1-5-21-4033150357-3109693390-3173112578
Но радоваться еще слишком рано. Если вы видите нечто кардинально другое, значит вы допустили какую-то ошибку выше, либо прервали инициализацию запущенную ранее, либо инициализация вывалилась с ошибкой и сейчас вы пытаетесь инициализировать домен повторно. Если упереться рогом, можно вычистить все данные и записи сгенерированные в процессе инициализации и запустить её повторно. Это даже может привести к её успешному окончанию. НЕ ПЫТАЙТЕСЬ ЭТОГО ДЕЛАТЬ. Инициализируйте домен на новом чистом сервере. Если в процессе подготовки к инициализации, вы допустили косяк, и на момент запуска инициализации вы его не устранили и она завершилось ошибкой — просто удалите текущую инсталяцию сервера и начните сначала. Если вы настраиваете контроллер домена на виртуальной машине, сделайте снапшот выключенного сервера прежде чем приступать к пункту 7.1. В будущем в случае какого-то косяка на этапе инициализации, возвращайтесь к этому снапшоту и перепроверяйте всё \ исправляйте ошибки.
-
-
Настройка DC
Контроллер домена на Ubuntu, реализованный с помощью Samba сам автоматически запускает необходимые сервисы. Поэтому если они будут запущены не Samba DC, а например вручную пользователем, это может привести к необратимым последствиям и домен перестанет функционировать как должен. Поэтому на всякий случай, необходимо сделать эти сервисы недоступными для ручного запуска и отключить их автозапуск:
sudo systemctl stop smbd nmbd winbind sudo systemctl disable smbd nmbd winbind sudo systemctl mask smbd nmbd winbind
Делаем samba-ad-dc доступным для запуска, включаем сервис и включаем его автозапуск
sudo systemctl unmask samba-ad-dc sudo systemctl start samba-ad-dc sudo systemctl enable samba-ad-dc
-
Настройка DNS
- Изменяем dns сервер в настройках сети на IP настраиваемого сервера. По факту он будет ссылаться на себя же как на днс сервер 192.168.1.100
Приводим настройки параметров сети к следующему виду:dhcp4: no dhcp6: no addresses: [192.168.1.100/24, ] gateway4: 192.168.1.1 nameservers: addresses: [192.168.1.100, ]
- Изменяем dns сервер в resolv.conf, так же указывая там IP своего сервера, приводя его к следующему виду:
nameserver 192.168.1.100 search adminguide.lan
- Изменяем dns сервер в настройках сети на IP настраиваемого сервера. По факту он будет ссылаться на себя же как на днс сервер 192.168.1.100
-
Настройка Kerberos
В процессе инициализации домена, создается файл krb5.conf, путь к нему указывается в последних строках отчета об успешной инициализации. Поэтому чтобы избежать ручной настройки файла /etc/krb5.conf, нам нужно заменить его только что сгенерированным.
sudo cp /var/lib/samba/private/krb5.conf /etc/
-
Проверяем результаты своей работы
- Смотрим все шары файл сервера DC
smbclient -L localhost -U%
Они создаются в процессе инициализации домена и должны присутствовать для его правильного функционирования.
- Проверяем подключение к ним
Подключаемся к папке netlogon от имени администратора доменаsmbclient //localhost/netlogon -UAdministrator -c 'ls'
Когда система запросит пароль, необходимо ввести пароль администратора домена, который мы указали при инициализации, в пункте 9.2
В случае успешной авторизации, вы без ошибок подключитесь к папке
- Проверяем правильность настройки DNS
Без правильно функционирующей службы DNS, AD DC не сможет функционировать как запланировано. Главное, нам необходимо убедиться, что SAMBA_INTERNAL dns настроен правильно и работает. Для этого попытаемся извлечь из него необходимые записи- Смотрим SRV запись _ldap
host -t SRV _ldap._tcp.adminguide.lan.
- Смотрим SRV запись _kerberos
host -t SRV _kerberos._udp.adminguide.lan.
- Проверяем A запись контроллера домена
host -t A ag-dc.adminguide.lan.
- Смотрим SRV запись _ldap
- Проверяем работоспособность Kerberos
kinit administrator
- Смотрим кеш авторизационных тикетов Kerberos
klist
- Смотрим все шары файл сервера DC
- Полезные ссылки:
65 комментариев
sudo apt -y install samba krb5-config winbind smbclient krb5-user
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Пакет krb5-user недоступен, но упомянут в списке зависимостей другого пакета.
Это может означать, что пакет отсутствует, устарел, или доступен из источников, не упомянутых в sources.list
E: Для пакета «krb5-user» не найден кандидат на установку
Какая версия ОС?
Добавьте universe в /etc/apt/sources.list
Вообще-то групповые политики умеет и давно. Вопрос другой, что синхронизировать она их с AD не может. Вот насчёт DAC не знаю, не пробовал. P.S. Недавно встал вопрос, что развернуть на домашнем сервере «обычный LDAP» в виде 3s или контроллер домена на самбе.
Для дома LDAP я как-то поднимал на synology nas. Они и ldap и ad-dc (старшие модели) умеют поднимать.
ERROR(): Provision failed — ProvisioningError: guess_names : ‘realm =’ was not specified in supplied /etc/samba/smb.conf. Please remove the smb.conf file and l et provision generate it
Вот такая вот загогулина появляется при попытке инициализировать домен.
Оно явным текстом жалуется на параметр realm в smb.conf
Контроллер разворачивается не на чистой установке?
я разобрался в чем была проблема, не внимательность. Спасибо за гайд)
Подскажите пожалуйста как добавлять пользователей в домен
Для добавления пользователей в домен самый действенный способ — установить на машину Windows пакет RSAT и управлять доменом через стандартную оснастку. Так же можно добавлять пользователей через коммандную строку, но это пожалуй самый неудобный вариант.
А как добавлять пользователей через командную строку на данном сервере?
С помощью команды
sudo samba-tool user create smb_test_create
будет создан пользователь «smb_test_create» в папке Users каталога AD
Там еще огромный набор всевозможных параметров, ознакомиться с которым можно с помощью команды
samba-tool user create --help
Проверяем работоспособность Kerberos
kinit administrator
Cannot find KDC for requested realm while getting initial credentials в чем проблема?
А что показывает команда:
«host -t SRV _kerberos._udp.adminguide.local.»
?
Проверяем A запись контроллера домена
host -t A srv.kam.loc.
Выдаёт
srv.kam.loc has no A record
Как это поправить?
Это записи генерируемые в процессе инициализации контроллера. Если по окончанию инициализации они отсутствуют, самый эффективный способ — удалить ось, поставить новую и начать всё с самого начала сверяясь с каждым шагом. Потому что отсутствие A записи — это вероятнее всего — верхушка айсберга и даже добавив её руками, нет никакой гарантии что в процессе инициализации по причине какой-то ошибки в настройках не был пропущен целый кусок алгоритма.
Здравствуйте. Уже собаку на этой инструкции съел, но заставил работать на виртуалке. Осталось повторить опыт на реальной машине, всё шаг за шагом делал — единственное отличие это название домена и машины. На шаге проверки ДНС не видит записей. Помогите, пожалуйста, разобраться. Тупое повторение не исправить ситуацию, я всё очень четко и не первый раз делал(а 5-й примерно)
Нужно видеть лог bind9 и лог всей установки. Вы уверены что сам dns сервер bind9 работает?
Ну, как сказать, я ни в чём не уверен:) В том плане, что я новичок и я делал всё с чистой системы, предполагая, что раз я ставлю одну и ту же систему с одного и того же образа — все будет работать одинакого. При установке юбунты можно выбрать функцию серверу dns server, что я и выбрал. Но в ручную ничего не запускал, делал шаг за шагом по инструкции сразу после инициализации свежей системы.
Для этой инстукции я специально нашел образ 18.01, так как на более поздних версиях у меня что-то шло не так. И вот именно с этим образом у меня всё вышло на виртуалке, я успешно внес в домен систему на винде, поигрался с политиками. Вернулся к рабочему серверу, всё делал ровно также, кроме имени хоста и имени домена.
Ненене, при установке убунту не надо выбирать DNS сервер. DNS сервер устанавливается и конфигурируется самостоятельно силами установщика Samba. В противном случае если DNS сервер ставится не самостоятельно самбой, там нужно сделать миллион лишних телодвижений чтобы оно взлетело.
В смысле 18.04.1, а не 18.01
Попробовал еще 3 раза — уже нигде не выходит. Host _ldap._tcp.ad.sgtdrill.ru. not found: 3(NXDOMAIN)
Меняются домены, меняются виртуалки и машины — всё одно и тоже. Я не понимаю где я делаю ошибку.
Может есть какой-то способ проверить эти вещи в начале инструкции? А то каждый раз, когда уже всё сделал, этот последний пункт не работает.
«…вам необходимо убить все процессы с именами…»
А не проще ли просто
`systemctl stop smbd nmbd samba-ad-dc winbind`
или в этом роде?
Безусловно, тоже вариант.
Спасибо. Ошибка действительно было в выбранном DNS сервере, в силу использования разных установщиков в разных ситуациях. К сожалению, я не успел прочитать ценный совет и еще 3 раза пробовал всё ставить и эксперементировать.
Спасибо за ценную статью, она мне очень помогла. Вопрос у меня остался касательно DNS: если мы ставим у контроллера домена адрес ДНС сервера на самого себя, то к кому он сам будет обращаться?
У DNS сервера настраиваются форвардеры, куда отправляются запросы, на которые нет ответа у самого ДНС сервера.
Скажите, а при вводе в домен виндовой машины пользователи автоматически регистрируются?
Возможно я не верно понял вопрос, но при вводе в домен вендовой машины, учетные записи имевшиеся в локальной рабочей группе — никак не влияют на домен. Это дает возможность авторизовываться на компьютере под доменными, имеющимися в домене учетными записями. А локальные, после ввода в домен я бы рекомендовал вообще отключить.
Столкнулся с несколькими проблемами:
1) После выполнения пункта 4 перестали подтягиваться пакеты из инета и, чтобы установить необходимые, пришлось включать systemd-resolved, а потом отключать.
2) После пункта 11 вообще пропал резолвинг — с обоими вариантами.
3) При выводе команды
smbclient //localhost/netlogon -UAdministrator -c ‘ls’
указал Workgroup как WORKGROUP, а не её отсутствие, как в примере. Но потом:
4) Команды kinit и klist не сработали. kinit пишет «Cannot contact any KDC for realm ‘DOM.LOCAL’ while getting credentials»
Всё делал по инструкции. Что не так?
Какая версия Ubuntu Server? Могу для начала порекомендовать создать домен в зоне не LOCAL, а LAN. В руководстве в будущем тоже изменю в примерах везде local на lan
При подключении к домену виндовой машины лезет ошибка: «Не удалось выполнить операцию присоединения. Это может быть вызвано тем, что существующая учетная запись компьютера с именем test была изначально создана с использованием других учетных данных. Либо используйте другое имя компьютера, либо попросите администратора удалить устаревшие конфликтующие учетные записи.» Перед этим на домене был создан пользователь командой: sudo samba-tool user create smb_test_create
Добрый день. На Ubuntu 18.04.3 LTS работает ?
В __теории__ должно работать на любой Ubuntu 18.04.x и даже может 18.x.x
Всё установилось , но проверка kinit administrator — не проходит. cannot contact any KDC — это что может быть , подскажите в каакую сторону копнуть ?
Дело было в DNS. kinit проходит но теперь проблема с остальными записями host -t SRV _ldap._tcp.*.* теперь вот это н епроходит
Запустился ли DNS сервер?
а как кстати проверить запустился ли сервер samba-internal ? то что он не реагирует на nslookup видимо говорит о том что он не работает. как его запустить ?
Все записи ДНС создаются автоматически ? Или нужно вручную их забивать ?
Всё заработало !!! ))))
Доброго времени суток. Шаг 13.1 Команда smbclient -L localhost -U% выдает ошибку error nt_status_connection_refused. Как быть?
Посмотрите в файле «/etc/samba/smb.conf» есть ли строка «bind interfaces only = «, и если есть то какой там параметр? yes или no.
Устанавливаете на голый сервер с нуля?
Попробуйте проинициализировать самбу в зоне .lan вместо .local (естественно на новую ось). Я внёс правки в инструкцию заменив везде local на lan
Что прописано в файле /etc/hosts, не исчезла ли оттуда запись «127.0.0.1 localhost.localdomain localhost»?
Имеется дистрибутив Ubuntu Server LTS 18.04. На сервере статический IP и есть домен вида dc.company-name.com
Руководствуюсь официальной документацией
https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller
Помогите настроить самбу как контроллер домена.
Какой должен быть домен от самбы Realm локальный local.lan или же внешний интернет домен dc.company-name.com ?
$ host -t A dc.company-name.com. отвечает
$ host -t SRV _ldap._tcp.dc.company-name.com. $ host -t SRV _kerberos._udp.dc.company-name.com.
данные команды никак не отвечают. но я так понимаю чтобы эти SRV записи появились я должен контроллировать DNS на котором находится dc.company-name.com
Обязательно ли ставить BIND или можно обойтись днс-ом 8.8.8.8 ? Что прописывать в resolv.conf и hosts? И какое имя хоста?
Если кто настраивал — помогите пожалуйста. Ибо запутался в DNS-ах.
DNS сервер нужен при любом раскладе, без него домен не будет работать. 8.8.8.8 — это форвардер, для имён которые не знает сам контроллер домена. Имена всех участников домена хранятся как раз на локальном авторитарном днс сервере.
Если имя внешнего домена company-name.com, то домен dc.company-name.com является валидным. При этом все устройства внутри домена будут адресоваться по имени computer.dc.company-name.com, чтобы сократить длинну обращения, нужно донастраивать DNS сервер. Если не охота заморачиваться и нет необходимости совмещать днс зоны домена и внешнего сайта, проще создать домен с названием company-name.lan. Тогда устройства внутри домена будут адресоваться по типу computer.company-name.com, без дополнительной зоны как в первом случае. Именно этот вариант описывается в инструкции по шагам. Достаточно полностью пройти инструкцию заменив везде adminguide.lan на company-name.lan
Подскажите пожалуйста, а внутренний домен должен ли отличаться от внешнего домена который из интернета доступен ?
Если под внешним доменом подразумевается например сайт компании, типа company.ru, то технически, внутренний домен так же может быть company.ru,
НО
тогда это вызовет дичайшие проблемы с DNS. Контроллер домена, будучи инициализированным для домена с именем company.ru, для поддержания работоспособности сети, должен так же работать в сопряжении со службой DNS сервера. При этом, DNS сервер обслуживаемый контроллером домена, будет являться авторитарным для всей dns зоны company.ru и всех её поддоменов. Таким образом, клиент участник сети локального домена company.ru, который не должен иметь в своих настройках никаких других DNS серверов кроме как DNS серверов домена, пытаясь отрезолвить имя company.ru, будет отправлять запрос на локальный DNS сервер домена, где тот будет возвращать не адрес сайта company.ru из интернета, а возвращать свой локальный адрес. Это же касается и всех поддоменов company.ru. При этом, будучи авторитарным для зоны company.ru, в случае не нахождения у себя в списке, запрошенного адреса, DNS сервер не будет перенаправлять запрос на вышестойщий днс сервер т.к. всегда будет считать что зоны company.ru нигде кроме как у него не существует и он в ней царь и последняя инстанция. Например test.company.ru, даже если пингуется с какого-либо хоста, находящегося за пределами сети домена, не присутствуя в списке адресов локального DNS сервера, пинговаться не будет. Поэтому если у сайта фирмы адрес company.ru, правильным DNS именем инициализируемого домена будет что-то типа office1.company.ru . В этом случае, все устройства находящиеся внутри домена office1.company.ru, будут уже иметь имена типа workstation1.office1.company.ru
Если не принципиально соблюдение правильной архитектуры DNS, то можно инициализировать домен с именем например в зоне lan, например company.lan. Самое главное, чтобы инициализация не происходила с использованием имени которое уже есть в интернете или может появиться в будущем.
благодарю за столь развернутый ответ ! 🙂 я именно так и подумывал что ошибся с понятиями домен интеренета и домен AD это различные и независимые понятия.
И подскажите реально ли вообще настроить контроллер домена на самбе, который будет доступен через интернет а не в локальной сети ?
Думаю что реально, но я такой задачей никогда не задавался и это будет даже не костылём, а выстрелом себе в колено через рот, с рикошетом прямо в жопку 🙂
А почему так не делают ? «Удалённый DC». Кучу документации перерыл вся она на локальные сети. MS вон вовсю продаёт https:// azure.microsoft.com/ ru-ru/services/ active-directory/ это по сути тоже самое только за деньги. а с самбой можно было бы сэкономить. нв чём загвоздка ремотного КД ?
Это очень модная и навороченная штука, но самба идёт с отставанием в плане реализации поддерживаемых схем AD-DC, и в данный момент самая последняя поддерживаемая версия AD-DC со стороны Samba — это 2012. В то время как сервера Windows уже позволяют создавать более новые схемы. + то что приведено там по ссылке — это по сути один большущий SSO сервис. И его реализация заключается не столько в том что этим занимается контроллер домена Windows, сколько в том что контроллер(ы) домена Windows подключаются уже к внешней его реализации развёрнутой на закрытой платформе Azure. Тоесть желаемый функционал повсеместной авторизации выполняет не локальный AD-DC, а внешний сервис, а AD-DC выполняет лишь роль маршрутизатора подобных запросов. Но самба спокойно может авторизовывать внутри локальной сети, всякие сервисы поддерживающие LDAP. Тоесть не что не мешает поднять корпоративный почтовик с поддержкой LDAP и дать юзерам возможность авторизовываться на нём используя доменную учётку.
Но если же прямо упереться рогом, я бы начал смотреть в сторону Samba AD-DC развёрнутого на каком-то сервере вместе с VPN сервером, к которому подключаются шлюзы удалённых офисов или же сервисов, и эти шлюзы перенаправляют все запросы с попытками авторизации на этот Samba AD-DC. Для всяких персональных веб сервисов придётся так же костылить кучу библиотек перенаправляющих авторизацию. Так что теоретически эта схема реализуема, но обойдется она реализатору в огромную кучу жопочасов.
Спасибище огромнейшее за такой ответ ! Вот теперь всё стало понятно :). Я тоже думал про VPN, но это геморой ещё тот. А можете что порекомендовать кошерное для ремотного администрирования машин под Windows . Я привык к radmin’у, но как-то уже имхо уже прошло его время. тимвьювер и энидеск тоже не хотелось бы. всётаки имеется на машинах ценная информация
open vnc, rdp, ssh + пользуюсь teamviewer 10 для поддержки пользователей.
А почему 10-ый TV ? удобнее и проще ? Подскажите, а каталогизацию если юзеров полно только с AD ?
Лицензия пожизненная только на 10й. AD если необходимо сделать всё с пол пинка и избежать излишнего гротеска. Есть например тот же LDAP https://habr.com/ru/post/86090/ . А так лучшее и распространённее чем AD — люди еще не придумали. Всё упирается в функционал. Можно придумать даже свою собственную службу каталогов, но т.к. из коробки много локальных сервисов будут поддерживать только AD и LDAP, то толку от других служб каталогов будет немного :). Майкрософт создала каталоги Active Directory и опубликовала полное их описание, что собственно и делает возможным воссоздание их алгоритмов контроллерами доменов samba. Так что AD был, есть и будет стандартом служб каталогов до тех пор пока существует MS. При этом даже если MS со всеми своими операционками сдохнет, то его приемник будет так же работать на схемах Active Directory, ибо это общемировой стандарт.
Только для линуксов например есть NIS и его модификации https://ru.wikipedia.org/wiki/NIS%2B
Но из линукса можно авторизовываться в том же AD прямо как это происходит в вендах. А из венды в NIS уже нет 🙂
Здравствуйте.
Установил Ubuntu 18.04.4 server и настроил на ней samba по Вашей статье, только имя сервера, имя домена и IP-адрес задал свои. Все шаги прошел от и до. Устанавливал на виртуальной машине VirtualBox 6.1.4. Все проверочные команды, приводимые в статье, выдают нужные ответы, так-же приведенные в статье. Сетевая плата виртуальной машины настроена мостом с сетевой платой физического ПК. Файлы настроек имеют абсолютно такой-же вид как в статье. С другого ПК, не хоста для виртуальной машины, этот сервер пингуется, можно зайти на расшаренный ресурс введя имя и пароль администратора, заданные при настройке Samba. Но при попытке подключить ПК к домену запрашивает имя и пароль администратора, потом долго думает и выводит ошибку об отсутствии в сети DNS-сервера и, соответственно, невозможности узнать имя контроллера домена.
В сети есть еще роутер с выходом в интернет.
Роутер имеет IP во внутренней сети — 192.168.1.1/24
Серверу назначил IP — 192.168.1.5/24
Подключаемый ПК имеет ОС Windows 7 максимальная 32 бита.
Пробовал несколько вариантов настроек сети на этом ПК:
DHCP:
IP — 192.168.1.59/24
шлюз — 192.168.1.1
DNS — 192.168.1.1
Ручная настройка, 1 вариант:
IP — 192.168.1.100/24
шлюз — 192.168.1.1
DNS — 192.168.1.5
Ручная настройка, 2 вариант:
IP — 192.168.1.100/24
шлюз — 192.168.1.5
DNS — 192.168.1.5
При всех этих настройках доменный контроллер пинговался и по адресу и по имени без домена, т.е. по короткому имени, а вот если пытаться пинговать его по длинному имени, т.е. с доменом, то его адрес не определялся. Также при этих настройках этот ПК имел доступ в интернет.
Но в домен входить никак не хотел.
Я прописал адрес сервера и его длинное имя в файл hosts в Windows, но присоединить ПК к домену так и не получилось.
Подскажите, пожалуйста, что можно еще попробовать сделать.
Если с контроллера домена пинговать его по длинному имени пинг идёт? 100% проблема в ДНС сервере который должен стартовать на самбе. Начать стоит именно с пинга самого себя. У подключаемого к домену компьютера днсом должен быть прописан контроллер домена, как в варианте «ручная настройка, 1 вариант». Шлюз если сервер самбы не рулит доступом в инет (в идеале не должен), должен указывать на маршрутизатор в локальной сети.
Спасибо. Буду проверять.
Или лучше сделаю всё заново и тщательнее — это же на виртуалке и я сделал и снапшоты сразу после установки Убунты, перед настройками, и копию всей виртуалки.
Кстати, а нужно ли перед всеми установками произвести обновление Убунты?
Проверил. Сервер сам себя пингует по длинному имени. Даже когда пингую по короткому имени в ответе пишет длинное имя и IP-адрес.
Уточняю — на попытку присоединить к домену ПК на Windows 7 максимальная запрашивается пароль для присоединения, но после ввода и недолгого «раздумья» появляется окно с ошибкой «Не удалось разрешить DNS-имя контроллера домена в присоединяемом домене»
для особо одарённых (так-же и в моём лице) Настройка сети:
ВНИМАНИЕ! Отступы слева в конфигурациях должны быть ОБЯЗАТЕЛЬНО и поставлены они должны быть ПРОБЕЛАМИ! В конфигурациях представленных в этой статье количество пробелов правильное, считайте или копируйте:)
Если вы поставите отступы клавишей «TAB», то на этапе проверки конфигурации на ошибки, вылезет ошибка — » Error while loading /etc/netplan/50-cloud-init.yaml, aborting. / Ошибка при загрузке «.
Если же вы решите написать всё в столбик без отступов, получите ошибку — » An error occured: the configuration could not be generated / Произошла ошибка: конфигурация не может быть сгенерирована «.
Здравствуйте.
Установил SAMBA в роли AD DC.
У меня проблема с Winbind. Я не могу авторизоваться счетными данными доменных пользователей на своем SAMBA AD DC.
Сервис samba-ad-dc запущен и работает. Я так понимаю в п.10
«…
sudo systemctl stop smbd nmbd winbind
sudo systemctl disable smbd nmbd winbind
sudo systemctl mask smbd nmbd winbind
sudo systemctl unmask samba-ad-dc
sudo systemctl start samba-ad-dc
sudo systemctl enable samba-ad-dc
…»
службу winbind мы отключили, а samba-ad-dc ее не запускает (у меня).
А проблема собственно в олицетворении встроенных локальных учетных записей «СЕТЬ; СИСТЕМА; СЛУЖБА» и пр. На DC
Привет! Контроллер домена настраивался с нуля, на чистой Ubuntu Server 18.04 по моей инструкции? На сайте в данный момент инструкция из 5 статей только публикуется. Полная опубликованная версия есть в моём дзене: https://zen.yandex.ru/id/5ec1740672423a6de38c60a9
Disable Expiration
Use the command samba-tool user setexpiry USER —noexpiry
The following shows disabling pesky password expiration for the Administrator
Здравствуйте. Статья очень полезная. Огромное за это спасибо. Сейчас столкнулся с проблемой как расшарить папку в UbuntuServer для пользователей домена. Будет у Вас что то подобное в уроках? И еще если набрать команду id «имя пользователя домена». Выдает «No such user». Хотя должен бы находиться пользователь
Привет! По поводу расшаривания папок — я горячо рекомендую пользоваться готовыми NAS решениями, к примеру такими как openmediavault, nas4free, freenas и тд и тп. Прямо настоятельно не рекомендую настраивать шары самостоятельно.
По поводу команду id, таки полагаю этот вопрос вызван в связи с попыткой настроить файлопомойку на контроллере домена. Вопрос обучения ОС контроллера домена на работу с учётными записями и группами домена — это прям отдельная статья или даже две. Ииии опять же я крайне не рекомендую настраивать файлопомойку на контроллере домена. Очень рекомендую. Обновление домена происходит путём поднятия нового резервного КД, его синхронизации с АД, сбрасыванием на него ролей FSMO и последующим выпилом депривированного КД из домена. Если на выпиливаемом КД будет файлопомойка — весь процесс из относительно легкого и непринуждённого превратится в ад. В адищще. Будет много визгов слёз и жопной боли. Сильно не рекомендую. Но в далёком будущем я возможно сделаю статью по поводу того как пользоваться доменными учётными записями на контроллере домена. Но опять же повторюсь это нужно только чтобы делать на контроллере шары и прочие ненужные ему вещи. И ещё раз настоятельно порекомендую не делать этого и оставить контроллер домена чисто контроллером домена. Без какого-либо маломальского стороннего функционала. Это повысит стабильность и откузоустойчивость таки на порядки :).