Как привязать домен к серверу debian

Обновлено: 06.07.2024

  • Active Directory;
  • OpenLDAP;
  • Samba Domain;
  • И прочие другие коммерческие.

Все записи LDAP представляются атрибутами в следующем виде:

Samba как DC

Но за всё надо платить, ибо самый популярный для таких целей Windows Server с Active Direcory на борту не бесплатный, а потому в последнее время с развитием пакета программ Samba 4 есть возможность использования Samba в качестве контроллера домена с применением групповых политик. О Samba 4 и последующей настройке и будет дальнейшее содержание данной статьи.

По своей сути Samba 4 есть Open-Source реализация Active Directory и, согласно документации, является стабильным вариантом применения в качестве домен-контроллера в production-среде.

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

Наименование домена

Кратко поясню, почему выбран именно такой формат именования.

AD Schema

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

Информация с оф. сайта Samba по поддержке AD схем:

Одним из нюансов является то, что в стабильных репозиториях Debian 10 доступна Samba версии только 4.9. Но хотелось бы использовать последние доступные возможности схемы домена, поэтому я на свой страх и риск подключил тестовые репозитории и произвёл дальнейшую установку Samba 4.11.3 из них:

Samba Internal DNS имеет следующие недостатки:

Не смотря на вышеперечисленное, на практике это не доставляет проблем.

Подразумевается, что в сети, где разворачивается Samba AD, уже используется один или более DNS-серверов (например, тот же BIND, который не связан с Samba или внешние гугл\яндекс сервера). На этот DNS-сервер будут перенаправляться запросы клиентов Samba, т.е. он будет выбран в качестве forwarder.

Настройка hosts

Удаление существующих файлов

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

Запущенные экземпляры Samba и сервисов

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

Если под фильтр попадает что-то из запущенного, нужно остановить:

Скрыть юниты, чтобы они не могли быть запущены:

Установка

Для своих серверов я всегда использую Centos, но здесь пришлось сделать исключение и выбрать Debian, т.к. Samba, доступная из основных пакетов в Centos, не может выступать в роли AD.

Вариантов установки на Centos было несколько: собрать из пакетов (что на продуктивном сервере совсем некошерно) или установить из сторонних репозиториев (например, tissamba), но решил попробовать Debian, т.к. не хотелось искать обходные пути.

Но и с Debian оказался нюанс, т.к. в основных стабильных репозиториях не было нужной мне версии. Тем не менее, вариант установки из официальных репозиториев, пусть и тестовых, меня более чем устроил.

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

Зависимости, необходимые для Samba AD в Debian:

В оф. документации указаны пакеты python-gpgme python3-gpgme для зависимостей, но в Debian 10 его больше нет, так что его я не устанавливал.

Настройка домена

Для установки Samba в Debian 10 нужны следующие пакеты:

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

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

Теперь надо сконфигурировать /etc/resolv.conf, чтобы в качестве резолвера использовался DNS из Samba (по идее, можно было бы сделать до создания домена):

