Как установить дс на линукс

Обновлено: 02.07.2024

Данная статья не подходит для новых инсталяций. Если вы разворачиваете контроллер домена на Ubuntu 20, из репозиториев, вам необходима следующая статья: Контроллер домена Ubuntu 20.04.1 – Ubuntu AD-DC - dhcp-dyndns 2020

Время идёт, технологии не стоят на месте, выходят новые, более актуальные версии операционных систем, и собсно если ты не в тренде, безусловно ты отправляешься на кадровую помойку. Поэтому сегодня речь пойдет о том, как настроить контроллер домена Ubuntu 20.04. Прежде всего, напомню, что ранее уже была статья Контроллер домена Ubuntu 18.04 – Ubuntu 18.04 AD-DC . Там поднимался “контроллер домена на коленке”. Статья безусловно годная и пользующаяся спросом, но, напомню что время идёт и технологии не стоят на месте.

Цель данной статьи – не только актуализировать информацию предыдущей. Эта статья будет с блекджеком и блудницами. Если ранее при настройке домен инициализировался с помощью samba_internal DNS сервера и был способен лишь контролировать авторизацию и обслуживать dns имена присоединённых к нему клиентов, в этой статье будут использоваться BIND9 + dhcpd и все вытекающие прелести, такие как автоматическое создание DNS записей в локальной зоне, для устройств получивших адрес по DHCP. То есть любых устройств, а не только членов домена. Изначально я планировал оформить информацию в виде десятка отдельных статей, но в итоге решил объединить всё на одной странице. Так что ниже последует огромнейшая стена текста. Нуждающийся же да превозможет

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

Ни чем не отличается от установки Ubuntu Server 18.04
Полезные команды после установки:

2. Задаём имя сервера
3. Задаём статический IP

4. Контроллер домена Ubuntu – Настройка BIND9 – Часть 1

Примечательно, что начинается установка домена с установки DNS сервера, пакета, распространяемого отдельно от samba4. Можно и потом, но таки в этом случае придётся делать дополнительные телодвижения. Дабы этого избежать сперва надо установить bind и провести его частичную настройку. Установим, создадим зоны, проведём первичную конфигурацию

4.1 Ставим BIND9_DLZ

Прежде всего проверяем версию bind

На момент написания, в репозитории focal была версия 9.16.1 На момент написания, в репозитории focal была версия 9.16.1

4.2. Cмотрим где bind держит named.conf

В результате увидим что-то типа этого:

–sysconfdir=/etc/bind – это папка где лежит файл named.conf

4.3 Смотрим где днс сервер держит кеш

В результате видим что-то типа /var/cache/bind
Эта директория понадобится нам при дальнейшей настройке

4.4 Проверяем named.conf

В результате видим:

Нам понадобятся файлы выделенные красным

4.5 Правим named.conf.options


В первую очередь делаем бэкап и правим файл

sudo cp /etc/bind/named.conf.options /etc/bind/named.conf.options_bak
sudo nano /etc/bind/named.conf.options

Удаляем его содержимое и заменяем следующим:

4.6 Правим named.conf.default-zones

sudo cp /etc/bind/named.conf.default-zones /etc/bind/named.conf.default-zones_bak
sudo nano /etc/bind/named.conf.default-zones

Удаляем его содержимое и заменяем следующим:

4.7 Конец первичной настройки BIND9

5. Контроллер домена Ubuntu – Настройка – Часть 1

5.1 Отключаем systemd-resolved

5.1.1 Останавливаем сервис

5.1.2 Убираем из автозапуска

5.1.3 Удаляем симлинк /etc/resolv.conf

5.1.4 Открываем и изменяем конфиг

5.1.5 Настраиваем адрес сервера имён как на картинке.

Сейчас, nameserver должен быть настроен на адрес нашего текущего DNS сервера, который расположен например на роутере или ещё где
В search указывается имя нашего будущего домена
Сохраняем изменения Ctrl+O

5.2 Настраиваем файл /etc/hosts

Обязательно чтобы AD DC мог резолвиться по имени на свой IP адрес внутри настраиваемой сети, даже при пинге с самого AD DC
Открываем файл и вносим изменения

