Инструменты пользователя

Инструменты сайта


samba_ad

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
samba_ad [2014/03/20 15:55]
metallic [Настройка]
samba_ad [2023/10/02 16:40] (текущий)
metallic [Настройка]
Строка 3: Строка 3:
 ===== Введение ===== ===== Введение =====
  
-Задача: запустить файловый сервер под управлением Debian 7 и Samba с интеграцией в AD, т.е. с прозрачной аунтификацией клиентов с ОС семейства Windows, авторизованных в домене.+Задача: запустить файловый сервер под управлением Debian 8/Centos 7 и Samba с интеграцией в AD, т.е. с прозрачной аунтификацией клиентов с ОС семейства Windows, авторизованных в домене.
  
 Имеем: домен domain.local, серверная ОС Windows Server 2012, режим работы домена и леса 2012(хотя работает и со всем предыдущими режимами), два DC: dc1.domain.local и dc2.domain.local, будующий файловый сервер fileserver. Имеем: домен domain.local, серверная ОС Windows Server 2012, режим работы домена и леса 2012(хотя работает и со всем предыдущими режимами), два DC: dc1.domain.local и dc2.domain.local, будующий файловый сервер fileserver.
Строка 22: Строка 22:
 Также обязательно надо синхронизировать время между DC и файловым сервером, иначе в случае расхождения времени более чем на 5 минут аунтификация работать не будет. Иногда под большими нагрузками время на файловых серверах любит рассинхронизороваться, чтобы этого не происходило рекомендуется запустить и настроить ntp-клиент. Также обязательно надо синхронизировать время между DC и файловым сервером, иначе в случае расхождения времени более чем на 5 минут аунтификация работать не будет. Иногда под большими нагрузками время на файловых серверах любит рассинхронизороваться, чтобы этого не происходило рекомендуется запустить и настроить ntp-клиент.
  
-3. На файловом стервере ставим все необходимо ПО:+3. На файловом сервере ставим все необходимо ПО
 +Debian 8:
  
-  # apt-get install samba winbind krb5-user+  # apt-get install samba winbind krb5-user libpam-krb5 libnss-winbind 
 +   
 +Centos 7: 
 + 
 +  # yum install samba samba-winbind krb5-workstation samba-winbind-clients
      
 4. Редактируем /etc/krb5.conf: 4. Редактируем /etc/krb5.conf:
Строка 34: Строка 39:
      
   [realms]   [realms]
