Tag archives: samba

4: Распространение открытого сертификата ЦС

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

Чтобы импортировать общедоступный сертификат ЦС во вторую систему Linux (например, на другой сервер или локальный компьютер), сначала получите копию файла ca.crt с вашего сервера ЦС. Вы можете использовать команду cat, чтобы вывести файл в терминал, а затем скопировать и вставить его в файл на втором компьютере (на который нужно импортировать сертификат). Также для передачи файла между системами вы можете использовать такие инструменты, как scp, rsync. Мы скопируем и вставим сертификат с помощью nano, поскольку это будет работать во всех системах.

Выполните следующую команду на сервере ЦС:

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

Скопируйте всё, включая строки —–BEGIN CERTIFICATE—– и —–END CERTIFICATE—–.

На второй машине Linux откройте файл /tmp/ca.crt:

Вставьте строки, которые вы только что скопировали с сервера ЦС, в этот файл. Когда вы закончите, сохраните и закройте файл.

Теперь, когда у вас есть копия файла ca.crt во второй системе Linux, пора импортировать сертификат в хранилище сертификатов данной операционной системы.

В системах CentOS, Fedora и RedHat для импорта сертификата выполните следующие команды:

Чтобы импортировать сертификат в системы на основе Debian or Ubuntu, скопируйте содержимое сертификата в /tmp/ca.crt, затем скопируйте сертификат в /usr/local/share/ca-certificates/ и запустите команду update-ca-trust.

Теперь вторая ваша система Linux будет доверять сертификатам, подписанным вашим ЦС.

Если вы используете свой ЦС для интеграции со средой Windows или настольными компьютерами, ознакомьтесь с .

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

Добавляем сервер к домену через realm

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

Итак, отключаем firewall и SELinux, если не сделали это раньше. Если не хотите отключать, то настройте сами. Данная настройка выходит за рамки статьи.

# mcedit /etc/sysconfig/selinux

меняем значение

SELINUX=disabled

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

setenforce 0

Выключаем firewalld.

# systemctl stop firewalld
# systemctl disable firewalld
Информационная таблица
xs.local название домена
10.1.3.4 ip адрес контроллера домена
xs-winsrv.xs.local полное имя контроллера домена
xs-design имя сервера centos, который вводим в домен
admin51 учетная запись администратора домена

Перед дальнейшей настройкой, убедитесь, что с вашего сервера centos вы без проблем пингуете и резолвите контроллер домена по полному имени. Если есть какие-то проблемы, исправьте это либо указанием нужного dns сервера, либо правкой файла hosts.

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

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

Устанавливаем утилиту для синхронизации времени chrony:

# yum install chrony

Добавляем в конфиг /etc/chrony.conf адрес контроллера домена. И делаем его единственным сервером для синхронизации, остальные удаляем.

server xs-winsrv.xs.local iburst

Сохраняем конфиг, запускаем chrony и добавляем в автозагрузку.

# systemctl start chronyd && systemctl enable chronyd

Проверим, что с синхронизацией.

Устанавливаем софт, который понадобится для дальнейшей работы.

# yum install realmd sssd sssd-libwbclient oddjob oddjob-mkhomedir adcli samba-common samba-common-tools

Делаем проверку перед вводом в домен.

# realm discover XS.LOCAL
xs.local
 type: kerberos
 realm-name: XS.LOCAL
 domain-name: xs.local
 configured: no
 server-software: active-directory
 client-software: sssd
 required-package: oddjob
 required-package: oddjob-mkhomedir
 required-package: sssd
 required-package: adcli
 required-package: samba-common-tools

Заводим в домен.

# realm join -U admin51 XS.LOCAL
Password for admin51:

Если не получили никакой ошибки, значит все прошло нормально. Можно зайти на контроллер домена и проверить, появился ли наш linux сервер в домене.

Проверьте на самом сервере, что он нормально обращается к домену и получает информацию об учетных записях. Показываю на примере доменной учетной записи control.

# id [email protected]
uid=185001305([email protected]) gid=185000513(пользователи домена@xs.local) groups=185000513(пользователи домена@xs.local),185001329([email protected]),185001651([email protected]),185001327([email protected])