127.0.0.1 localhost.localdomain localhost
192.168.1.100 ag-dc-1.adminguide.lan ag-dc-1

5.3 Проверяем что в системе не работают самобые процессы

Не должно быть ни одного процесса, как на картинке:

5.4 Инсталлируем Samba

Очень важно помнить, что контроллер домена на самбе, инициализируется раз и навсегда. Возможность изменить его название в будущем – отсутствует в принципе. Как-то назвав его однажды, с таким именем он и будет существовать до скончания веков или пока вы его не убьёте. Назвав домен ADMINGUIDE.LAN, он на всегда останется с этим именем ADMINGUIDE.LAN . Samba4 не поддерживает переименовывание домена. После его инициализации, для изменения названия, вы должны будете исключить из домена все машины которые успели в него ввести, удалить AD DC, с нуля всё настроить и ввести машины уже в него. Так что я настоятельно рекомендую продумать каждый шаг прежде чем начинать инициализировать домен, прочитать данную инструкцию до самого конца, продумать ньюансы, чтобы избежать ошибок в будущем.

5.4.1 Устанавливаем samba4 и все нужные пакеты с помощью следующей строки:

sudo apt -y install samba krb5-config winbind smbclient krb5-user

5.4.2 Дефолтная область для Керберос 5

5.4.3 Сервер Kerberos для вашей области

5.4.4 Управляющий сервер вашей области Kerberos

5.4.5 Ожидаем окончание установки

5.4.6 Бэкапим файл с исходными настройками Samba

5.5 Инициализируем контроллер домена Ubuntu 20.04

5.5.1 Запускаем инициализацию с опцией --interactive

Из своего AD DC, мы будем рулить юзерами и группами компьютеров с линуксовыми операционками. Потому заразаранее активируем совместимость с NIS, используя команду –use-rfc2307

sudo samba-tool domain provision --use-rfc2307 --interactive

Включение поддержки Network Information Service (NIS), никак не повредит работе AD DC, несмотря даже на ситуацию в которой он никогда столкнётся с Linux серверами или компьютерами. В тоже время, если настроить контроллер без этой опции, и когда-нибудь в него будут введены машины с линуксом, придётся модифицировать схему AD и добавлять поддержку NIS. Делать это конечно же придётся с большим риском убить контроллер.

5.5.2 Указываем параметры домена

Если в процессе настройки не было допущено ошибок, те параметры которые вам нужно настраивать, кроме DNS backend инсталлятор поместит в квадратные скобки как дефолтные значения.

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

5.5.3 Проверяем последствия инициализации

Если мы увидим информацию аналогичную приведённой ниже – это значит что контроллер домена на Ubuntu успешно завершил инициализацию:
В конце видим где самба держит конфиг named и конфиг krb5

5.6 Конец первичной настройки контроллера домена

6. Контроллер домена Ubuntu – Конфигурация BIND9 – Часть 2

6.1 Активируем интеграцию DLZ

Смотрим фаел. Если всё было сделано правильно, там автоматом будет раскомменчена строка отвечающая за интеграцию нашей версии самбы с нашей версией bind9. Главная проблема в том, что в данный момент в репозиториях Focal нету совместимых на уровне версий dlz, пакетов samba4 и bind9. Примечательно что версия samba4 находящаяся на данный момент в репозитории, на уровне dlz поддерживает BIND 9.11.x . В то время как находящийся в репозитории пакет BIND9, на данный момент версии 9.16.х . Со временем, это вероятнее всего изменится и я актуализирую статью, а пока надо раскомментить строку для BIND 9.12.x

Этот же файл надо заинклудить в основную конфигурацию named

Добавляем в конец

6.2 Проверяем права на dns.keytab

$ ls -l /var/lib/samba/private/dns.keytab
-rw-r----- 2 root bind 802 Apr 3 19:36 /var/lib/samba/private/dns.keytab

6.3 Проверяем права на папку /bind-dns/

6.4 Смотрим права на /etc/krb5.conf