На всякий случай уточню, что файл resolve.conf может затираться NetworkManager`ом или установленной утилитой resolvconf после рестарта, стоит это иметь ввиду.

Kerberos

И проверить его содержимое (на всякий случай):

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

Симлинк, ведущий в /dev/null, нужно удалить и выполнить перезагрузку сервисов systemd:

И запустить самбу, которая подтянет уже всё остальное, что ей нужно:

Правка конфигурационного файла Samba

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

После внесения изменений в конфиг, нужно выполнить рестарт сервиса:

LDAPS: TLS и CA

Вышеописанные инструкции по настройке в том или ином виде можно найти в интернете и особых сложностей не возникает. Но мало где описывают настройку TLS\SSL для Samba. При LDAP-авторизации трафик ходит незащищённым, а потому может возникнуть требование по настройке протокола LDAPS.

Samba при начальной установке автоматически генерирует ключ и сертификат для работы AD и корневой сертификат. Корневой сертификат имеет срок годности 2 года и длину ключа 4096 бит + непонятно где находится приватный ключ корневого сертификата. Для более прозрачного администрирования ниже будет описан процесс создания собственного центра сертификации (CA-сертификата и приватного ключа), с помощью которого будет выписан сертификат для работы Samba AD и прочих клиентов при необходимости.

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

  • На сервере должен быть установлен пакет для работы с openssl
  • Все сертификаты будут генерироваться по пути /var/lib/samba/private/tls/

Настройка CA и сертификатов

Сгенерировать ключ для CA с алгоритмом RSA, длина ключа — 4096 бит:

Сгенерировать корневой сертификат на основе ключа сроком на 10 лет. Дополнительно указывается CN (Common Name), которое должно быть наименованием домена, точнее его FQDN в верхнем регистре. Например, так:

Теперь, когда создан собственный CA, необходимо создать серверный сертификат для Samba AD. По аналогии с CA сначала создается ключ (с именем сервера для удобства), длина ключа может быть уже меньше:

Далее запрос на подпись (CSR):

ВАЖНО! Наименование OU для сертификатов CA и Samba должны быть разными. В командах выше subj содержит разные значения. CN в идеале тоже должно быть разным, но в данном случае не критично.

И подписать CSR корневым ключом и сертификатом:

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

Конфигурация Samba

В конфигурационном файле /etc/samba/smb.conf внести следующие изменения, указав пути до сертификатов и ключа:

После внесения изменений запустить демон и убедиться, что нет ошибок и что самба принимает соединения на порту 636 по LDAPS:

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

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

Общая проверка выполняется командой testparm

Посредством команд hosts и wbinfo можно провести ряд проверок, результат выполнения которых должен быть без ошибок:

Прочие проверки, которые могут пригодиться для отладки:

Дополнительно со стороны клиентов, которые подключаются к серверу с Samba AD по LDAPS, необходимо импортировать корневой сертификат. Для клиентов с Centos скопировать корневой сертификат ca.pem на клиентскую ОС по пути /etc/pki/ca-trust/source/anchors и выполнить команду импорта сертификата в ОС:

После этого можно подключаться через защищенное соединение. Для проверки работы TLS можно воспользоваться утилитой ldapsearch из пакета ldap-clients с расширенным дебагом:

Администрирование

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

Можно посмотреть общую информацию о домене:

Проверить список дефолтных юзеров через wbinfo или samba-tool:

А также список компьютеров (пока что только один КД):

Задать ему пароль:

Прочие команды можно посмотреть, выполнив:

через samba-tool также настраивается DNS.

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

Бэкап

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

Online делает копию работающей базы DC:

Offline создает резервные копии файлов Samba:

Каждая команда создает файл резервной копии .tar.bz2, который содержит полную резервную копию домена (на основе данного DC). Затем файл резервной копии можно использовать для восстановления домена с помощью команды «samba-tool domain backup restore».

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

В идеале можно комбинировать оба способа, настроив бэкап по крону с созданием нужного кол-ва копий.

Настройка Samba secondary domain controller

Стоит понимать, что в терминологии контроллеров домена нет понятия master\slave, т.е. все контроллеры равны, но один из них выступает владельцем ролей FSMO. Для проверки, какой из контроллеров является владельцем, можно выполнить команду samba-tool fsmo show

Важно остановить демон samba и сделать umask перед вводом сервера в домен.

На обоих контроллерах домена должно быть одинаковое время, поэтому необходимо проверить этот момент. Например, через timedatectl timesync-status

Подключение второго домена, как secondary, выполняется следующей командой:

Также для включения вторым контроллером можно использовать две другие команды, не принципиально:

При успешном выполнении команды, вывод должен быть примерно следующий:

После успешного подключения к домену в качестве контроллера домена, можно запустить демон самбы, который уже запустит все остальное необходимое (winbindd, smbd):

Проверка работы DNS

При вводе в работу второго КД и использовании Samba версии 4.7 и выше, все необходимые записи в DNS создаются автоматически. Тем не менее, необходимо проверить и убедиться, что они были созданы корректно:

Все объекты в AD имеют уникальный идентификатор objectGUID, который не может быть изменён. Samba также автоматически создаёт его, поэтому необходимо выполнить проверку. Для этого понадобится утилита ldbsearch из пакета ldb-tools. Она обращается к файлу /var/lib/samba/private/sam.ldb:

В DNS также создается служебная CNAME запись с этим идентификатором, которая указывает на имя нового контроллера домена. Для получения этой записи нужно выполнить команду, подставив objectGUID из вывода ldbsearch:

Проверка репликации

Теперь необходимо выполнить команду по проверке репликации каталогов DRS (Directory Replication Service). Она включает в себя следующие объекты:

Т.е. между контроллерами будут реплицированы схема, DNS-записи, группы, пользователи. Первоначально репликация может занимать около 15 минут, поэтому нужно подождать, пока knowledge consistency checker (KKC в Samba) выполнит все необходимые процедуры.

Проверка статуса репликации со второго контроллера домена:

CN=Schema,CN=Configuration,DC=samdom,DC=example,DC=com
Default-First-Site-Name\DC1 via RPC
DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
Last attempt @ Sat May 13 02:52:36 2017 CEST was successful
0 consecutive failure(s).
Last success @ Sat May 13 02:52:36 2017 CEST

DC=DomainDnsZones,DC=samdom,DC=example,DC=com
Default-First-Site-Name\DC1 via RPC
DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
Last attempt @ Sat May 13 02:52:36 2017 CEST was successful
0 consecutive failure(s).
Last success @ Sat May 13 02:52:36 2017 CEST

CN=Configuration,DC=samdom,DC=example,DC=com
Default-First-Site-Name\DC1 via RPC
DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
Last attempt @ Sat May 13 02:52:36 2017 CEST was successful
0 consecutive failure(s).
Last success @ Sat May 13 02:52:36 2017 CEST

DC=ForestDnsZones,DC=samdom,DC=example,DC=com
Default-First-Site-Name\DC1 via RPC
DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
Last attempt @ Sat May 13 02:52:36 2017 CEST was successful
0 consecutive failure(s).
Last success @ Sat May 13 02:52:36 2017 CEST

DC=samdom,DC=example,DC=com
Default-First-Site-Name\DC1 via RPC
DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
Last attempt @ Sat May 13 02:52:36 2017 CEST was successful
0 consecutive failure(s).
Last success @ Sat May 13 02:52:36 2017 CEST

CN=Schema,CN=Configuration,DC=samdom,DC=example,DC=com
Default-First-Site-Name\DC1 via RPC
DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
Last attempt @ NTTIME(0) was successful
0 consecutive failure(s).
Last success @ NTTIME(0)

DC=DomainDnsZones,DC=samdom,DC=example,DC=com
Default-First-Site-Name\DC1 via RPC
DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
Last attempt @ NTTIME(0) was successful
0 consecutive failure(s).
Last success @ NTTIME(0)

CN=Configuration,DC=samdom,DC=example,DC=com
Default-First-Site-Name\DC1 via RPC
DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
Last attempt @ NTTIME(0) was successful
0 consecutive failure(s).
Last success @ NTTIME(0)

DC=ForestDnsZones,DC=samdom,DC=example,DC=com
Default-First-Site-Name\DC1 via RPC
DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
Last attempt @ NTTIME(0) was successful
0 consecutive failure(s).
Last success @ NTTIME(0)

DC=samdom,DC=example,DC=com
Default-First-Site-Name\DC1 via RPC
DSA object GUID: 4a6bd92a-6612-4b15-aa8c-9ec371e8994f
Last attempt @ NTTIME(0) was successful
0 consecutive failure(s).
Last success @ NTTIME(0)

==== KCC CONNECTION OBJECTS ====

В случае каких-либо проблем можно попробовать перезапустить сервис Samba на обоих КД.

Ещё одним способом является сравнение количества объектов каталогов в домене на всех КД с помощью ldapcmp:

Репликация SysVol

Заключение

В качестве альтернативы есть ещё решения, как openldap и FreeIPA, но с ними не приходилось сталкиваться.

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

Или же подключить RADIUS для авторизации на VPN-сервере через доменную учётную запись, а также доменную авторизацию ко всем внутренним сервисам для централизованного управления.

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

вторник, 28 августа 2018 г.

Ведение Debian 9.3 в домен Active Directory

Заметка не претендует на оригинальность, является фактически калькой этой статьи, написана в качестве "записок на память". Так же обращаю внимание, что существует альтернативный способ без использования samba, но в моем случае она мне все равно нужна.

Продолжаю настройку терминального сервера Debian 9.3:

Выполняем в контейнере poweroff , после чего идем во вкладку DNS нашего LXC контейнера и в случае необходимости настраиваем имя, домен и DNS сервера через пробел.


Настраиваем синхронизацию времени с контроллерами домена:




проверяем время:
date
вывод должен совпадать с системным временем в домене.

Добавляем в /etc/hosts строку:
Ставим пакеты:
правим /etc/krb5.conf
Обращаю внимание на параметр "admin_server = dc"
Я считаю необходимым создать в DNS А записи с именем DC и указывающие на все ваши контороллеры, таким образом вы обезопасите себя от выхода одного из них их строя, кстати для kdc можно тоже указать одну строку "kdc = dc" пусть DNS server сам разруливает сбои.

1. Установка Debian 8

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

В первую очередь, нам нужно настроить сетевой интерфейс, поэтому отказываемся от настройки сети по DHCP

Итак, параметры сети у нас следующие:

адрес сервера: 192.168.1.2;
маска подсети соответственно 255.255.255.0;
шлюз по-умолчанию у нас 192.168.1.1;
DNS-сервер 192.168.1.1
имя сервера debian
имя домена unlis.local

После задания паролей, часовых поясов и разметки диска можно настроить репозитории (скормить apt все три DVD-диска с дистрибутивом при их наличии, либо подключить зеркало из сети):

24

Можно сделать после установки, привести /etc/apt/sources.list к виду

Доходим до шага выбора программного обеспечения, выбираем необходимый минимум

30

2. Настройка сети, файловых систем, репозиториев, установка нужных пакетов

Поставили, загрузились, логинимся под root, или через SSH сначала под обычным пользователем, которого мы создали при установке, потом через su переключаемся на root. Именно, в Debian 8 уже нельзя зайти через SSH сразу под root-ом по паролю, но мы-то с вами знаем, где собака порылась)

Проверяем настройку сети. Для этого смотрим /etc/network/interfaces, изменяем при необходимости

Проверим содержимое /etc/hosts

127.0.0.1 localhost
192.168.1.2 debian.unlis.local debian

В файле /etc/hostname должно быть сокращенное имя хоста

Затем командуем по очереди hostname и hostname -f

Для работы контроллера домена в ядре должна быть поддержка XATTR, SECURITY и POSIX_ACL для файловой системы ext4. По умолчанию она присутствует, необходимо только включить ее для нужных нам файловых систем в файле /etc/fstab (выделено жирным шрифтом):

После перезагрузки необходимо протестировать поддержку XATTR для файловой системы. Выполним:

touch testfile
setfattr -n user.test -v test1 testfile
setfattr -n security.test -v test2 testfile

file: testfile
user.test="test1"

Команда getfattr -n security.test -d testfile должна вернуть:

file: testfile
security.test="test2"

Для проверки поддержки ACL выполним:

touch testfile2
setfacl -m g:adm:rwx testfile2

Команда getfacl testfile2 должна вернуть:

Далее, как правило, нужно обновиться. Если подключали зеркало репозитория при установке, то все уже обновлено. Если нет, то подключаем (см выше про /etc/apt/sources.list), и командуем apt-get update && apt-get upgrade.

После обновления устанавливаем samba4. Также нам понадобится пакет krb5-user, ntp, smbclient, winbind (раньше без него работало, но в новых версиях samba падает) и bind9 (так как мы не будем использовать в качестве DNS сервера встроенный в Samba4), установим вышеперечисленное командой apt-get install samba ntp smbclient krb5-user bind9 winbind. Все необходимые пакеты поставятся сами. При установке krb5-user спросит realm, можно оставить пустым, настроим вручную позже.

3. Настройка samba в качестве контроллера домена.

ERROR(<class 'samba.provision.ProvisioningError'>): Provision failed - ProvisioningError: guess_names: 'server role=standalone server' in /etc/samba/smb.conf must match chosen server role 'active directory domain controller'! Please remove the smb.conf file and let provision generate it

удаляем или перемещаем файл /etc/samba/smb.conf и выполняем команду заново

Realm [UNLIS.LOCAL]: UNLIS.LOCAL
Domain [UNLIS]: UNLIS
Server Role (dc, member, standalone) [dc]: dc
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: BIND9_DLZ
Administrator password: <Пароль_администратора_домена>
Retype password: <Пароль_администратора_домена>
Looking up IPv4 addresses
Looking up IPv6 addresses
No IPv6 address will be assigned
Setting up secrets.ldb
Setting up the registry
Setting up the privileges database
Setting up idmap db
Setting up SAM db
Setting up sam.ldb partitions and settings
Setting up sam.ldb rootDSE
Pre-loading the Samba 4 and AD schema
Adding DomainDN: DC=unlis,DC=local
Adding configuration container
Setting up sam.ldb schema
Setting up sam.ldb configuration data
Setting up display specifiers
Modifying display specifiers
Adding users container
Modifying users container
Adding computers container
Modifying computers container
Setting up sam.ldb data
Setting up well known security principals
Setting up sam.ldb users and groups
Setting up self join
Adding DNS accounts
Creating CN=MicrosoftDNS,CN=System,DC=unlis,DC=local
Creating DomainDnsZones and ForestDnsZones partitions
Populating DomainDnsZones and ForestDnsZones partitions
See /var/lib/samba/private/named.conf for an example configuration include file for BIND
and /var/lib/samba/private/named.txt for further documentation required for secure DNS updates
Setting up sam.ldb rootDSE marking as synchronized
Fixing provision GUIDs
A Kerberos configuration suitable for Samba 4 has been generated at /var/lib/samba/private/krb5.conf
Setting up fake yp server settings
Once the above files are installed, your Samba4 server will be ready to use
Server Role: active directory domain controller
Hostname: debian
NetBIOS Domain: UNLIS
DNS Domain: unlis.local
DOMAIN SID: S-1-5-21-2700703666-2339786236-4269973824

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

После установки bind9 проверяем его версию командой named -v, должно вернуться что-то типа BIND 9.9.5-9+deb8u3-Debian (Extended Support Version). То есть версия bind у нас 9.9. Все нижеприведенные настройки будем выполнять именно для этой версии.

Дописываем в конец файла /etc/bind/named.conf

Дописываем в конец файла /etc/bind/named.conf.options после символа >;

И в файле /var/lib/samba/private/named.conf комментируем/раскомментируем строку под нашу версию bind

Для того, чтобы контроллер домена знал всех членов домена по их DNS-именам, внесем изменения в файл /etc/resolv.conf

domain unlis.local
nameserver 192.168.1.2

Можно еще изменить адрес DNS-серверов в файле /etc/network/interfaces

Если установлен пакет resolvconf, то в файле /etc/network/interfaces не можно, а нужно изменить параметр dns-nameservers, а файл /etc/resolv.conf можно вообще не трогать, потому что он будет перезаписан пакетом resolvconf на основании настроек dns-* из файла /etc/network/interfaces (Подсказано читателем).

Если планируется использование bind для пересылки DNS-запросов в Интернет, необходимо настроить адреса forwardes в файле /etc/bind/named.conf.options

4. Настройка Kerberos.

Типовая конфигурация содержится в файле /etc/krb5.conf. В момент создания домена генерируется файл /var/lib/samba/private/krb5.conf, содержащий минимальную конфигурацию, необходимую для работы AD. Можно обойтись и этой конфигурацией, создав символическую ссылку на файл командой ln -sf /var/lib/samba/private/krb5.conf /etc/krb5.conf. Но мы не ищем легких путей, поэтому приводим файл /etc/krb5.conf к виду (первые три строки в секции [libdefaults] и есть минимальная конфигурация)

[libdefaults]
default_realm = UNLIS.LOCAL
dns_lookup_realm = false
dns_lookup_kdc = true
krb4_config = /etc/krb.conf
krb4_realms = /etc/krb.realms
kdc_timesync = 1
ccache_type = 4
forwardable = true
proxiable = true

v4_instance_resolve = false
v4_name_convert = <
host = <
rcmd = host
ftp = ftp
>
plain = <
something = something-else
>
>
fcc-mit-ticketflags = true
[realms]
UNLIS.LOCAL = <
kdc = debian
admin_server = debian
default_domain = UNLIS.LOCAL
>

[domain_realm]
.unlis.local = UNLIS.LOCAL
unlis.local = UNLIS.LOCAL

4. Настройка NTP.

Минимальная конфигурация /etc/ntp.conf

driftfile /var/lib/ntp/ntp.drift
logfile /var/log/ntp
ntpsigndsocket /var/lib/samba//ntp_signd/

5. Мы строили-строили, и наконец построили!

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

Sharename Type Comment
--------- ---- -------
netlogon Disk
sysvol Disk
IPC$ IPC IPC Service (Samba 4.1.17-Debian)
Domain=[UNLIS] OS=[Unix] Server=[Samba 4.1.17-Debian]

Name: unlis.local
Address: 192.168.1.2

Valid starting Expires Service principal
16.10.2015 15:07:12 17.10.2015 01:07:12 krbtgt/UNLIS.LOCAL@UNLIS.LOCAL
renew until 17.10.2015 15:07:07

Тестируем обновление DNS-записей

Для управления контроллером домена можно использовать средства удаленного администрирования сервера для Windows 7, для Windows XP Pro + вторая часть.

6. Литерадура
  1. Настройка Samba в качестве контроллера домена
  2. Настройка BIND в качестве DNS-сервера контроллера домена
  3. Синхронизация времени

26 Comments

И в файле /var/lib/samba/private/dns.keytab комментируем/раскомментируем строку под нашу версию bind
>>
И в файле /var/lib/samba/private/named.conf комментируем/раскомментируем строку под нашу версию bind

А вообще спасибо за пошаговую инструкцию.

Ну дык английский учить надо мне)

samba: samba: setproctitle not initialized, please either call setproctitle_init() or link against libbsd-ctor.setproctitle not initialized, please either call setproc$

samba: setproctitle not initialized, please either call setproctitle_init() or link against libbsd-ctor.
samba: setproctitle not initialized, please either call setproctitle_init() or link against libbsd-ctor.
samba: samba: setproctitle not initialized, please either call setproctitle_init() or link against libbsd-ctor.setproctitle not initialized, please either call setproc$

В итоге после установке пакета windbind всё заработала

Apt-get install winbind

Добавьте в инструкцию установку пакета winbind

Дописываем в конец файла /etc/bind/named.conf.options

Нужно так: Дописываем в конец файла перед >; /etc/bind/named.conf.options

и еще если копировать команды с вашего мануала то кавычки неправильные копирует.

Я это понял когда добавил комент.
Спасибо за проделанную работу. :)
Есть пару Вопросов:
1. как добавить списком всех пользователей в AD.
2. как настроить хранение профилей пользователей на отдельный сервер, debian 8.
3. как подключить сетевые диски пользователям с разграничением доступа, сервер debian 8).
Пример: пользователю нужно сетевых 2 диска, 1-й для личных данных, а 2-й для общих.

1. Выполнить ldap-запрос?

Спасибо за статью полёт нормальный если не трудно можно статью как сделать резервный AD так же на samba?
Спасибо!

У меня по вашей статье не завелся DNS.
Тест DNS -не проходит. Подскажите что может быть. ставил Debian 8.6

остальные тесты прошли

Спасибо за статью.
Единственная из известных мне статей про настройку КД на Самбе, которая сработала, по крайней мере виндоус АРМ я в домен ввел нормально.
Поскольку я не волшебник, а только учусь, буду благодарен если Вы подскажите такой момент:
Насколько я понимаю в при вводе ПК в домен на DNS-сервер контролера (bind9) в файле db.domen.local должна появиться A-запись рабочей станции. по крайней мере на Windows Server так имеет место быть. А на debian в bind9 никаких изменений не произошло. С чем это может быть связано?

И вот наблюдаю такую штуку:
Когда дописываю в конец файла /etc/bind/named.conf

DNS серверы (система доменных имен) позволяют нам получить определенный IP-адрес из доменного имени, таким образом, мы можем получить доступ к различным веб-сайтам, поместив ваше доменное имя непосредственно в адресную строку веб-браузера. У нас также есть возможность настроить DNS-сервер в домашней или профессиональной локальной сети, чтобы подключаться к различным компьютерам в локальной сети через определенное доменное имя, без необходимости всегда помнить частные IP-адреса. Сегодня в этой статье мы покажем вам, как настроить DNS-сервер на Linux сервер с использованием Bind9, самого популярного и используемого DNS-сервера.

Настройка DNS-сервера с привязкой с использованием серверов Linux

Что такое привязка?

Bind, или также известный как Berkeley Internet Name Domain, представляет собой программное обеспечение, которое отвечает за выполнение задачи DNS-сервера. Bind в настоящее время является стандартом и широко используется в операционных системах Linux, а также в Unix, поэтому, если у вас есть сервер на базе Linux или Unix, и вам нужен DNS-сервер для обработки запросов из локальной сети, тогда Bind будет что вы должны использовать. Текущая версия Bind - это версия Bind9, и она обычно используется на всех серверах, предыдущие версии считаются небезопасными и «устаревшими», поэтому их не рекомендуется использовать.

Bind не заменяет DNS-серверы, подобные тем, которые мы можем использовать от Google (8.8.8.8), Cloudflare (1.1.1.1) или других, а скорее дополняет их. Клиенты локальной сети будут иметь в качестве DNS-сервера сервер привязки, который мы настраиваем на сервере Linux, позже в этой привязке мы сможем настроить различные правила для доступа к локальным компьютерам через их частные IP-адреса. Если клиент в локальной сети делает DNS-запрос на веб-сайт в Интернете, логически DNS-сервер не будет иметь все IP-адреса в Интернете в своей базе данных, в этом случае общедоступные DNS-серверы настроены для обработки этих запросов путем пересылки server с Bind запрос, и мы автоматически вернем его клиенту, который сделал запрос.

DNS де Windows

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

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

  • Настройте статический DHCP в маршрутизаторе / брандмауэре, который у нас есть, указав наш MAC-адрес сетевой карты и IP-адрес, который мы хотим, чтобы он всегда получал.
  • Статически настройте наш сервер Linux, в этом случае DHCP-сервер маршрутизатора / брандмауэра должен иметь диапазон DHCP, который находится за пределами нашего частного IP-адреса, который мы установили.

Чтобы статически настроить IP-адрес в Linux, мы должны отредактировать файл конфигурации «/ etc / network / interfaces» и поместить следующее:

auto lo
iface lo inet loopback

автомобиль Ens33
iface eth0 inet static
адрес 192.168.1.2
маска сети 255.255.255.0
192.168.1.1 шлюз
DNS-серверы 192.168.1.2

Затем мы должны перезапустить службу, чтобы изменения были корректно применены (если мы изменили текущий IP-адрес):

sudo service networking restart

Как только наш IP-адрес в локальной сети зафиксирован, мы можем установить Bind.

Привязать установку на Linux и автозагрузку

Первое, что нам нужно сделать для настройки DNS-сервера (привязки) в Linux, - это установить его из репозиториев, мы собираемся установить как DNS-сервер Bind9, так и пакеты, предлагаемые операционной системой Debian, поэтому мы необходимо поместить в консоль следующее:

sudo apt install bind9 bind9-doc resolvconf python-ply-doc

После того, как мы установили все предыдущие пакеты, нам нужно перейти в каталог программы, где нам нужно будет начать настройку необходимых файлов:

Целесообразно получить доступ к этому каталогу как root (sudo su) чтобы избежать проблем с разрешениями при копировании файлов или изменении существующих. Если мы введем «ls -l», чтобы перечислить все файлы, которые у нас есть, мы увидим следующее:


Как видите, у нас есть большое количество различных файлов конфигурации, каждый из которых специально ориентирован на конкретную задачу, в официальной документации Bind9 вы можете найти, для чего каждый из них предназначен. Предположим, что с этого момента вы всегда находитесь в режиме суперпользователя (root), чтобы редактировать или копировать файлы без ограничений.

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

Первое, что мы собираемся сделать, это настроить переадресацию DNS-серверов, то есть общедоступных DNS-серверов для пересылки запросов в Интернет. Файл конфигурации, отвечающий за эту задачу, называется named.conf.options. Первое, что мы делаем, это делаем резервную копию файла на случай, если мы отредактируем его неправильно и все перестанет работать:

cp /etc/bind/named.conf.options /etc/bind/named.conf.options.copia


Теперь мы редактируем файл, добавляя DNS-серверы в раздел пересылки, как вы можете видеть здесь:

Это было бы так:


После того, как мы его изменили, мы перезапускаем службу Bind9, чтобы убедиться, что все работает правильно и не возвращает никаких ошибок:

sudo service bind9 restart

Теперь мы собираемся проверить, правильно ли они работают, для этого мы выполняем команду nslookup, и мы должны увидеть, что наш DNS-сервер правильно определил домен, в нашем случае IP-адрес сервера - 192.168.231.130:


После того, как мы настроили Bind для пересылки разрешений веб-сайтов в общедоступный DNS, мы увидим, как настроить его для разрешения внутренних доменов.

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

Файл конфигурации, который мы должны настроить сейчас, называется .conf.local, желательно сделать резервную копию на случай, если что-то пойдет не так при настройке, для этого мы выполняем:

cp /etc/bind/named.conf.local /etc/bind/named.conf.local.copia

После того, как мы сделали резервную копию, нам нужно будет отредактировать файл конфигурации named.conf.local, чтобы продолжить настройку. В этот файл конфигурации нам нужно будет поместить зону, о которой мы говорим, а также файл конфигурации привязки, в котором есть все конфигурации, поэтому мы можем оставить его так:

zone "redlocal.com" type master;
file "/etc/bind/db.redlocal";
>;

Важно, чтобы «файл» относился к файлу конфигурации, который мы импортируем и который мы собираемся настроить прямо сейчас.

Теперь нам нужно скопировать базу данных, которая есть в «db.local», присвоить ей имя » db.redlocal », Который мы определили в предыдущем файле.

cp /etc/bind/db.local /etc/bind/db.redlocal

Теперь мы редактируем этот файл конфигурации, который по умолчанию содержит много информации, и адаптируем его к нашим интересам.

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

Теперь перезапускаем процесс привязки следующей командой:

sudo service bind9 restart

У нас есть все готово, чтобы запустить серию тестов и проверить, все ли мы сделали правильно. Чтобы убедиться, что все работает, мы должны выполнить следующие команды:

Он покажет нам следующее, IP-адрес маршрутизатора:

То же самое можно сделать и с ПК1:

После того, как нам удалось правильно разрешить локальные домены, вернув соответствующий IP-адрес, мы можем без проблем пинговать через домен:

Теперь мы настроим обратное разрешение доменов.

Обратное разрешение домена

Теперь мы собираемся настроить DNS-сервер для разрешения доменов в обратном порядке, указав IP-адрес и сообщив, к какому домену принадлежит этот IP-адрес. Чтобы достичь нашей цели, мы должны добавить следующие строки в файл /etc/bind/ named.conf.local, который мы использовали ранее:

zone "192.in-addr.arpa" type master;
file "/etc/bind/db.192";
>;

Мы также должны скопировать файл конфигурации по умолчанию, чтобы отредактировать его. Из файла db.127 мы создаем db.192:

cp /etc/bind/db.127 /etc/bind/db.192

После того, как мы его создали, просто отредактируйте его, указав следующую информацию:

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

named-checkzone 192.168.231.130 /etc/bind/db.192

У нас должно получиться что-то вроде этого:

named-checkzone 168.192.in-addr.arpa db.192
zone 168.192.in-addr.arpa/IN: loaded serial 1
OK

Теперь перезапускаем процесс привязки следующей командой:

sudo service bind9 restart

И проверяем правильность работы:

Мы надеемся, что это полное руководство по привязке помогло вам настроить собственный DNS-сервер локально.

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