Еще несколько проверок.

# realm list
# adcli info xs.local

Сервер завели в домен. Приступаем к основному — настройке samba с интеграцией в AD.

Настройка пользовательских компьютеров

На пользовательском компьютере использовать команду:

pam-auth-update

И убедиться, что включены все профили PAM. При необходимости — включить аутентификацию winbind, используя клавишу «пробел». По окончании нажать клавишу «Tab», перейти на «ОК», и записать изменения.

В файле  /etc/nsswitch.conf добавить слово winbind параметры password и group:

Чтобы пользователи AD после аутентификации могли менять свой пароль из командной строкив файле /etc/pam.d/common-password из строки убрать слово 

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

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

  • Для всех организаций, за исключением самых маленьких, наличие более, чем одного DC, является реально хорошим способом резервирования, повышающим безопасность обновлений;
  • Отсутствие сложных данных и влияния на другие сервисы позволяет обновлять DC совместно с ОС хоста каждые год или два;
  • Обновления могут выполняться путем установки новых версий, или внесения изменений, которые лучше проверены в Samba, что позволяет получить новые возможности, избежав множества рисков, связанных с повреждением данных;
  • Необходимость модернизации DC и файлового сервера наступает в разные моменты. Потребность в новых возможностях DC и файлового сервера возникает в разные моментв времени. В то время, как AD DC стремительно развивается, приобретая новые возможности, файловый сервер, после более 20 лет, гораздо более консервативен;
  • mandatory smb signing is enforced on the DC.

Если вы изучаете возможность использовать Samba DC как файловый сервер, рассмотрите вместо этого возможность использовать на DC виртуальную машину VM, содержащую отдельного участника домена.

Если вы вынуждены использовать Samba DC как файловый сервер, помните, что виртуальная файловая система (virtual file system, VFS) позволяет настраивать разделяемые ресурсы только со списками управления доступом access (control lists, ACL) Windows.Разделяемые ресурсы с ACL POSIX на Samba DC не поддерживаются, и не работают.

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

Подробности см.:

Подготовка к инсталляции

  • Выберите имя хоста для вашего AD DC. Не рекомендуется использовать в качестве имен хостов такие идентификаторы, как PDC или BDC, унаследованные от NT4 . Эти сущности отсутствуют в AD, и такие названия вызывают путаницу;
  • Выберите DNS-имя для вашего доменного леса AD. Это имя также будет использовано как имя области (realm) Kerberos AD ;

    Назначьте хосту полное доменное имя (FQDN), например dc2.samdom.example.com:

    sudo hostnamectl set-hostname dc2.samdom.example.com

  • Отключите инструменты (например, resolvconf), которые автоматически обновляют файл настроек DNS /etc/resolv.conf.AD DC и члены домена обязаны использовать сервер DNS, способный разрешать зоны DNS AD . Если в сети нет других серверов DNS, то файл /etc/resolv.conf должен указывать адрес самого сервера:

  • Убедитесь, что файл /etc/hosts на DC корректно разрешает полное доменное имя (fully-qualified domain name, FQDN) и короткое имя хоста DC во внешний сетевой IP-адрес DC. Например: 

    Имя хоста не должно разрешаться в IP-адрес 127.0.0.1 или в любой другой IP-адрес, кроме используемого на внешнем сетевом интерфейсе DC.Для проверки правильности настроек можно использовать команду:

    host `hostname`

Проверка работы и отладка

# ln -s /var/log/samba /etc/samba/log

Запускаем samba и winbind:

# /etc/init.d/samba start
# /etc/init.d/winbind start

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

# wbinfo -u
# wbinfo -g

Если нас не понимают, то подсказываем пароль для wbinfo и смотрим: список доменов в сети, информацию о домене WORKGROUP, список пользователей и групп домена:

# wbinfo --set-auth-user=root%root_password
# wbinfo --all-domains
# wbinfo -D WORKGROUP
# wbinfo -t

Проверяем, как работает NSS. Команда getent показывает инфо о пользователе, который может быть как в домене, так и юниксовый:

# getent passwd | grep pm
pm:x:15000:15000::/home/WORKGROUP/pm:/bin/false

# getent passwd | grep pavel
pavel:x:500:500:Pavel Malahov:/home/pavel:/bin/bash

Теперь можно использовать ресурсы на линукс-сервере, на которые мы дали доступ, как обычные доменные ресурсы.

Включение Samba-сервера на базе Ubuntu в домен AD при помощи графического интерфейса и SADMS.

Возможно, скажем в домашних условиях или в спешке, вам захочется произвести все эти манипуляции в графическом режиме. Для этих целей существует пакет SADMS, о котором  есть информация на сайте Ubuntu: https://help.ubuntu.com/community/ActiveDirectoryWinbind-SADMS .

А на сайте http://sadms.sourceforge.net/   можно узнать все об этом пакете и скачать его. Посмотрим на интерфайс пакета:

Рис. 1. Общий вид главной вкладки.

Здесь отображаются статусы winbind, smb и nmb, и присутствует индикация подключения компьютера к домену.

Рис. 2. Запуск smb и nmb.

Рис. 3.Вкладка «Данные».

Здесь мы должны указать данные, которые будут использоваться для подключения к домену. По умолчанию поля заполнены разработчиками, для примера. Разработчики пакета — французы, так что пусть вас не смущают примеры вроде «administrateur» вместо привычного «Administrator».

Рис. 4. Автоматический захват части параметров.

Щелкаем по «Определить» — и часть параметров подхватывается автоматически. Остальные придется заполнять вручную. Все эти параметры использовались при настройке из командной строки.

Рис. 5. Заполнение остальных полей.

Заполняем поля

Здесь обратите особое внимание: Netbios имя домена должно быть прописано БОЛЬШИМИ буквами, иначе получим ошибку Kerberos, как вышло в данном случае. Если все заполнено правильно, щелкаем по «Установить» — и SADMS включает машину в домен

Рис. 7. Меню «Проверки».

Из меню «Проверки» мы можем выполнить тесты на выполнение различных операций. Также можно провести все тесты из командной строки, как это описывалось ранее.

Рис. 8. Пример выводатеста на членство в домене.

Рис. 9. Результаты теста сети.

Рис. 10. Проверка наличия машинына контролере домена.

Сервер находится в списке доменных машин вместе с другими нашими серверами.

Итак, мы рассмотрели установку Samba и включение ее в домен — с использованием как командной строки, так и графического интерфейса. Использование графического интерфейса позволяет серьезно ускорить и упростить настройку, но вместе с тем не позволяет понять всю механику процесса, а также может серьезно затруднить процесс поиска ошибки. С другой стороны, CLI (Command Line Interface), хоть и предоставляет абсолютный контроль над всем, гораздо менее дружелюбен к пользователю и подразумевает у него наличие некоторых навыков работы. Какой способ использовать — решать вам.

Работа над ошибками

Winbind не запускается

При запуске Samba обнаруживаем, что winbind не запустился:

# /etc/init.d/winbind status
 * winbind is not running

В журнале log.winbindd обнаруживаем запись:

[2010/03/06 13:54:34,  2] winbindd/winbindd_util.c:235(add_trusted_domain)
  Added domain BUILTIN  S-1-5-32
[2010/03/06 13:54:34,  2] winbindd/winbindd_util.c:235(add_trusted_domain)
  Added domain STORAGE  S-1-5-21-3963871611-1338977097-196861091
[2010/03/06 13:54:34,  0] winbindd/winbindd_util.c:782(init_domain_list)
  Could not fetch our SID - did we join?
[2010/03/06 13:54:34,  0] winbindd/winbindd.c:1385(main)
  unable to initialize domain list

Видим, что добавлен «встроенный домен» (BUILTIN) и домен «название компьютера» (STORAGE), подключиться к домену AD не удалось.

Решение: Переподключить компьютер в домен. Удалять придётся с самого контроллера, т.к. комадна net ads leave скорее всего не поможет.

Ошибка получения билета Kerberos

При попытке получить билет Kerberos получили:

kinit: KDC reply did not match expectations while getting initial credentials