$ ls -l /etc/krb5.conf
-rw-r--r-- 1 root bind 2891 Apr 3 17:51 /etc/krb5.conf

В случае несоответствия

6.5 Проверяем наличие утилиты nsupdate

6.6 Загружаем список корневых днс серверов

6.7 Проверяем конфиг

Если ошибок не будет обнаружено, то named-checkconf не выдаст никакой информации, можно пытаться запустить сервис. Если попытка запуска тоже не выдаст никаких критов прямо в терминал – значит хорошо. DNS сервер почти готов к работе

6.8 Создаём файлы зон

sudo mkdir /var/cache/bind/master
sudo chown bind:bind /var/cache/bind/master

6.8.1 localhost

Создаём файл localhost.zone

и копируем туда следующее:

@ 1D IN SOA @ root (
2013050101 ; serial
8H ; refresh
2H ; retry
4W ; expiry
1D ; minimum
)

Устанавливаем владельца и права доступа

sudo chown bind:bind /var/cache/bind/master/localhost.zone
sudo chmod 640 /var/cache/bind/master/localhost.zone

6.8.2 0.0.127.in-addr.arpa

Создаём файл зоны:

Помещаем в него содержимое:

@ IN SOA localhost. root.localhost. (
2013050101 ; Serial
8H ; Refresh
2H ; Retry
4W ; Expire
1D ; Minimum TTL
)

IN NS localhost.

1 IN PTR localhost.

Задаём права на файл:

sudo chown bind:bind /var/cache/bind/master/0.0.127.zone
sudo chmod 640 /var/cache/bind/master/0.0.127.zone

6.9 Запускаем\перезапускаем bind9, проверяем созданные зоны

1.0.0.127.in-addr.arpa domain name pointer localhost.

6.10 Завершаем донастройку DNS сервера

На этом этапе мы имеем рабочий DNS сервер, способный обслуживать контроллер домена, и можем перейти к донастройку контроллера домена

7. Контроллер домена Ubuntu – Настройка – Часть 2

7.1 Настройка запуска

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

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

7.2 Настройка DNS адреса

Указываем сервером имён, свой собственный айпишник AD DC

Для этого необходимо сконфигурировать параметры сети по следующему принципу:

dhcp4: no
dhcp6: no
addresses: [192.168.1.100/24, ]
gateway4: 192.168.1.2
nameservers:
addresses: [192.168.1.100, ]

Настраиваем адрес сервера имён, так же указывая там айпишник AD DC, приведя его к виду:

Меняем старое содержимое на следующее:

7.3 Контроллер домена Ubuntu – Настройка Kerberos

При инициализации AD DC, будет создан файл конфигурации керберос, где он расположен, указывается в конце отчета об инициализации. Дабы не делать двойную работу, заменяем существующий файл настроек Kerberos, только что созданным файлом.

7.4 Убеждаемся что всё работает

7.4.1 Смотрим имеющиеся на контроллере общие каталоги

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

7.4.2 Смотрим возможность подключения к netlogon
Теперь сотрим пускает ли доменного админа в каталог netlogon

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

7.4.3 Когда потребуется авторизация, вводим пароль указанный в момент инициализации. Авторизовавшись успешно вы получите доступ к каталогу

7.4.4 Проверяем правильность настройки DNS
Если bind9 был настроен некорректно, то AD DC не взлетит. Для того чтобы проверить, попытаемся извлечь из днс сервера необходимые записи

7.4.4.1 Во-первых смотрим SRV запись _ldap

$ host -t SRV _ldap._tcp.adminguide.lan.
_ldap._tcp.adminguide.lan has SRV record 0 100 389 ag-dc-1.adminguide.lan.

7.4.4.2 Во-вторых смотрим SRV запись _kerberos

$ host -t SRV _kerberos._udp.adminguide.lan.
_kerberos._udp.adminguide.lan has SRV record 0 100 88 ag-dc-1.adminguide.lan.

7.4.4.3 В-третьих проверяем A запись контроллера домена

$ host -t A ag-dc-1.adminguide.lan.
ag-dc-1.adminguide.lan has address 192.168.1.100

7.4.4.4 Проверяем работоспособность Kerberos

