Меню Рубрики

Установка контроллера домена на centos

SAMBA как Domain Controller на CentOS 7

SAMBA достаточно давно уже может стать контроллером домена на предприятии и стабильно и нетребовательно выполнять свои задачи. Да, это уровень 2008R2 на сегодня. Но не везде и нужны серьёзные леса доменов с эксченджами и т.п. весьма дорогостоящими хотелками. Авторизовать пользователей, хранить о них информацию, играть групповыми политиками и скидывать по LDAP адресную книгу — это SAMBA умеет без проблем.

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

Чем Active Directory на SAMBA может быть полезен вам

  • нетребовательность к ресурсам. Действительно, достаточно минимальной VDS (ставили на одноядерниках с 512МБ памяти), простого нетбука (был и такой вариант: легко спрятать и долго работает от батареи) или старого системника для нормального функционирования сервиса;
  • скорость работы очень высокая;
  • удобно диагностировать, так как лог очень подробный;
  • простые и понятные команды. Это позволяет и автоматизировать ряд процессов (например, атоматическое добавление некоторых полей пользователям при создании учетных данных).

Установка SAMBA

Итак для начала рекомендую проработать вопрос с IP и DHCP. Сервера в начало сети и т.д. — тут уже на вкус и цвет.

Далее на свежей машинке прописываем корректное имя хоста

Если с SeLinux не знакомы близко, то пока можно отключить

Так же как и firewall. Его можно и в дальнейшем настроить.

Ставим нужные для компиляции пакеты

Теперь компилируем. Это увы, приходится делать, так как новая версия SAMBA не сразу появится в хранилищах этой ОС.

Смотрим сколько ядер и ставим -jколичество ядер+1. У меня их 16, поэтому -j17

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

Скопируем нужный конфиг, забэкапив старый

Теперь сформируем первый DC.

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

Сделаем файлик для systemd

Далее проверяем аутентификацию NT:

Теперь немного изменим smb.conf

Делаем линк на нужный конфиг кербероса

Пароль можно выставить бесконечно, хотя это и не очень хорошо

Управляем дальше с помощью samba-tool, RSAT если windows-машинка под рукой или с помощью тех же Active Directory Manager с планшета. Для Android могу порекомендовать ActiveDir Manager (в бесплатной версии не сохраняются настройки сервера).

источник

Vladimir Drach. Official Web-Site. — Личный сайт Владимира Драча

Самба 4: Установка контроллера домена на CentOS 7

Понедельник, 10 Апрель 2017 20:56

Начиная с версии 4.0, Самба может работать как контроллер домена (ДК) Active Directory (AD). В этой статье показано, как настроить Samba 4 в качестве контроллера домена с Windows 10 в CentOS 7 и CentOS 6.

Понадобится 3 операционные системы, первая сервер CentOS 7, вторая Windows 10 клиент для удаленного управления, и CentOS 7 (CentOS 6).

Статья является более углублённым материалом по сравнению с опубликованной ранее методикой.

192.168.1.190 Samba4 AD centos7 Пульт дистанционного управления 192.168.1.191 win 10 192.168.1.22 — клиент Аутентификация — CentOS 7 192.168.1.192 — Аутентификация клиента Samba 4 на CentOS 6

192.168.1.190 Samba4 AD centos7

Основой является система CentOS 7 с минимальной установкой и отключенным selinux.

Сделайте запись в /etc/hosts-файле.

Установите все пакеты, необходимые для компиляции базы Samba 4.

Теперь скачайте пакет Samba 4 . Я использую samba-4.6.0, которая является последней версией на момент загрузки.

Теперь установите Samba 4.

Установка займет около 10 минут в зависимости от скорости системы.

Теперь мы начнем подготавливать домен.

Во время подготовки домена могут возникнуть ошибки.

Чтобы исправить их, пожалуйста, закомментируйте строку ниже ,в файле /etc/krb5.conf.

Повторите запуск домена инициализации, теперь домен будет создан без ошибок.

Убедитесь, что порты в брандмауэре открыты.

Создайте сценарий автозапуска службы во время перезагрузки.