Решение: указать имя домена в другом регистре. Скорее всего нужны все заглавные

Доступ к Samba из Windows 7 и 2008 r2

Начиная с этих версий параметры авторизации у MS поменялись. Скорее всего Samba вскоре это учтёт, а пока подружить системы можно изменив на Win7 свойства сетевой безопасности:

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

  • Сетевая безопасность: минимальная сеансовая безопасность для клиентов на базе NTLM SSP — убрать галочку с «Требовать 128-битное шифрование». Таких параметра два — выполнить для обоих
  • Сетевая безопасность: уровень проверки подлинности LAN Manager — выбрать в списке пункт «Отправлять LM- и NTML-ответы»

Настройка синхронизации времени.

Следующий шаг — настройка синхронизации по времени с контролером домена

Очень важно не забыть про этот момент, так как если расхождение по времени составит более пяти минут, мы не сможем получить тикет от Kerberos

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

ntpdate ntp.mobatime.ru

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

sudo apt-get install ntp

Теперь необходимо внести правки в файл /etc/ntp.conf, добавив в него информацию о сервере времени:

# You do need to talk to an NTP server or two (or three).
server lab-dc1.lab.local

После чего нужно перезапустить демон ntpd:

sudo /etc/init.d/ntp restart

Полезные комманды

$ smbclient -N -L 10.0.0.117 показывает ресурсы компьютера с адресом 10.0.0.117
$ smbclient //10.0.0.117/common Вход в расшаренную директорию. Пользователь unix от которого выполняется команда должен быть зарегистрирован в домене.
# net ads join -U pavel -d 3 Добавить в домен пользователя pavel
# winbindd -d 3 -i Режим отладки (-d), winbindd запускается не как демон (-i)
# wbinfo -a mydomain\\myuser%mypasswd авторизируемся в домене (через winbindd, wbinfo входит в этот пакет)
# ldapsearch запросы к LDAP серверу, в нашем случае к MS Active Directory
# tdbdump /etc/samba/secrets.tdb просмотреть содержимое файла *.tdb

Настройка прав доступа на файлы в Samba

Сделаю небольшое пояснение по правам доступа в файловом сервере samba. Вопрос этот сложный и объемный. Ему можно посвятить и отдельную статью. Но для полноты картины по настройке самбы, расскажу самое основное.

Как я уже ранее сказал, изменять права доступа к каталогам на файловом сервере можно с помощью команды setfacl. Давайте сейчас посмотрим на права доступа, которые установлены:

# getfacl /mnt/samba

# file: mnt/shara
# owner: admin51
# group: пользователи\040домена
user::rwx
group::r-x
other::---

С такими правами что-то создавать в папке сможет только пользователь admin51, а пользователи домена смогут только просматривать файлы и каталоги. Сделаем более прикладной вариант. Добавим права доступа на чтение и запись еще одной доменной группе — gr_it.

# setfacl -m g:gr_it:rwx /mnt/shara

Обращаю внимание, что иногда при копировании команд setfacl они не отрабатывают, выдавая не очень понятную ошибку:

setfacl: Option -m: Invalid argument near character 1

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

Смотрим, что получилось:

# getfacl /mnt/shara

# file: mnt/shara
# owner: admin51
# group: пользователи\040домена
user::rwx
group::r-x
group:gr_it:rwx
mask::rwx
other::---

То, что надо. Теперь пользователи группы gr_it имеют полные права на шару. Создадим одним таким пользователем папку test1 на нашей шаре и посмотрим, какие права она получит.

# getfacl /mnt/shara/test1

# file: mnt/shara/test1
# owner: user1
# group: пользователи\040домена
user::rwx
group::---
other::---

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

# setfacl -m d:g:gr_it:rwx,d:g:'пользователи домена':rx /mnt/shara

Смотрим, что получилось:

# getfacl /mnt/shara

# file: mnt/shara
# owner: admin51
# group: пользователи\040домена
user::rwx
group::r-x
group:gr_it:rwx
mask::rwx
other::---
default:user::rwx
default:group::r-x
default:group:пользователи\040домена:r-x
default:group:gr_it:rwx
default:mask::rwx
default:other::---