$ kinit administrator
Password for administrator@ADMINGUIDE.LAN:
Warning: Your password will expire in 38 days on Fri May 15 19:36:28 2020

7.4.4.5 В конечном итоге, смотрим кеш авторизационных тикетов Kerberos

$ klist
Ticket cache: FILE:/tmp/krb5cc_1001
Default principal: administrator@ADMINGUIDE.LAN

7.4.5 Конец проверки настроек DNS
На этом этапе мы готовы перейти к настройке DHCP сервера

8. Контроллер домена Ubuntu – Настройка DHCP сервера
8.1 Для начала устанавливаем DHCP сервер

8.2 Затем создаём пользователя домена для работы с обновлениями

sudo samba-tool user create dhcpduser --description="Unprivileged user for TSIG-GSSAPI DNS updates via ISC DHCP server" --random-password

8.3 Так же устанавливаем истечение пароля и добавляем в группу DnsAdmins

$ sudo samba-tool group addmembers DnsAdmins dhcpduser
Added members to group DnsAdmins

8.4 Теперь экспортируем данные

sudo samba-tool domain exportkeytab --principal=dhcpduser@ADMINGUIDE.LAN /etc/dhcpduser.keytab
sudo chown dhcpd:dhcpd /etc/dhcpduser.keytab
sudo chmod 400 /etc/dhcpduser.keytab

8.5 Создаём скрипт

И копируем в него следующий код, к сожалению в дзене нет ни тега code ни тега spoiler :(

usage()
echo "USAGE:"
echo " $(basename $0) add ip-address dhcid|mac-address hostname"
echo " $(basename $0) delete ip-address dhcid|mac-address"
>

nsupdate -g $ << UPDATE
server 127.0.0.1
realm $
update delete $ 3600 PTR
send
UPDATE
result2=$?
;;
*)
echo "Invalid action specified"
exit 103
;;
esac

И устанавливаем права на скрипт

8.6 Модифицируем файл с настройками

8.6.1 Создаём бекап и модифицируем конфиг

sudo cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf_bak
sudo nano /etc/dhcp/dhcpd.conf

8.6.2 Заменяем содержимое на следующее. И опять с великим сожалением констатирую отсутствие тегов code или spoiler в дзене :(

on release set ClientIP = binary-to-ascii(10, 8, ".", leased-address);
set ClientDHCID = concat (
suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,1,1))),2), ":",
suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,2,1))),2), ":",
suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,3,1))),2), ":",
suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,4,1))),2), ":",
suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,5,1))),2), ":",
suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,6,1))),2)
);
log(concat("Release: IP: ", ClientIP));
execute("/usr/local/bin/dhcp-dyndns.sh", "delete", ClientIP, ClientDHCID);
>

8.7 Редактируем права на запуск

Добавляем в конец файла перед закрывающей скобкой >