Добавление узла Windows к домену

Пульт дистанционного управления 192.168.1.191 win 10

Убедитесь, что хост добавлен статическим IP-адресом..

Добавление хоста к домену.

Для управления samba4 с помощью Windows, мы должны иметь установленные инструменты Microsoft Remote Server (RSAT)..

Установка инструментов RSAT в Windows 10

После перезагрузки перейдите к введению dsa.msc

Выберите домен my.domain и щелкните правой кнопкой мыши новый -> Пользователи.

Создание тестового пользователя.

Аутентификация клиента Samba 4 на CentOS 7

192.168.1.22 — клиент Аутентификация — CentOS 7

Проверьте соединение с Samba 4:

Проверьте, способны ли мы получить пользователя от samba4..

Получите пользователя без имени домена.

Читайте также:  Установка коробки выравнивания потенциалов

Аутентификация клиента с Samba 4 на CentOS 6

192.168.1.192 — Аутентификация клиента Samba 4 на CentOS 6.

Измените файл конфигурации Kerberos..

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

Убедитесь, что билет kerberos создан.

Изменение конфигурации SSSD , проверка подлинности..

источник

Samba 4 — доменный контроллер AD DC на CentOS 7

Samba 4 как доменный контроллер

Эта записка содержит инструкцию по установке Samba 4 на операционную систему CentOS 7 x64. Пакет Samba 4 поможет организовать аналог доменного контроллера Windows 2003/2008 на Linux системе. Описанная инструкция взята из официального HOWTO SAMBA4.

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

Немного про основные параметры главного файла /usr/local/samba/etc/smb.conf для файлового сервиса:

. Обычно такая настройка делается на файловом сервере Linux.

rfc2307 — эта функция добавляет POSIX атрибуты (UID / GID) на схему AD. Это понадобится при аутентификации клиентов Linux, BSD, or OS X (в том числе на локальной машине) в дополнение к Microsoft Windows. Например, у вас в локалке 10 машин с Windows XP, и тут на тебе, появилась машина с Mac OS X. С помощью ключа rfc2307 можно вводить в домен Mac OS X и Linux.