Создадим теперь тем же пользователем еще одну папку test2 и проверим ее права.

# getfacl /mnt/shara/test2

# file: mnt/shara/test2
# owner: user
# group: пользователи\040домена
user::rwx
group::---
group:пользователи\040домена:r-x
group:gr_it:rwx
mask::rwx
other::---
default:user::rwx
default:group::r-x
default:group:пользователи\040домена:r-x
default:group:gr_it:rwx
default:mask::rwx
default:other::---

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

Для удобной и корректной работы с правами доступа я обычно для крупных, корневых директорий выставляю права аккуратно через setfacl в консоли. Какие-то мелкие изменения по пользователям и группам в более низших иерархиях директорий делаю через windows acl с какой-нибудь виндовой машины.

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

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

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

Завершающие команды

После успешного выполнения команды Назначения:

# Разрешить автоматический запуск службы контроллера домена:sudo systemctl unmask samba-ad-dcsudo systemctl enable samba-ad-dc

# Скопировать автоматически созданную конфигурацию службы Kerberossudo cp -b /var/lib/samba/private/krb5.conf /etc/krb5.conf

# Запустить доменную службу Samba sudo systemctl start samba-ad-dc

Проверка результатов Назначения

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

Создание реверсивных зон

С помощью команды samba-tool dns zonecreate можно добавить необязательную зону реверсивного поиска:

samba-tool dns zonecreate samdom.example.com 2.0.10.in-addr.arpa -U Administrator

Password for :Zone 2.0.10.in-addr.arpa created successfully

Если требуется использовать несколько реверсивных зон, просто выполните команду несколько раз с указанием параметров соответствующих подсетей.Изменение реверсивных зон не требует перезапуска сервисов Samba или BIND.

LDAP

Для проверки доступности и работоспособности службы LDAP можно запросить отчет о репликации:

sudo samba-tool drs showrepl

Default-First-Site-Name\DC2
DSA Options: 0x00000001
DSA object GUID: 303f45ca-3a45-4169-ad71-0903ac3e7ab9
DSA invocationId: 4750cc0a-ba23-4492-a1cd-3c66f5b3b073

==== INBOUND NEIGHBORS ====

CN=Configuration,DC=samdom,DC=example,dc=com
        Default-First-Site-Name\DC1 via RPC
                DSA object GUID: ce07ab44-222f-4882-b4f5-ed382f6b2047
                Last attempt @ Fri Dec  6 10:27:20 2019 MSK was successful
                0 consecutive failure(s).
                Last success @ Fri Dec  6 10:27:20 2019 MSK

DC=samdom,DC=example,dc=com
        Default-First-Site-Name\DC1 via RPC
                DSA object GUID: ce07ab44-222f-4882-b4f5-ed382f6b2047
                Last attempt @ Fri Dec  6 10:27:20 2019 MSK was successful
                0 consecutive failure(s).
                Last success @ Fri Dec  6 10:27:20 2019 MSK

DC=DomainDnsZones,DC=samdom,DC=example,dc=com
        Default-First-Site-Name\DC1 via RPC
                DSA object GUID: ce07ab44-222f-4882-b4f5-ed382f6b2047
                Last attempt @ Fri Dec  6 10:27:20 2019 MSK was successful
                0 consecutive failure(s).
                Last success @ Fri Dec  6 10:27:20 2019 MSK

CN=Schema,CN=Configuration,DC=samdom,DC=example,dc=com
        Default-First-Site-Name\DC1 via RPC
                DSA object GUID: ce07ab44-222f-4882-b4f5-ed382f6b2047
                Last attempt @ Fri Dec  6 10:27:20 2019 MSK was successful
                0 consecutive failure(s).
                Last success @ Fri Dec  6 10:27:20 2019 MSK

DC=ForestDnsZones,DC=samdom,DC=example,dc=com
        Default-First-Site-Name\DC1 via RPC
                DSA object GUID: ce07ab44-222f-4882-b4f5-ed382f6b2047
                Last attempt @ Fri Dec  6 10:27:20 2019 MSK was successful
                0 consecutive failure(s).
                Last success @ Fri Dec  6 10:27:20 2019 MSK

