Функционал обычного файлового сервера неизменно остается одним из самых популярных и востребованных в работе среднестатистического офиса. Сегодня я расскажу как установить и настроить файловый сервер Samba с авторизацией в AD и управлением доступом с помощью доменных учетных записей. Сразу скажу, что тема это достаточно трудная и хрупкая, очень часто что-то идет не так, нужно неплохо ориентироваться в теме, чтобы решать возникающие проблемы.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.
Содержание:
Введение
Ранее я рассказывал как сделать очень простую и быструю настройку самбы, когда доступ ограничивается либо внутренними пользователями самбы, либо с помощью ip. Если вас такой формат эксплуатации файлового сервера устраивает, то читать дальше не обязательно. Используйте приведенную статью, и у вас все получится очень быстро.
Для более сложной настройки самбы с авторизацией в Active Directory будем разбираться дальше. Существует как минимум 2 способа добавления linux сервера в домен Windows Server:
- Использовать известное и универсальное средство winbind.
- Либо воспользоваться менее популярным, но как мне кажется, более удобным и простым в настройке - sssd.
Пример добавления linux сервера в домен с помощью winbind я приводил в одной из своих статей по настройке sams с авторизацией в AD. Утилиту sssd я использовал, когда настраивал авторизацию в linux с помощью доменный учетных записей. В этой статье я воспользуюсь sssd для интеграции в виндовый домен.
Если у вас еще нет готового сервера, то можете воспользоваться моими материалами на эту тему — установка и настройка centos 7. Так же рекомендую настроить iptables для корректной работы сервера с доменом windows. Далее я не буду касаться этого вопроса, мы просто отключим фаерволл, потому что его настройка не тема этой статьи.
Настраивать файловую шару samba будем на сервере под управлением CentOS 7 следующей версии:
Вводные слова я все сказал. Начнем настройку самбы с ввода сервера в домен.
Добавляем сервер к домену через 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 | учетная запись администратора домена |
Настроим синхронизацию времени с контроллером домена. Это важно, у вас должно быть одинаковое время с контроллером домена. Проверьте его и убедитесь, что стоят одинаковые часовые пояса.
Устанавливаем утилиту для синхронизации времени 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 control@xs.local uid=185001305(control@xs.local) gid=185000513(пользователи домена@xs.local) groups=185000513(пользователи домена@xs.local),185001329(gr_y@xs.local),185001651(gr_sams2@xs.local),185001327(gr_z@xs.local)
Еще несколько проверок.
# realm list
# adcli info xs.local
Сервер завели в домен. Приступаем к основному - настройке samba с интеграцией в AD.
Настройка Samba с интеграцией в AD через sssd
Устанавливаем сам файловый сервер самба.
# yum install samba
Рисуем ему примерно такой конфиг.
# cat /etc/samba/smb.conf
[global] workgroup = XS server string = Samba Server Version %v log file = /var/log/samba/log.%m log level =3 max log size = 500 security = ads encrypt passwords = yes passdb backend = tdbsam realm = XS.LOCAL load printers = no cups options = raw printcap name = /dev/null [shara] comment = My shared folder path = /mnt/shara public = no writable = yes guest ok = no valid users = @"gr_it@xs.local"
Запускаем службу smb.service и добавляем в автозагрузку.
# systemctl start smb.service # systemctl enable smb.service
Теперь идем проверять подключение к сетевому диску с какой-нибудь виндовой машины. Здесь меня ждало полное разочарование. Ничего не работало. Я бился над решение проблемы примерно 2 дня, но не смог победить. Перелопатил весь гугл по запросу "sssd samba", но не смог заставить работать эту связку.
Через поиск нашел как людей, которые бились над решением проблемы с теми же ошибками, что и у меня, так и тех у кого все работало нормально. Я проверил все гайды и конфиги, где люди говорили, что такая связка работает, но у меня она все равно не работала. Видел сообщения людей, которые так же как я, не смогли победить ошибки. Думаю, проблема кроется в различных версиях софта.
Мне стало жаль тратить время на поиски готового решения с sssd, хотя мне очень хотелось получить рабочий вариант, так как с winbind достаточно часто возникают проблемы. Я надеялся от них избавиться переходом на sssd, но не получилось. Статью не стал переделывать, сохранив то, что уже настроил. Может быть у вас заработает.
Попутно узнал, что sssd не поддерживает NTLM авторизацию, только kerberos. Я не знаю, по какой причине, но у меня самба, судя по логам, упорно пыталась авторизовать пользователя по ntlm. В итоге, я прекратил попытки и вернулся к старому проверенному варианту с winbind. Далее расскажу, как настроить файловый сервер samba для работы в домене windows с помощью winbind.
Вводим CentOS 7 в домен с помощью winbind
Если у вас виртуальная машина, проще установить ее с нуля. Если не хочется по какой-то причине, можно просто удалить все установленные ранее пакеты через команду yum remove. Я поступил именно так.
Устанавливаем недостающие пакеты:
# yum install samba-winbind samba-winbind-clients samba pam_krb5 krb5-workstation chrony
Не забудьте о настройке синхронизации времени, которую мы делали на предыдущих шагах. Надо это проделать, если вы сразу начали настройку с данного пункта. Так же убедитесь, что все в порядке с dns, и контроллеры домена пингуются по именам.
Формируем конфиг для kerberos.
# authconfig --enablekrb5 --krb5kdc=xs-winsrv.xs.local --krb5adminserver=xs-winsrv.xs.local --krb5realm=XS-WINSRV.XS.LOCAL --enablewinbind --enablewinbindauth --smbsecurity=ads --smbrealm=XS.LOCAL --smbservers=xs-winsrv.xs.local --smbworkgroup=XS --winbindtemplatehomedir=/home/%U --winbindtemplateshell=/bin/bash --enablemkhomedir --enablewinbindusedefaultdomain --update
Для удобства дублирую таблицу с информацией, чтобы не пришлось скролить страницу вверх.
xs.local | название домена |
10.1.3.4 | ip адрес контроллера домена |
xs-winsrv.xs.local | полное имя контроллера домена |
xs-design | имя сервера centos, который вводим в домен |
admin51 | учетная запись администратора домена |
Вывод после работы команды у меня такой:
Job for winbind.service failed because the control process exited with error code. See "systemctl status winbind.service" and "journalctl -xe" for details.
Это не страшно, продолжаем настройку. Заводим сервер с CentOS в домен:
# net ads join -U admin51
На выходе получил:
Enter admin51's password: Using short domain name -- XS Joined 'XS-DESIGN' to dns domain 'xs.local' No DNS domain configured for xs-design. Unable to perform DNS Update. DNS update failed: NT_STATUS_INVALID_PARAMETER
В принципе, ничего страшного. Нам придется самим создать A запись на DNS сервере. Я не понимаю, почему иногда она не создается автоматически. Во время написания статьи, я использовал один сервер, у него не было этой ошибки при вводе в домен. Когда проверял статью на втором сервере, получил эту ошибку. Проверяем на контроллере домена в списке компьютеров наш сервер и создаем руками А запись, соответствующую имени сервера и его IP адресу.
Теперь рисуем конфиг для самбы примерно такой.
# mcedit /etc/samba/smb.conf
[global] workgroup = XS password server = xs-winsrv.xs.local realm = XS.LOCAL security = ads idmap config * : range = 16777216-33554431 template homedir = /home/%U template shell = /bin/bash kerberos method = secrets only winbind use default domain = true winbind offline logon = false passdb backend = tdbsam load printers = no show add printer wizard = no printcap name = /dev/null disable spoolss = yes domain master = no local master = no preferred master = no os level = 1 log level = 3 log file = /var/log/samba/log.%m [shara] path = /mnt/shara writeable = yes browsable = yes valid users = "@XS\Пользователи домена" admin users = "@XS\Администраторы домена" create mask = 0600 directory mask = 0700
У меня русский язык на контроллере домена, поэтому и имена групп на русском. Проблем с этим не возникает. Не забудьте создать директорию /mnt/shara.
Запускаем samba и winbind и добавляем в автозагрузку.
# systemctl start winbind # systemctl start smb.service # systemctl enable winbind # systemctl enable smb.service
Выполняем ряд проверок, чтобы убедиться, что все в порядке, winbind работает и samba будет получать актуальную информацию о пользователях и группах домена.
# wbinfo -t checking the trust secret for domain XS via RPC calls succeeded
# wbinfo -u # wbinfo -g
Последние две команды должны вывести список всех пользователей и групп домена.
Проверим теперь авторизацию в домене.
# wbinfo -a XS\\control%'pass' plaintext password authentication succeeded challenge/response password authentication succeeded
В данном случае control — имя пользователя домена, pass — его пароль. Успешная проверка выглядит так, как у меня. В завершении проверок посмотрим, корректно ли система сопоставляет доменные учетные записи локальным.
# id control uid=16777216(control) gid=16777220(пользователи домена) groups=16777220(пользователи домена),16777221(gr_z),16777222(gr_sams2),16777223(gr_y),16777217(BUILTIN\users)
Все в порядке. Теперь все готово для корректной работы файлового сервера на основе Samba с доменными учетными записями. В завершении настроек, сделаем администратора домена владельцем нашей шары.
# chown admin51:'пользователи домена' /mnt/shara
Проверяем, что получилось.
# ll /mnt total 0 drwxr-xr-x 2 admin51 пользователи домена 6 Sep 27 17:15 shara
Уберем доступ на чтение у всех остальных, оставим полные права для пользователя admin51 и на чтение у пользователей домена.
# chmod 0750 /mnt/shara
Идем на любую виндовую машину и пробуем зайти на шару по адресу \\ip-адрес-сервера. Попадаем на нашу шару.
Смотрим расширенные параметры безопасности:
Получилось то, что хотели. Управлять правами доступа можно через windows acl с любой машины windows, где учетная запись пользователя домена будет обладать необходимыми правами. Если по какой-то причине это не получится (а я с такими ситуациями сталкивался достаточно часто), на помощь придут консольные утилиты getfacl для проверки прав и setfacl для изменения прав. Документация по этим командам есть в сети и легко ищется. Я рекомендую всегда использовать эти команды, когда вы выполняете изменение прав по большому дереву каталогов. Через консоль выставление прав будет выполнено раз в 5-10 быстрее, чем через windows acl. На больших файловых архивах разница может быть в десятки минут или даже часы.
Настройка прав доступа на файлы в 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. Их придется выставлять вручную по всем вышестоящим папкам. Результат будет такой же, как и в винде - пользователь получит доступ на чтение только в указанную папку, но для этого придется выполнить больше действий. Если не знаешь этот нюанс, можно потратить много времени, прежде чем поймешь, в чем проблема.
Заключение
Скажу откровенно - мне не нравится, как работают файловые сервера samba с интеграцией в виндовом домене. Но настраивать их приходится часто, так как востребованный функционал. Востребован в первую очередь потому, что не требует вообще никаких денег за лицензии, и работает на минимальной конфигурации железа. Вот список типичных проблем при работе самбы в домене:
- Иногда через windows acl права перестают выставляться, возникают неинформативные ошибки, по которым невозможно понять, что не так.
- Я достаточно регулярно наблюдаю ситуацию, когда слетают соответствия доменных учеток линуксовым UID. В итоге права доступа превращаются в ничего не значащий набор цифр и перестают работать.
- При переносе данных с одного сервера на другой трудно сохранить права доступа. Можно поступить вот так для копирования прав доступа, либо как-то заморочиться, чтобы на всех серверах у вас были одинаковые UID доменных учетных записей. Я не разбирал этот вопрос подробно.
Если у вас есть возможность настроить файловый сервер на windows, либо обойтись линуксом без домена, то сделайте так. Существенно упростите настройку и дальнейшую эксплуатацию. Данную статью еще можно дополнить некоторыми моментами, которые я рассказал ранее, а что не рассказал, постараюсь раскрыть позже и добавить сюда ссылки на статьи:
- Подробное логирование всех действий с файлами на сервере.
- Настройка корзины для сетевых дисков samba.
- Бэкап файлового сервера.
- Мониторинг за размером файловой шары.
Буду рад любым полезным замечаниям, исправлениям, советам по настройке файлового сервера samba. Я потратил значительное время, чтобы поделиться своими знаниями и опытом с остальными. Надеюсь, кто-то поделится чем-то полезным со мной. В том числе ради этого я и пишу статьи. Они расширяют мой кругозор и закрепляют полученные знания.
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Добрый день А как сделать тоже самое только управлять через вебмин .
Почему не используете следующее (есть в официальной документации):
Даем права группе samba_admins давать права во вкладке
Безопасность в share через Windows
net rpc rights grant "ДОМЕН\samba_admins" SeDiskOperatorPrivilege -U "ДОМЕН\администратор_домена"
Проверяем
net rpc rights list privileges SeDiskOperatorPrivilege -U "ДОМЕН\администратор_домена"
Завел группу в AD, добавил в нее двух пользователей. Один из этих пользователей - владелец шары. Его пускает, второго пользователя нет. Причем в сислоге странная ошибка появляется:
change_to_user_internal: chdir_current_service() failed! Что это может быть ? setfacl для созданной группы AD сделал.
для работы связки sssd+samba помогло:
1) yum install sssd-libwbclient
2) net ads join -U
Поддерживаю. Помогла установка winbind и добавление к домену через net ads join
Добрый день.
Есть такая проблема: если пользователь в AD заведен как ivanovaa, то подключение к сетевой папке проходит нормально, а если как PetrovAA, т.е. буквы в разном регистре, то авторизация не работает.
По логам понятно, что проверка идет в нижнем регистре и верхнем, оригинальный вариант логина не используется при проверке хотя в логе есть запись вида [PetrovAA] [DOMAIN] [WORKSTATION]
Подскажите, что можно настроить, чтобы авторизация работала для логинов с разным регистром букв ?
сейчас прописано
idmap config * : backend = tdb
решили вроде добавив
username level = 3
Спасибо за инфу.
Добрый день.
Для решения проблемы сохранения UID при переносе и пр. задачах нужно разобраться с параметром backend
Начиная с какой-то версии samba нужно разделять бекэнды по доменам и использовать бекэнд по умолчанию tdb. tdb это бекэнд который хранит UID локально на сервере с самбой (посмотреть (на ubuntu) net idmap dump /var/lib/samba/winbindd_idmap.tdb). Если его использовать со всеми доменами то получится каша, особенно если у вас несколько доменов, перенос на другой сервер усложняется. Есть несколько других бекэндов, я для себя выбрал rid - UID в данном случае высчитывается "на лету" используя часть windows SID и числа из указанного вами range. Этот механизм позволяет настроить самбу на другом сервере, указать тот же range для домена и в конечном итоге получить теже UID для каждой доменной учетной записи. Пример настроек для двух доменов:
idmap config *: backend = tdb
idmap config *: range = 3000-7999
idmap config DOMAIN1: default = yes
idmap config DOMAIN1: backend = rid
idmap config DOMAIN1: range = 100000-199999
idmap config DOMAIN2: backend = rid
idmap config DOMAIN2: range = 200000-299999
# Нужно для backend rid (уже не помню для чего, но бралось из документации по rid)
winbind nss info = template
template shell = /bin/bash
template homedir = /home/%D/%U
-----
Вопрос, может кто решал проблему.
Есть сервер на самбе, все работает. У всех файлов и папок владелец root, остальные права на acl.
Проблема: допустим есть 2 папки, у одной права группа1 и второй права группа2. Есть пользователь который входит в обе группы.
Если данный пользователь КОПИРУЕТ файл из папки1 в папку2 то права на новый файл наследуются из папки2 - это правильная работа (для моей задачи). Но если он ПЕРЕНОСИТ файл, то в папке2 получается файл с правами папки1, и его соответственно не могут прочитать пользователи группа2. Можно каким-то параметром в самбе запретить копирование прав при переносе?
попробуйте параметр inherit owner=yes
inherit owner=yes установлен.
Если пользователь - администратор сервера самба (директива admin users), то при перемещении права в новой папке наследуются правильно.
Но если пользователь - обычный пользователь с нужной группой - при перемещении права копируются :(
Есть прогресс в вопросе, но не совсем такой, как хотелось бы:
dos filemode = no - права при перемещении не наследуются и пользователи не могут изменять права на папки и файлы
dos filemode = yes - права при перемещении наследуются и пользователи могут изменять права на папки и файлы (если есть права на изменение)
Может быть есть вариант наследовать права при перемещении и запретить изменять права?...
Здравствуйте!
Очень странная проблема с Самбой, getacl показывает, что и владельцу и группе разрешено RWX на папку, в конфиге Самбы прописано create mask = 0770 directory mask = 0770, создаю в шаре папку, все нормально и у владельца и у группы все права, создаю файл, права только у владельца RWX, остальные --- подскажите куда рыть?
Надо разбираться. Я что-то подобное встречал и решал, но подробности, к сожалению, не помню.
Здравствуйте! Столкнулся с такой проблемой, все сделано по данной статье на CentOS 7, если прокинуть vpn, допустим из дома в офис, то права перестают корректно отрабатывать, тоесть у учеток которых на корневую папку должны быть только права на чтение почему то получают полный доступ и могут создавать удалять папки, даже те которые были созданы не ими. Как только появляешься в офисе, все права начинают отрабатывать корректно. В логах при этом видно, что тот кто подключается удаленно, самба его никак вообще не пытается зарегистрировать, выдает ошибку, но на сервер все равно пускает и дает полные права на все. Может кто-нибудь сталкивался и знает как помочь?
Странная история. Права доступа хранятся в acl, списках контроля доступа к файлу. Они не зависят от способа подключения, по vpn или из офиса.
Не подключается к домену вообще пишет следующее:
net ads join -U ivanov.k
Enter ivanov.k's password:
gse_get_client_auth_token: gss_init_sec_context failed with [Unspecified GSS failure. Minor code may provide more information: Message stream modified](2529638953)
kinit succeeded but ads_sasl_spnego_gensec_bind(KRB5) failed for ldap/vs01.cloud.local with user[ivanov.k] realm[CLOUD.LOCAL]: The attempted logon is invalid. This is either due to a bad username or authentication information.
Failed to join domain: failed to connect to AD: Invalid credentials
А что делать если лог самбы пишет ошибку по попытке входа через имя?
[2019/09/19 12:35:39.650216, 1] ../source3/librpc/crypto/gse.c:658(gse_get_server_auth_token)
gss_accept_sec_context failed with [Unspecified GSS failure. Minor code may provide more information: Request ticket server cifs/srv-fs@CLOUD.LOCAL not found in keytab (ticket kvno 2)]
[2019/09/19 12:35:39.652622, 3] ../source3/smbd/server_exit.c:237(exit_server_common)
Server exit (NT_STATUS_CONNECTION_RESET)
Собственно вот эта ошибка
По ошибке
not found in keytab
могу только предположить, что какие-то проблемы с керберосом.
Отсутствие регистрации в DNS, возможно, связано с проблемой:
https://bugzilla.altlinux.org/show_bug.cgi?id=35453
На SAMBA 4.8.3-4.el7 + SSSD 1.16.2-13.el7_6.8 проблема воспроизводится.
После wbinfo -t выходит
checking the trust secret for domain -not available- via RPC calls failed
failed to call wbcCheckTrustCredentials: WBC_ERR_NOT_IMPLEMENTED
Не подскажете что может быть?
Надо гуглить. С работой в домене очень много нюансов в настройке.
метод через sssd не больше не работает, добавьте инфу в шапку, с версии samba 4.8 файловый сервер как член AD надо вводить через winbind
Добрый день, может натолкнете в каком направлении рыть. Есть файловый сервер на базе Centos 7 и контроллер домена на базе Win Ser 2008 R2, хотелось бы реализовать следующую концепцию. Допустим пользователь домена подключается к файловому серверу Centos 7 и у него создается домашняя папка по определенному сетевому пути с его именем из OU контроллера домена (в идеале еще и с лимитом на саму шару, а не на пользователя или группу).
Так вот PAM и samba работают в связке и создают такую папку на файловом сервере, но с таким именем папки при котором пользователь авторизуется при входе в систему. т.е. берется его Логин. а я бы хотел что бы его папка была названа его атрибутами взятыми с виндовс сервера 2008 и на кириллице. Но как это сделать ума не приложу.
Надо написать logon скрипт на powershell, а в нем уже настроить создание новой папки так, как хочется. Создавать и подключать папку именно logon скриптом. Я так делал в свое время.
DNS update failed: NT_STATUS_INVALID_PARAMETER
данная ошибка чаще всего проявляется если не заполнен параметр hosts по типу
ip_адрес_сервера имя_компа.домен имя_компа
столкнулся с интересным поведением сервера на которое позже нашел объяснение: если на шару заходить с виндовой машины по IP адресу сервера то не работает нифига. А вот если набрать имя сервера то начинает работать. Как позже выяснил Kerberos авторизация работает только при использовании доменных имен. Может поэтому у Вас не вышло с sssd?
Эту тему я знаю, проверял. У меня по какой-то другой причине не работало. Может соберусь и еще как-нибудь проверю. Мне кажется просто звезды так совпали :) Иногда те же самые действия через некоторое время приводят к желаемому результату.
Спасибо очень позновательная статья.
С этими настройками с официальной справки сразу заработало:
https://access.redhat.com/articles/3023821
[global]
workgroup = EXAMPLE
client signing = yes
client use spnego = yes
kerberos method = secrets and keytab
log file = /var/log/samba/%m.log
password server = AD.EXAMPLE.COM
realm = EXAMPLE.COM
security = ads
winbind вообще не использовался, только sssd
Решение с realm и sssd нашлось тут: https://access.redhat.com/articles/3023821
Конфиг smb.conf выглядит так:
[global]
realm = MY.TEST
server string = Samba Server %v
workgroup = MY
log file = /var/log/samba/log.%m
max log size = 50
kerberos method = secrets and keytab # можно заменить на dedicated keytab
security = ADS
idmap config * : backend = tdb
[secured]
path = /samba/secured
read only = No
valid users = @linux_users@my.test # кавычки оказались не нужны, их выкинул testparm
Доброе.
Mikrotik - отл. выбор. Но не умеет, напр., nat fastpath, т.е. вся нагрузка ложиться на cpu уст-ва.
Сравнивать Pfsense и МТ - это как сравнивать газель с карьерным самосвалом.
Установить xen на mdadm ? Сперва разворачиваете тот же Дебиан на mdadm, а после - накатывайте xen. В чем вопрос-то ?
Правда, он может развалиться. После очередного обновления xen.
ПересмОтрите свое отношение к kvm )) ? Вот честно - ему от этого ни холодно, ни жарко.
Proxmox разворачивается на zfs, среди преимуществ к-ой - сжатие, дедупликация, удобство в создание массивов любого уровня, возможность использования ssd в кач-ве кеша и COPY_ON_WRITE (ваши данные никогда не запишутся поврежденными, CRC вычисляется ДВУМЯ алгоритмами). Также мгновенный снепшоттинг и возможность откатиться к любой версии. И это не всё. Гуглите.
Все это управляется с пом. БРАУЗЕРА, а не не пойми чего.
http://wolandblog.com/601-zfs-novyj-vzglyad-na-fajlovye-sistemy/
http://xgu.ru/wiki/ZFS
P.s. Напомню. Pfsense - https://forum.pfsense.org/index.php?board=9.0
Только не говорите снова, что вы его лет 8 назад пользовать пытались и он вам не понравился. Это не правда.
Так чем инкрементно бэкапить KVM? Есть готовое решение? Под hyper-v, vmware и xenserver есть решения. Для kvm мне неизвестны.
Добрый.
Как у Вас дела с pfsense ? Начали внедрять ?
P.s. Цитата:
"Буду рад любым полезным замечаниям, исправлениям, советам по настройке файлового сервера samba. Я потратил значительное время, чтобы поделиться своими знаниями и опытом с остальными. Надеюсь, кто-то поделится чем-то полезным со мной. В том числе ради этого я и пишу статьи. Они расширяют мой кругозор и закрепляют полученные знания."
Лукавите. Тот же Proxmox я Вам посоветовал, а то сидели бы в Xen-е до сих пор. Статьи по никсам подбрасывал. А Вы из скайпа за это удаляете ( Не хорошо.
Если я слушаю советы, это не значит, что я их обязательно использую. В качестве маршрутизатора я предпочитаю mikrotik, а гипервизоры использую по ситуации. XenServer лично мне нравится больше, чем KVM. С ним меньше проблем во время эксплуатации. А точнее вообще нет. Минус только один - он с версии 7.1 перестал ставиться на mdadm. Если посоветуете бесплатный инструмент для инкрементных бэкапов виртуальных машин под kvm, возможно я пересмотрю свое отношение к нему. Пока же я таких не вижу, а для xenserver регулярно использую.
Я ввел 3 файл сервера в домен на Дебиане, но там немного по другому, я полностью использую скрипт, нашедший в одной сборке Дебиана и немного его допилив под себя https://drive.google.com/open?id=0BzrWXN0Dsp4qUWxTY1UtdGFESVE, так вот там аутентификация через ПАМ, и я добавил на сервер скрипт который раз в 12 часов обновляет права доступа к шарам по наименованию присваивая UID и GID который почему то меняется время от времени, попутно после всего ставил на сервак webmin, через него шары добавлять и редактировать права просто.
Скрипт мощный :)) Вот кто-то заморочился. Что за скрипт, который обновляет права? Хочу на него посмотреть. А что будет, если права изменятся в этом промежутке? Нужно будет руками скрипт запускать?
Я так понимаю, вопрос, почему иногда меняются UID и GID тоже открытый. Если бы они не менялись по какой-то причине, то проблем бы практически не было.
Суть такова на серваке есть шара /srv/buhi доступ нужен только группе "debet", шара /srv/konstr - "domain users", когда вдруг не понятно чего слетает UID GID, а так как Линукс присваивает права именно по ним, когда группам переопределяется GID, доступ на шаре становится в виде (root:10006), а не (root:debet) - доступ естественно отваливается. Банально баш скрипт:
chown -R root:debet /srv/buhi
chown -R root:"domain users" /srv/konstr
и в крон его на запуск каждые 12 часов.
З.Ы. А в скрипте там где вставка данных в файл xml при входе определенного пользователя, если он относится к данной группе монтируется папка с установкой прав на шару, а при выходе происходит размонтирование.
Я понял. Это очень простой вариант, когда доступ у одной группы. У меня обычно глючат более масштабные сервера, где очень много различных прав. Мне иногда кажется, что чем больше шара, чем сложнее иерархия директорий и грууп, тем больше шанс, что что-то сглючит в правах.
На до написать скрипт который читает конфиг самбы и отрабатывает блоки с шарами считывая путь и привилегию, выводя команду "човн" или "чмод" и так циклически.Вроде я встречал настраивали еще дополнительно с утилитой ACL, надо почитать про нее подробней. Жаль что самба еще не полностью может стать контроллером домена, надеюсь с новими версиями и возможностей станет больше
Может здесь ответ на проблемы https://wiki.samba.org/index.php/Idmap_config_ad
с sssd долго прыгал, но настроил в итоге - делал samba контроллер AD, и файловый сервер в домене на этом контроллере, с корректными правами и пр. Там в итоге пришлось вручную корректировать sssd.conf, smb.conf, krb5.conf, и вводить в домен через adcli join, потому что realmd обладал какими-то багами. Настройки да, неочевидные, типа kerberos method и dedicated keytab file в smb.conf. Но работало, могу выложить конфиги.
Я вообще не настраивал никогда и даже не планирую домен на самбе. Думаю, эти конфиги мне никак не помогут. Очень много нюансов в этих настройках, они очень неуниверсальны.
Спасибо за статью!
А дедупликацию на samba не пробовали настраивать? На виндовых серверах сейчас это очень востребованный функционал.
Я так понимаю, что дедупликация это не функционал самбы. Реализовывать дедупликацию должно хранилище.