-          BURUT.ORG = {+          DOMAIN.LOCAL = {
                   kdc = dc1.domail.local                   kdc = dc1.domail.local
                   kdc = dc2.domail.local                   kdc = dc2.domail.local
Строка 69: Строка 74:
           realm = DOMAIN.LOCAL           realm = DOMAIN.LOCAL
           workgroup = DOMAIN           workgroup = DOMAIN
 +  #        password server = dc1.domail.local dc2.domail.local          
           idmap config * : range = 3000-20000           idmap config * : range = 3000-20000
           idmap config * : backend = tdb           idmap config * : backend = tdb
Строка 89: Строка 95:
           printcap name = /dev/null           printcap name = /dev/null
           disable spoolss = yes           disable spoolss = yes
 +
 +Тут коментировать особенно нечего, все просто, привожу только секцию global конфига, в конце еще добавлю пример шары. Единственный момент, закоментирован параметр password server, самба сама найдет сервера через которые аунтифицировать клиентов в конфиге krb5.konf. Перезапускаем samba и winbind:
 +
 +  # service samba restart
 +  [ ok ] Stopping Samba daemons: nmbd smbd.
 +  [ ok ] Starting Samba daemons: smbd.
 +
 +  # service winbind restart
 +  [ ok ] Stopping the Winbind daemon: winbind.
 +  [ ok ] Starting the Winbind daemon: winbind.
 +
 +
 +6. Подключаемся к домену:
 +
 +  # net ads join -U admin --no-dns-updates
 +  Enter admin's password:
 +  Using short domain name -- DOMAIN
 +  Joined 'FILESERVER' to realm 'DOMAIN.LOCAL'
 +
 +Опция --no-dns-updates говорит не обновлять днс-запись, иначе будет ошибка. Другой вариант - включить в настройках доменного ДНС небезопасное обновление зоны.
 +
 +7. Теперь чтобы система использовала winbind для поиска пользователей и групп редактируем /etc/nsswitch.conf:
 +
 +  passwd:         compat winbind
 +  group:          compat winbind
 +  shadow:         compat
 +  
 +  hosts:          files dns
 +  networks:       files
 +  
 +  protocols:      db files
 +  services:       db files
 +  ethers:         db files
 +  rpc:            db files
 +  
 +  netgroup:       nis
 +
 +Тут всего лишь добавлено ключевое слово winbind в поля passwd и group.
 +
 +Вот и все. Теперь еще раз на всякий случай перезапускаемся.
 +
 +
 +Debian 8:
 +  # service samba restart
 +  [ ok ] Stopping Samba daemons: nmbd smbd.
 +  [ ok ] Starting Samba daemons: smbd.
 +
 +  # service winbind restart
 +  [ ok ] Stopping the Winbind daemon: winbind.
 +  [ ok ] Starting the Winbind daemon: winbind.
 +
 +Centos 7:
 +  # systemctl enable smb
 +  # systemctl enable winbind
 +  # systemctl restart smb
 +  # systemctl restart winbind
 +
 +И тестируем:
 +
 +  # wbinfo -p
 +  Ping to winbindd succeeded
 +
 +  # wbinfo -t
 +  checking the trust secret for domain DOMAIN via RPC calls succeeded
 +
 +  # id admin
 +  uid=500(admin) gid=502(domain users) группы=502(domain users),511(владельцы-создатели групповой политики),507(администраторы домена),505(администраторы предприятия),504(администраторы схемы),501(BUILTIN users),500(BUILTIN administrators)
 +  
 +  # wbinfo -u
 +  admin
 +  гость
 +  ...  
 +  
 +  # wbinfo -g
 +  domain users
 +  гости домена
 +  клонируемые контроллеры домена
 +  контроллеры домена - только чтение
 +  контроллеры домена
 +  компьютеры домена
 +  владельцы-создатели групповой политики
 +  администраторы домена
 +  ...
 +
 +  # net ads testjoin
 +  Join is OK
 +
 +  # net ads info
 +  LDAP server: X.X.X.X
 +  LDAP server name: DC1.domain.org
 +  Realm: DOMAIN.ORG
 +  Bind Path: dc=DOMAIN,dc=ORG
 +  LDAP port: 389
 +  Server time: Птн, 17 Июл 2015 18:29:53 MSK
 +  KDC server: X.X.X.X
 +  Server time offset: -32
 +
 +
 +
 +Если все ОК, система видит доменных пользователей и группы, можно попробовать зайти на сервер. Пример шары с прописанными доменными пользователями и группами приведен ниже:
 +
 +  [shara]
 +      path = /path/to/shara
 +      writeable = yes
 +      browsable = yes
 +      valid users = @DOMAIN\group1, @DOMAIN\group2, DOMAIN\user1, DOMAIN\user2
 +      read list = 
 +      write list = 
 +      create mask = 0777
 +      force directory mode = 0777
 +      
 +
 +<note tip>
 +База tdb с привязкой ID к доменным пользователям храниться тут:
 +
 +  # ls -1 /var/lib/samba
 +  account_policy.tdb
 +  group_mapping.tdb
 +  passdb.tdb
 +  printers
 +  registry.tdb
 +  secrets.tdb
 +  share_info.tdb
 +  usershares
 +  winbindd_idmap.tdb
 +
 +В случае каких либо глюков, например после переименования доменных учетных записей, можно попробовать удалить это все и перезапустить самбу с винбиндом:
 +
 +  net cache flush
 +  rm /var/lib/samba/*.tdb
 +
 +Но в этом случае возможно придется заново перенастраивать права доступа к файловой системе, т.к. велика вероятность получения новых ID пользователями в пределах сервера. 
 +</note>
 +
 +<note tip>
 +Если запустить winbind с ключем -n, то он не будет кешировать результаты запросов к AD.
 +
 +В debian редактируем файл /etc/default/winbind и добавляем туда строку:
 +  WINBINDD_OPTS="-n"
 +
 +В redhat редактируем файл /etc/sysconfig/samba и добавляем туда строку:
 +  WINBINDOPTIONS="-n"
 +</note>
 +
 +<note>
 +Для сопоставления доменных идентификаторов пользователей локальным удобно использовать вместо бакенда tdb(локальная база данных) бакэнд rid, в таком случае они будут вычисляться на лету исходя из доменного SID пользователя(последних цифр) и будут всегда одинаковыми на всех серверах(при неизменности конфигурации). Пример конфигурации:
 +
 +  idmap config DOMAIN : base_rid = 0
 +  idmap config DOMAIN : range = 2000-999999
 +  idmap config DOMAIN : backend = rid
 +  idmap config DOMAIN : default = yes
 +  idmap config * : range = 1300000-1999999
 +  idmap config DOMAIN : backend = rid
 +  
 +Локальный ID пользователя будет вычисляться по формуле:
 +  ID = RID - BASE_RID + LOW_RANGE_ID
 +где 
 +RID - последние цифры SID пользователя домена, например для встроенной учетной записи администратора это обычно 500(S-1-5-21-ХХХХХХХХХ-ХХХХХХХХХ-ХХХХХХХХХ-500) и для в дальнейшем создаваемых пользователей в домене эта цифра увеличивается
 +BASE_RID - это конфигурируемый параметр, это цифра, на которую уменьшается ID пользователя в системе, если его надо подкорректировать, в нашем случае 0
 +LOW_RANGE_ID - это нижняя граница диапазона, в нашем случае 2000
 +И таким образом ID встроенного админа при такой конфигурации будет рассчитан так: 500 - 0 + 2000 = 2500 и это значение будет неизменным для всех серверов при условии, что вышеуказанная конфигурация не меняется. Аналогично для других пользователей, локальное значение всегда будет на 2000 больше, чем доменное.
 +
 +Чтобы идентификаторы пользователей точно соответствовал доменным, можно настроить так:
 +  ...
 +  idmap config DOMAIN : base_rid = 100
 +  idmap config DOMAIN : range = 100-999999
 +  ...
 +Но в этом случае они могут пересекаться с локальными.
 +  
 +Дополнительная информация по [[https://www.samba.org/samba/docs/man/manpages-3/idmap_rid.8.html|ссылке]].
 +</note>
 +
 +===== Команды диагностики =====
 +
 +  # id renderman
 +  uid=503(renderman) gid=500(domain users) группы=500(domain users),517(kopir_users),596(sw_all),678(sw_render),519(render_farm),505(artoon_all),522(artoon_compos),535(artoon_cache),672,510(BUILTIN\users)
 +  
 +  # wbinfo --user-groups=renderman
 +  500
 +  517
 +  596
 +  678
 +  519
 +  505
 +  522
 +  535
 +  672
 +  510
 +    
 +  # wbinfo --name-to-sid=renderman
 +  S-1-5-21-1421388833-3017584253-2885461630-3113 SID_USER (1)
 +  
 +  # wbinfo --ping-dc
 +  checking the NETLOGON dc connection succeeded
 +  
 +  # wbinfo --user-info=renderman
 +  renderman:*:503:500::/home/DOMAIN/renderman:/bin/false
 +  
 +  # groups renderman
 +  renderman : domain users kopir_users sw_all sw_render render_farm artoon_all artoon_compos artoon_cache groups: невозможно определить имя группы для ID 672
 +  672 BUILTIN\users
  
samba_ad.1395316520.txt.gz · Последнее изменение: 2022/03/25 17:04 (внешнее изменение)