При использовании двух доменов(серверов), желательно создавать домен с backend — rfc2307 (https://wiki.samba.org/index.php/RFC2307_backend). При этом данные в отличии от idmap_rid, будут хранится не в специальном файле, а в базе LDAP. Вот цитата из официального сайта Samba:

RFC2307 определяет возможность хранить данные о пользователях и группах в каталоге LDAP. Это дает централизованное управление и несколько преимуществ.

Иногда теряется уникальность номеров некоторых учетных записей. Чтобы восстановить уникальность идентификаторов, применяется утилита ldbedit с ключом -H. Чтобы использовать rfc2307, в конфиге Samba укажите — >

Также к этим параметрам добавляют записи:

xattrs и acl — эти параметры включают расширенное использование атрибутов unix (ACLs) для файлов, размещенных на Linux машине (файловом или доменном контроллере). Файловые системы xfs и ext4 поддерживают эти параметры по умолчанию. Если вы не будете открывать доступ к файлам на Linux машине, пропустите эти аргументы. Вы также должны убедиться в том, что все иные файловые системы как ext3, к которым требуется открыть доступ через Samba, смонтированы с поддержкой ACL’s. Например, мы хотим чтобы общие папки Windows пользователей хранились в разделе /home, в этом случае монтирование пользовательского раздела должно содержать опции acl, user_xattr, вот пример —

DNS сервер — пакет Samba4 включает свой встроенный DNS сервер (опция —dns-backend=SAMBA_INTERNAL). По умолчанию используется этот сервер, но есть возможность задействовать внешний DNS сервер Bind через DLZ плагин (dlz — динамически загружаемая зона), при этом зона DNS AD будет хранится в файле с расширением .ldb, Bind через плагин DLZ читает и записывает данные в этот файл. Помимо ldb, можно хранить зоны в текстовых файлах Bind, например «myzone.fwd.local» (опция —dns-backend=BIND9_ FLATFILE).

КРАТКОЕ СОДЕРЖАНИЕ

1. Настройка сетевого адаптера и имения хоста (сервера)

2. Отключаем SELINUX, IPtables и Network Manager

4. Загрузка и установка Samba 4 из исходников

7. Редактируем юнит systemd для запуска Samba

10. Установка и настройка NTP

11. Выставляем права на каталоги Samba

12. Создание обратной зоны DNS

13. Разные проверки правильности работы Samba4

14. Меняем срок жизни учетных записей до 999 дней

15. Ставим правильное время

16. Дополнительные проверки

17. Управление контроллером — утилита RSAT

19. Образ жесткого диска и конфигурационные файлы тестовой системы


Исходные данные:

Имя хост машины — companypdc

ip-адрес сервера — 10.168.50.2

1. Настройка сетевого адаптера и имени хоста сервера

Правильная настройка сетевых интерфейсов — залог успешной работы сервера с другими компьютерами локальной сети.

Открываем файл сетевого адаптера, чтобы внести туда наш статический IP адрес и другие реквизиты — DNS, Gateway(шлюз) и т.д.

HWADDR=08:00:27:04:5A:BD # его аппаратный MAC адрес

TYPE=Ethernet # тип Ethernet

ONBOOT=yes # включение адаптера при загрузке ОС

NM_CONTROLLED=no # адаптер не контролируется службой Network Manager — иногда нужно включать

BOOTPROTO=static # признак статического IP адреса

Читайте также:  Установка видеокамер в кабинетах школы

IPADDR=10.168.50.2 # IP-адрес контроллера домена

NETMASK=255.255.255.0 # сетевая маска

GATEWAY=10.168.50.1 # адрес роутера — выход в Интернет

DNS1=8.8.8.8 # Google public DNS

Также требуется прописать сетевое имя машины (Netbios), данное имя не должно быть больше 15 символов и содержать спец символы:

# hostnamectl set-hostname companypdc.company.ru

Static hostname: companypdc.company.ru

Machine ID: c9892a1c02bc436a8c14ab9d9a72ccdd

Boot ID: c81ef8e2e003499b8cebb1861e1d9f89

Operating System: CentOS Linux 7 (Core)

CPE OS Name: cpe:/o:centos:centos:7

Kernel: Linux 3.10.0-229.el7.x86_64

Добавим основные хосты в файл /etc/hosts

Добавляем три строчки, чтобы наш доменный контроллер корректно работал с именами хостов:

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

#10.168.50.5 filesrv.company.ru filesrv

10.168.50.2 companypdc.company.ru companypdc

#10.168.50.3 sdc.company.ru sdc

Жирным шрифтом помечены мои изменения в этом файле.

Не помешает отключить IPv6 и иногда включить сеть:

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

# systemctl restart network

2. Отключаем SELinux, IPtables и NetworkManager

SELinux (SELinux) — это система принудительного контроля доступа, реализованная на уровне ядра. Даже работая под администратором, система контроля доступа на основе базовых политик, запрещает работу многих свеже установленных программ, в нашем случае это Samba4. То есть новая поставленная программа, например, не может изменять, создавать свои файлы, а также манипулировать настройками системы. Этот дополнительный барьер безопасности, который защищает настройки системы и данные от неряшливого пользователя и непонятных программ. Не зря ее придумали в АНБ 🙂

  1. Отключить систему дополнительной защиты
  2. Настроить Selinux для работы с новыми программами

Я отключу Selinux, так как это самый простой способ, чтобы новые установленные программы заработали сразу. Настройка этой системы для работы с Samba4 — это отдельная тема для разговора.

Применяем настройки без перезагрузки компьютера:

IPTables — это утилита командной строки, которая является стандартным интерфейсом управления работой межсетевого экрана (брандмауэра) встроенного в ядро Linux. Мой доменный контроллер не имеет прямого доступа в интернет, он уже находится за брандмауэром. Поэтому был отключен сетевой экран, хотя вы можете его настроить, также как и SELinux. В новой операционной системе CentOS 7, IPTables была заменена на утилиту FirewallD, которая предоставляет функционал динамически управляемого брандмауэра с поддержкой сетевых зон, призванных определить уровень доверия для сетевого соединения или интерфейса. Многие отключают и удаляют FirewallD, и вместо него ставят уже привычный IPTables, так как функционал FirewallD пока еще не умеет многого. Для тестового запуска Samba4, не нужен IPTables или FirewallD, поэтому отключаем сетевой экран.

Выключаем автозагрузку демона во время загрузки ОС:

# systemctl disable firewalld

Еще, стоит отключить Network Manager, эта служба облегчает настраивать сетевые адаптеры на пользовательском компьютере, может автоматически создавать подключение к разным сетям. И иногда, даже на сервере от нее есть толк. В нашем случае она бесполезна, сервер Samba не нуждается в экзотической настройке подключения к какому либо провайдеру, он скрыт в локальной сети. Поэтому давайте отключим NM — она лишняя.

Проверяем работает ли Network Manager:

# systemctl —type=service | grep NetworkManager

NetworkManager.service loaded active running Network Manager

# systemctl disable NetworkManager

# systemctl stop NetworkManager

3. Установка зависимостей

Для правильной работы Samba4, нужны вспомогательные программы, установим зависимости:

# yum install gcc make wget python-devel gnutls-devel openssl-devel libacl-devel krb5-server krb5-libs krb5-workstation bind bind-libs bind-utils perl openldap-devel python-dns -y

4. Загрузка и установка Samba 4 из исходников

Загрузим архивный файл с последней версией Samba4:

На ftp сервере http://ftp.samba.org/pub/samba/ постоянно появляются новые версии, проверяйте наличие новой версии, прежде чем устанавливать Samba4.

И выполним команду для настройки перед компиляцией исходников Samba4:

# ./configure —enable-selftest —with-systemd

Здесь параметр —enable-selftest позволяет запустить тестирование после создания готовой Samba4 (бинарников). Скрипт configure имеет развернутую справку, которую можно вызвать так:

Из справки можно узнать какие функции по умолчанию включены и какие отключены. Возле каждой возможности указано (YES) или (NO).

Например: —with-ads (YES) —with-systemd (NO) —with-winbind (YES)

После выполнения конфигурирования, на экране должна должна появиться строка о успешности выполнения операции:

‘configure’ finished successfully (1m20.718s)

Скрипт «configure» подготавливает исходники для компиляции. Настраивает их, пытаясь правильно выставить значения для различных переменных, меняющихся от системы к системе и используемых в процессе компиляции. Он поменяет переменные в исходниках, также вы можете немного подкорректировать configure, запуская его с дополнительными опциями, как было показано на верху. Скрипт не определил что наша ОС с systemd, и не включил возможность работы с systemd в исходниках. Поэтому я в ручную включил опцию для работы Samba4 с systemd. В конце команда configure также выводит суммарную сводку о включенных и выключенных дополнительных опциях, включая причины почему опция была выключена. После как configure отработал, внутри исходников поменяются переменные и они будут готовы к компиляции и установке.

Читайте также:  Установка дгу по пуэ

А теперь можно запустить компиляцию и установку Samba4 командой:

Процесс компиляции и установки занимает много времени. У меня это 20 минут.

Добавляем каталог Samba4 в Path, чтобы запускать утилиты samba без указания пути /usr/local/samba/bin/

# echo ‘pathmunge /usr/local/samba/bin/’ > /etc/profile.d/custompath.sh

# chmod +x /etc/profile.d/custompath.sh

5. Создание нового домена

# /usr/local/samba/bin/samba-tool domain provision —realm=company.ru —domain=COMPANY —adminpass ‘MyPassword123’ —server-role=dc —dns-backend=BIND9_DLZ —use-rfc2307 —use-ntvfs —use-xattrs=yes

Разберем команду более подробно:

/usr/local/samba/bin/samba-tool domain provision — собственно команда для создания доменного контроллера, в Windows Server есть аналогичная команда — dcpromo.

—realm=company.ru — полное название имя домена (FQDN)

—domain=COMPANY — короткое название домена большими буквами

—server-role=dc — роль DC — контроллер домена

-host-ip=10.168.50.2 — привязка к указанному IP адресу, если вас два адаптера, указываете на каком интерфейсе работать Samba

—adminpass ‘MyPassword123’ — указываете пароль для учетной записи доменного администратора «Administrator»

—dns-backend=BIND9_DLZ — указываем использовать внешний DNS сервер Bind через плагин DLZ

—use-rfc2307 — указываем хранить дополнительные POSIX атрибуты в LDAP каталоге

—use-ntvfs — указываем использовать файловый сервис NTVFS, по умолчанию в Samba4 включен именно он. Также вы можете указать файловый сервис от Samba3 — s3fs.

—use-xattrs=yes — включает расширенные атрибуты unix (acls)

6. Настройка DDNS сервера

По умолчанию named (Bind) запускается во время загрузки ОС через юнит systemd. С этого юнита можно управлять локально запуском и остановом службы named. Однако когда named уже запущен, может появиться необходимость перезапустить его по каким-либо другим причинам, в том числе и для того, чтобы сервер имен проверил наличие обновлений в файлах зон. Для этих целей пакет BIND включает в себя инструмент удаленного управления сервером имен (Remote Name Daemon Control), он же rndc. То есть, RNDC — позволяет управлять Bind’ом на горячую, без перезапуска службы DNS — задавать нужные настройки.

Утилита rndc-confgen настраивает rndc генерируя конфигурационный файл для управления named.

# rndc-confgen -a -r /dev/urandom

После настройки rndc, нужно настроит конфигурационный файл named (Bind):

listen-on port 53 < 10.0.10.10; 10.168.50.2; 127.0.0.1; >; # Bind слушает порт 53 на всех сетевых интерфейсах

# listen-on-v6 port 53 < ::1; >; # Отключаем слушать IPv6

forwarders <8.8.4.4; >; # Включаем пересылку запросов, в случаем если наш DNS сервера не знает что делать на Google public DNS server

notify no; # отключаем посылку сообщения о обновлении зоны

allow-query < 10.168.50.0/24; 127.0.0.0/8; >; # Добавляем хосты и сети, которым разрешено использовать DNS сервер

allow-recursion < 10.168.50.0/24; 127.0.0.0/8; >; # Добавляем хосты и сети, которым разрешено использовать кому разрешено выполнять рекурсивные запросы

allow-update < 10.168.50.0/24; 127.0.0.0/8; >; # Добавляем хосты и сети, от которых можно динамически обновлять зону

version none; # Скрываем версию Bind

hostname none; # Скрываем имя хоста

server-id none; # Скрываем идентификатор сервера

dnssec-enable no; # Отключаем DNSSEC, чтобы заработал FORWARDING — пересылка запросов

dnssec-validation no; # Отключаем проверку по DNSSEC

tkey-gssapi-keytab «/usr/local/samba/private/dns.keytab»; # Динамическое обновление зоны, компьютеры автоматически добавляются в прямую зону

tkey-domain «company.ru»;

# Ключ можно взять из файл /etc/rndc.key в поле secret «key»

include «/usr/local/samba/private/named.conf»; # Добавляем плагин DLZ чтобы Samba работала с Bind

Вот полный файл named.conf:

forwarders <8.8.4.4; >; # Включаем пересылку запросов, в случаем если наш DNS сервера не знает что делать на Google public DNS server

notify no; # отключаем посылку сообщения о обновлении зоны

allow-query < 10.168.50.0/24; 127.0.0.0/8; 10.0.10.0/24; >; # Добавляем хосты и сети, которым разрешено использовать DNS сервер

allow-recursion < 10.168.50.0/24; 127.0.0.0/8; 10.0.10.0/24; >; # Добавляем хосты и сети, которым разрешено использовать кому разрешено выполнять рекурсивные запросы

allow-update < 10.168.50.0/24; 127.0.0.0/8; 10.0.10.0/24; >; # Добавляем хосты и сети, от которых можно динамически обновлять зону

version none; # Скрываем версию Bind

hostname none; # Скрываем имя хоста

server-id none; # Скрываем идентификатор сервера

источник

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

Adblock
detector