==== OUTBOUND NEIGHBORS ====

CN=Configuration,DC=samdom,DC=example,dc=com
        Default-First-Site-Name\DC1 via RPC
                DSA object GUID: ce07ab44-222f-4882-b4f5-ed382f6b2047
                Last attempt @ Fri Dec  6 08:27:31 2019 MSK was successful
                0 consecutive failure(s).
                Last success @ Fri Dec  6 08:27:31 2019 MSK

DC=samdom,DC=example,dc=com
        Default-First-Site-Name\DC1 via RPC
                DSA object GUID: ce07ab44-222f-4882-b4f5-ed382f6b2047
                Last attempt @ Thu Dec  5 17:24:10 2019 MSK was successful
                0 consecutive failure(s).
                Last success @ Thu Dec  5 17:24:10 2019 MSK

DC=DomainDnsZones,DC=samdom,DC=example,dc=com
        Default-First-Site-Name\DC1 via RPC
                DSA object GUID: ce07ab44-222f-4882-b4f5-ed382f6b2047
                Last attempt @ Thu Dec  5 17:24:10 2019 MSK was successful
                0 consecutive failure(s).
                Last success @ Thu Dec  5 17:24:10 2019 MSK

CN=Schema,CN=Configuration,DC=samdom,DC=example,dc=com
        Default-First-Site-Name\DC1 via RPC
                DSA object GUID: ce07ab44-222f-4882-b4f5-ed382f6b2047
                Last attempt @ Thu Dec  5 17:24:10 2019 MSK was successful
                0 consecutive failure(s).
                Last success @ Thu Dec  5 17:24:10 2019 MSK

DC=ForestDnsZones,DC=samdom,DC=example,dc=com
        Default-First-Site-Name\DC1 via RPC
                DSA object GUID: ce07ab44-222f-4882-b4f5-ed382f6b2047
                Last attempt @ Thu Dec  5 17:24:10 2019 MSK was successful
                0 consecutive failure(s).
                Last success @ Thu Dec  5 17:24:10 2019 MSK

==== KCC CONNECTION OBJECTS ====

Connection --
        Connection name: 49744c99-ca35-4811-af8f-73119e8b31f5
        Enabled        : TRUE
        Server DNS name : DC1.windomain.le
        Server DN name  : CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samdom,DC=example,dc=com
                TransportType: RPC
                options: 0x00000001
Warning: No NC replicated for Connection!

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

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

Kerberos

При работе в домене AD, Kerberos используется для аутентификации пользователей, хостов, и сервисов.

Процедуры установки и настройки клиентов Kerberos см. Kerberos

Во время процедуры назначения Samba автоматическм создает конфигурационный файл /var/lib/samba/private/krb5.conf для клиентов Kerberos, настроенный на создаваемый DC.

В автоматически создаваемом файле конфигурации Kerberos для поиска доменного контроллера Kerberos (KDC) используются  сервисные записи (SRV). Для того, чтобы такая конфигурация работала корректно, в домене должна быть правильно настроена и работать служба, в том числе созданы файлы зон, в которых размещены соответствующие сервисные записи  (см. статью DNS-сервер BIND9).

Тестирование файлового сервера

Во время назначения автоматически создаются разделяемые ресурсы netlogon и sysvol, и они обязательно должны существовать в DC. Чтобы увидеть все  разделяемые файловые ресурсы, предоставляемые DC:

smbclient -L localhost -U%

Нажмите, чтобы развернуть

Domain= OS= Server=

Sharename Type Comment——— —- ——-netlogon Disk sysvol Disk IPC$ IPC IPC Service (Samba x.y.z)Domain= OS= Server=

Server Comment——— ——-

Workgroup Master——— ——-

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

smbclient //localhost/netlogon -UAdministrator -c ‘ls’

Enter Administrator’s password: Domain= OS= Server=. D 0 Tue Nov 1 08:40:00 2016.. D 0 Tue Nov 1 08:40:00 2016

49386 blocks of size 524288. 42093 blocks available

Инструменты командной строки

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