/usr/local/bin/dhcp-dyndns.sh rix,
/dev/tty wr,
/usr/sbin/samba rix,
/usr/bin/gawk rix,
/usr/bin/grep rix,
/usr/bin/hostname rix,
/usr/bin/logger rix,
/usr/bin/wbinfo rix,
/usr/bin/date rix,
/usr/bin/klist rix,
/usr/bin/host rix,
/proc/** wr,
/usr/bin/kinit rix,
/etc/dhcpduser.keytab rk,
/run/samba/winbindd/pipe wr,
/etc/dhcpduser.keytab rk,
/tmp/* wrk,
/usr/bin/nsupdate rix,
sudo /etc/init.d/apparmor stop && sudo /etc/init.d/apparmor start

Рестарт DHCP сервера

sudo service isc-dhcp-server stop && sudo service isc-dhcp-server start

8.8 Контроллер домена Ubuntu – Проверяем работу DHCP

В сети с ad-dc-1 у меня есть еще 1 ubuntu server с именем ag-dc-lin-client-1. Он не в домене, он не настраивался, он просто есть и он получает сетевые настройки по dhcp.
Пытаюсь пингануть этот клиентпо имени, результат нулевой.
Включаю этот сервер, жду пока загрузится. После того как сервер загрузился, пытаюсь снова, пинг идёт.
Команды ping ag-dc-lin-client-1 и ping ag-dc-lin-client-1.adminguide.lan теперь будут успешно пинговать эту машину по имени. Как и другие ваши устройства не находящиеся в домене и получающие адреса по DHCP от контроллера домена.

9. Заключение

Таким образом мы и подошли к концу. Никогда не стоит забывать, что для улучшений ещё очень большой простор, но этот вариант позволит админу иметь в небольшом офисе лицензионный Active Directory Domain Controller с DNS и DHCP серверами, способными обслуживать не только компьютеры присоединённые к домену, но и все машины вообще. Что позволит уйти от настройки локальных сервисов на статические ip адреса, и перейти на использование динамических ip адресов в связке с dns именами устройств.

Качественный DC++ клиент для Linux

Ух спасибо так спасибо! Век уже ищу что-то подобное! Огромное человеческое спасибо тебе! :-) (замучался я с тупым волкнутом уже)

блин, чувак ты б ещё tar.bz2 с ним выложил бы так вобще бы было.

O! Спасибо тебе добрый человек! Valknut правда уже замучил.

> блин, чувак ты б ещё tar.bz2 с ним выложил бы так вобще бы было.

Вышеобозначенный bz2 могу выслать по мылу (3 мега, примерно) или есть собранный вариант. Дело в том, что зависимости у этой штуки очень крутые, например, gcc3.4, которой у некоторых просто нет.

Интересно. Выглядит ничего так, прилично. А мультисорс эта штука умеет? Чтоб один файл одновременно со многих юзеров качать? А то в valknut есть, а в виндовом DC++ - не было (если я правильно помню).

Кстати, сеть называется DC (Direct Connect), а не DC++, так что эта прога является DC-клиентом (а не DC++-клиентом).

Отправь на мыло n.shevyakov[at]gmail[dot]com. буду очень признателен.

отправь пожалуйста собранный на some_x <домашний волк> tomgate<точка>net, а то у меня gcc3.3.3. Хотя если бы ты где-нибуть выложил сырцы, то же наверное неплохо бы было.

присоединяюсь ко всем спасиба!
сырцы мона на hmr[тчк]manowar[пес]mail[тчк]ru

Что-то я староват стал, а как там сделать koi8 <-> 1251 конвертирование?

> А мультисорс эта штука умеет? Чтоб один файл одновременно со многих юзеров качать?

Умеет. А насчёт виндовой утилитки -- тоже умеет. Просто их много разных.

> Что-то я староват стал, а как там сделать koi8 <-> 1251 конвертирование?

Чего именно надо конвертировать? Названия файлов или чат? Он вроде все локали из окружения берёт и сам конвертирует как нужно. Если проблема с названиями файлов, то можно написать скриптец на python.

У меня стоит gtk2-devel-2.6.4, но не идёт:

/Documents/linuxdcpp> scons
scons: Reading SConscript files .
Checking for pkg-config. ok
Checking for gtk+-2.0 >= 2.4. failed
gtk+ >= 2.4 not found.
mikhail@linux:

> Что-то я староват стал, а как там сделать koi8 <-> 1251 конвертирование?

> Чего именно надо конвертировать? Названия файлов или чат? Он вроде все
> локали из окружения берёт и сам конвертирует как нужно. Если проблема
> с названиями файлов, то можно написать скриптец на python.

> У меня стоит gtk2-devel-2.6.4, но не идёт

Давай мыло. Я тебе вышлю собранный вариант.

Хрен его знает. У меня cp1251. Может он несовместим с koi8?

А как его под freebsd собрать? Ошибку вываливает:


В федоре же utf давно

Под фрёй собирали уже, точно знаю. У нас у одного юзверька фря стоит на десктопе. Смотри зависимости. Он писал, что компилятор ругался на отсутствие linuxthreads. Увы, я даже не знаю что это +)

Думаю если вы попали на эту страницу, значит тем или иным путем пришли к выводу о том, что необходимо настроить систему централизованного управления учетными записями в локальной сети вашего предприятия, скорее всего это контроллер домена на Ubuntu или Windows. У вас как обычно 3 основных пути для реализации своего плана:

    1. Выкинуть деньги на ветер
    2. Сесть за пиратство
    3. Использовать какое-либо решение на базе линукса

    Если честно, есть еще 4-й вариант, и он очень даже неплох. Основывается он на Synology NAS, обладающих просто божественными возможностями даже в самых маленьких реализациях.

    Но вернемся к нашим реалиям. Наш вариант номер 3. В деталях он выглядит примерно так:

    1. У нас в сети нет ни одного серверного решения Microsoft
    2. Мы не хотим появления в нашей сети пиратских серверных решений Microsoft
    3. В большинстве своем наша сеть состоит из машин с ОС Ubuntu Desktop, но есть и пара ноутбуков с вендами.
    4. У нас есть необходимость централизованного управления учётными записями
    5. У нас есть одно или несколько сетевых хранилищ и мы хотим управлять доступом к хранимой на них информации, предоставляя его через протоколы NFS и CIFS(smb). Сетевые хранилища могут быть реализованы как на голых ubuntu server, так на различных решениях типа FreeNAS, NAS4Free и тд, так и на покупных решениях, типа QNAP, Synology и тд.

    Реализовывать контроллер домена на Ubuntu мы будем на хосте ESXi с примерно следующими характеристиками:

    1. CPU: 1 ядро на 2.2-2.8 GHz
    2. RAM: 2 Gb
    3. HDD: 1 hdd 32Gb
    4. Network: 1 Сетевая карта
    5. Имя сервера: ag-dc
    6. Имя домена: adminguide.lan

    Что касается физической машины, то подойдет любая не сильно мощная машина. Но если там хотя бы 4‑х ядерный CPU и 4+ гига оперативной памяти, я рекомендовал бы запилить на неё бесплатный гипервизор ESXi и уже с его помощью полностью утилизировать имеющиеся мощности.

    Поправка к инструкции: Везде в тексте инструкции, имя тестового samba домена изменено с adminguide.local на adminguide.lan. зона .local может вызывать глюки в виндовых сетях. Если вы видите на скриншоте adminguide.local, на самом деле там должно быть adminguide.lan

    Устанавливаем Ubuntu Server 18.04 LTS amd64

    Изменяем имя сервера на ag-dc

    Контроллер домена на Ubuntu - Ubuntu 18.04 AD-DC - hostnamectl

    1. После изменения имени сервера в соответствии с инструкцией, перезагружаем сервер следующей командой:
    2. Проверяем имя сервера
      После загрузки сервера, авторизовываемся и смотрим результат команды hostnamectl . Должно быть следующее:

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

    Настраиваем статический IP адрес

    1. На данном этапе, пока у нас еще не стоит самба и не инициализирован домен, наши настройки будут следующими:
      IP адрес и маска сети сервера: 192.168.1.100/24
      Шлюз 192.168.1.1 (роутер в тестовой сети)
      dns сервер 192.168.1.1 (роутер в тестовой сети). Переходим по ссылке и выполняем все по инструкции приводя настройки сети к следующему виду:

    Отключаем systemd-resolved

    1. Останавливаем сервис systemd-resolved
    2. Убираем systemd-resolved из автозапуска
    3. Удаляем ссылку /etc/resolv.conf
    4. Открываем на редактирование файл /etc/resolv.conf

    Настраиваем файл /etc/hosts

    Контроллер домена на Ubuntu - Ubuntu 18.04 AD-DC - Настройка hosts

    1. Одним из обязательных условий, является резолв имени нашего сервера, на его 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.
    2. Приводим файл hosts к следующему виду:

    Проверяем что не запущено никаких самвобых процессов

    Для этого понадобится следующая команда:

    Контроллер домена на Ubuntu - Ubuntu 18.04 AD-DC - Поиск процессов samba

    Если есть хоть один процесс и вы видите что-то типа этого:

    таки возможно вы настраиваете AD-DC не на новом сервере или на сервере развернутом не из оригинального образа. Если вы решите на свой страх и риск продолжить установку, то вам необходимо убить все процессы с именами samba, smbd, nmbd, winbindd. Чтобы убить процесс, надо использовать команду sudo kill <id-процесса>:

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

    1. Устанавливаем samba и все необходимые пакеты командой:
    2. Область по умолчанию для Kerberos версии 5

    Контроллер домена на Ubuntu - Ubuntu 18.04 AD-DC - Серверы Kerberos для вашей области

    Так же указываем ag-dc.adminguide.lan

    Бэкапим стандартную конфигурацию Samba

    Инициируем контроллер домена на Ubuntu 18.04

    Запускаем инициализацию в интерактивном режиме

    Указываем параметры домена

    Если в процессе настройки не было допущено ошибок, все необходимые данные установщик поместит в квадратные скобки в виде стандартных значений:

    Когда установщик запросит пароль, рекомендую указать пароль понадежнее. Это будет пароль от учетной записи администратора домена.

    Смотрим результаты инициализации

    Следующие строки возвестят о том, что контроллер домена на Ubuntu успешно завершил инициализацию:

    Настройка DC

    Контроллер домена на Ubuntu, реализованный с помощью Samba сам автоматически запускает необходимые сервисы. Поэтому если они будут запущены не Samba DC, а например вручную пользователем, это может привести к необратимым последствиям и домен перестанет функционировать как должен. Поэтому на всякий случай, необходимо сделать эти сервисы недоступными для ручного запуска и отключить их автозапуск:

    Делаем samba-ad-dc доступным для запуска, включаем сервис и включаем его автозапуск

    Настройка DNS

    1. Изменяем dns сервер в настройках сети на IP настраиваемого сервера. По факту он будет ссылаться на себя же как на днс сервер 192.168.1.100
      Приводим настройки параметров сети к следующему виду:

    Настройка Kerberos

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

    Проверяем результаты своей работы

    Они создаются в процессе инициализации домена и должны присутствовать для его правильного функционирования.

    Контроллер домена на Ubuntu - Ubuntu 18.04 AD-DC - DC Shares

    Когда система запросит пароль, необходимо ввести пароль администратора домена, который мы указали при инициализации, в пункте 9.2

    1. Смотрим SRV запись _ldap
    2. Смотрим SRV запись _kerberos
    3. Проверяем A запись контроллера домена

    Контроллер домена на Ubuntu - Ubuntu 18.04 AD-DC - DNS тесты

    Контроллер домена на Ubuntu - Ubuntu 18.04 AD-DC - kinit & klist результат

    Belfigor

    You may also like

    Резервный DHCP сервер Linux AD-DC Ubuntu 18.04

    Запуск дополнительного Linux AD-DC

    Репликация SysVol Linux AD-DC. Запуск и проверка.

    Linux AD-DC Двусторонняя репликация SysVol

    Проверка DNS записей резервного Linux AD-DC

    Настройка безопасности SSH соединения

    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 (старшие модели) умеют поднимать.

    Оно явным текстом жалуется на параметр realm в smb.conf
    Контроллер разворачивается не на чистой установке?

    я разобрался в чем была проблема, не внимательность. Спасибо за гайд)

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

    А как добавлять пользователей через командную строку на данном сервере?

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

    Cannot find KDC for requested realm while getting initial credentials в чем проблема?

    Проверяем A запись контроллера домена
    host -t A srv.kam.loc.
    Выдаёт
    srv.kam.loc has no A record

    Нужно видеть лог bind9 и лог всей установки. Вы уверены что сам dns сервер bind9 работает?

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

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

    В смысле 18.04.1, а не 18.01

    Может есть какой-то способ проверить эти вещи в начале инструкции? А то каждый раз, когда уже всё сделал, этот последний пункт не работает.

    Безусловно, тоже вариант.

    Спасибо. Ошибка действительно было в выбранном DNS сервере, в силу использования разных установщиков в разных ситуациях. К сожалению, я не успел прочитать ценный совет и еще 3 раза пробовал всё ставить и эксперементировать.

    Спасибо за ценную статью, она мне очень помогла. Вопрос у меня остался касательно DNS: если мы ставим у контроллера домена адрес ДНС сервера на самого себя, то к кому он сам будет обращаться?

    У DNS сервера настраиваются форвардеры, куда отправляются запросы, на которые нет ответа у самого ДНС сервера.

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

    Какая версия Ubuntu Server? Могу для начала порекомендовать создать домен в зоне не LOCAL, а LAN. В руководстве в будущем тоже изменю в примерах везде local на lan

    Добрый день. На Ubuntu 18.04.3 LTS работает ?

    В __теории__ должно работать на любой Ubuntu 18.04.x и даже может 18.x.x

    Дело было в DNS. kinit проходит но теперь проблема с остальными записями host -t SRV _ldap._tcp.*.* теперь вот это н епроходит

    Запустился ли DNS сервер?

    а как кстати проверить запустился ли сервер samba-internal ? то что он не реагирует на nslookup видимо говорит о том что он не работает. как его запустить ?

    Все записи ДНС создаются автоматически ? Или нужно вручную их забивать ?

    Доброго времени суток. Шаг 13.1 Команда smbclient -L localhost -U% выдает ошибку error nt_status_connection_refused. Как быть?

    Руководствуюсь официальной документацией

    Помогите настроить самбу как контроллер домена.

    Обязательно ли ставить BIND или можно обойтись днс-ом 8.8.8.8 ? Что прописывать в resolv.conf и hosts? И какое имя хоста?

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

    благодарю за столь развернутый ответ ! 🙂 я именно так и подумывал что ошибся с понятиями домен интеренета и домен AD это различные и независимые понятия.


    LinuxDC++ — клиент файлообменной сети Direct Connect для GNU/Linux, с множеством полезных функций, позволяющий быcтро находить и скачивать нужные/разнообразные файлы.



    LinuxDC++ — юникс-порт ядра DC++, написанный на C/GTK+. Имеет мультипоточную скачку, являсь одним из самых популярных и стабильных графических p2p клиентов для Linux.



    DC++ (произносится как «диси-плас-плас», «диси-плюс-плюс») — свободный файлообменный клиент сети Direct Connect, разработан как замена стандартному клиенту NeoModus DirectConnect, написанному на Visual Basic (на исходных кодах данного клиента построено большинство DirectConnect клиентов).




    Direct Connect — это частично централизованная пиринговая файлообменная (P2P) сеть, в основе работы которой лежит проприетарный протокол, разработанный фирмой NeoModus. Оригинальный клиент назывался NeoModus DirectConnect (сокращённо NMDC).


    Сеть Direct Connect объединяет миллионы пользователей и тысячи хабов, являясь одной из самых популярных p2p сетей в мире! В настоящее время подавляющее большинство пользователей сети пользуется многочисленными клиентами на базе клиента DC++, являющегося продолжателем NMDC версии 1.0.



    Каждый пользователь сети Direct Connect разрешает доступ к содержимому некоторых своих расшареных папок (расшаривание/share — делиться) . Впоследствии любой другой пользователь сети может cкачать эти данные с его компьютера. Происходит прямое соединение двух компьютеров, и один компьютер начинает передавать данные другому.


    LinuxDC++ — включает всё необходимое для работы. Отличается от других клиентов надёжностью работы и стабильностью. Поддерживает хеширование и скачивание из нескольких источников. Имеется развитая функциональность чата.



    Базовые функции клиента:

    — Основные функции клиентов (чат, приват, списки файлов, обмен)

    — Расширенный поиск (по объему, типу файла и т.п.) с выбором хабов, в которых искать

    — Возможность получить список фaйлов пользователя в виде древовидной структуры папок

    — Просмотр собственного списка файлов, ведение логов скачек и закачек

    — Возможность скачивать целые директории

    — Идеальное решение для локальных сетей: p2p файлообменная система и чат в oдном

    — Поддерживает обмен данными по протоколам NMDC и ADC.


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



    Linux DC++ — включает в себя базу GeoIP, для определения по IP страны пользователей. Данная база постоянно обновляется, впрочем, обновление идет как от версии к версии, и можно загрузить базу с соответствующего сервиса в интернете.



    Лицензия: GNU General Public License v2

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