Основные команды иструмента:

Команда Описание

dbcheck

Проверка локальной базы данных AD на наличие ошибок
delegation Управление делегированием
dns Управление параметрами доменной службы DNS
domain Управление параметрами домена
drs Управление службой репликации каталогов (Directory Replication Services, DRS)
dsacl Управление списками контроля доступа DS
fsmo Управление ролями (Flexible Single Master Operations, FSMO)
gpo Управление групповыми политиками
group Управление группами
ldapcmp Сравнение двух баз данных ldap
ntacl Управление списками контроля доступа ACL
processes Вывод списвка процессов (для упрощения отладки без использования setproctitle).
rodc Управление контроллером домена (Read-Only Domain Controller, RODC)
sites Управление сайтами
spn Управление службой принципалов (Service Principal Name, SPN)
testparm Проверка конфигурационного файла на корректность синтаксиса
time Получение показаний текущего времени сервера
user Управление пользователями
visualize Графическое представление состояния сети Samba

Подробная информация об инструменте доступна в справочнике man:

man samba-tool

Краткую справку по работе инструмента можно получить командой

samba-tool -h 

Разрешение имён для клиентских машин

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

Если в домене используются клиентские машины, получающие динамические IP-адреса от сервера DHCP, сервер DNS может быть настроен на автоматическое получение информации о выданных адресах. Примерный порядок настройки см. в статье Динамическое обновление DNS клиентских машин FreeIPA;

Если в домене используются клиентские машины, которым присваиваются статические адреса, то:

  1. Можно использовать для присвоения этих статических адресов сервер DHCP с динамическим обновлением адресов;

Заключение

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

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

Если у вас есть возможность настроить файловый сервер на windows, либо обойтись линуксом без домена, то сделайте так. Существенно упростите настройку и дальнейшую эксплуатацию. Данную статью еще можно дополнить некоторыми моментами, которые я рассказал ранее, а что не рассказал, постараюсь раскрыть позже и добавить сюда ссылки на статьи:

  1. Подробное логирование всех действий с файлами на сервере.
  2. Настройка корзины для сетевых дисков samba.
  3. Бэкап файлового сервера.
  4. Мониторинг за размером файловой шары.

Буду рад любым полезным замечаниям, исправлениям, советам по настройке файлового сервера samba. Я потратил значительное время, чтобы поделиться своими знаниями и опытом с остальными. Надеюсь, кто-то поделится чем-то полезным со мной. В том числе ради этого я и пишу статьи. Они расширяют мой кругозор и закрепляют полученные знания.

Онлайн курс «DevOps практики и инструменты»

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, научиться непрерывной поставке ПО, мониторингу и логированию web приложений, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров.

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

Заключение

На этом все. Я рассмотрел наиболее типовую ситуацию, которая может быть полезной при использовании структуры AD совместно с linux серверами. При написании статьи использовал официальные руководства:

  • Deployment, Configuration and Administration of Red Hat Enterprise Linux 6
  • sssd.conf — Linux man page

Почему-то из руководства по RHEL 7 раздел, посвещенный SSSD убрали, хотя в 5 и 6 есть. Может просто я не заметил, так как структура сильно поменялась. Люблю я CentOS в первую очередь за отличную документацию Redhat. Там есть подробное описание практически всего, с чем приходилось сталкиваться. Надо только не лениться в английском языке разбираться.

Онлайн курс Infrastructure as a code

Если у вас есть желание научиться автоматизировать свою работу, избавить себя и команду от рутины, рекомендую пройти онлайн курс Infrastructure as a code. в OTUS. Обучение длится 4 месяца.

Что даст вам этот курс:

  • Познакомитесь с Terraform.
  • Изучите систему управления конфигурацией Ansible.
  • Познакомитесь с другими системами управления конфигурацией — Chef, Puppet, SaltStack.
  • Узнаете, чем отличается изменяемая инфраструктура от неизменяемой, а также научитесь выбирать и управлять ей.
  • В заключительном модуле изучите инструменты CI/CD: это GitLab и Jenkins

Смотрите подробнее программу по .

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Техноарена
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: