Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
samba_ad [2014/03/20 15:55] metallic [Настройка] |
samba_ad [2023/10/02 16:40] (текущий) metallic [Настройка] |
||
---|---|---|---|
Строка 3: | Строка 3: | ||
===== Введение ===== | ===== Введение ===== | ||
- | Задача: | + | Задача: |
Имеем: домен domain.local, | Имеем: домен domain.local, | ||
Строка 22: | Строка 22: | ||
Также обязательно надо синхронизировать время между DC и файловым сервером, | Также обязательно надо синхронизировать время между DC и файловым сервером, | ||
- | 3. На файловом стервере ставим все необходимо ПО: | + | 3. На файловом сервере ставим все необходимо ПО. |
+ | Debian 8: | ||
- | # apt-get install samba winbind krb5-user | + | # apt-get install samba winbind krb5-user |
+ | |||
+ | Centos 7: | ||
+ | |||
+ | # yum install samba samba-winbind krb5-workstation samba-winbind-clients | ||
| | ||
4. Редактируем / | 4. Редактируем / | ||
Строка 34: | Строка 39: | ||
| | ||
[realms] | [realms] | ||
- | | + | |
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 | ||
+ | |||
+ | Тут коментировать особенно нечего, | ||
+ | |||
+ | # 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' | ||
+ | Using short domain name -- DOMAIN | ||
+ | Joined ' | ||
+ | |||
+ | Опция --no-dns-updates говорит не обновлять днс-запись, | ||
+ | |||
+ | 7. Теперь чтобы система использовала winbind для поиска пользователей и групп редактируем / | ||
+ | |||
+ | passwd: | ||
+ | group: | ||
+ | shadow: | ||
+ | | ||
+ | hosts: | ||
+ | networks: | ||
+ | | ||
+ | protocols: | ||
+ | services: | ||
+ | ethers: | ||
+ | rpc: db files | ||
+ | | ||
+ | netgroup: | ||
+ | |||
+ | Тут всего лишь добавлено ключевое слово 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), | ||
+ | | ||
+ | # 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, | ||
+ | LDAP port: 389 | ||
+ | Server time: Птн, 17 Июл 2015 18:29:53 MSK | ||
+ | KDC server: X.X.X.X | ||
+ | Server time offset: -32 | ||
+ | |||
+ | |||
+ | |||
+ | Если все ОК, система видит доменных пользователей и группы, | ||
+ | |||
+ | [shara] | ||
+ | path = / | ||
+ | writeable = yes | ||
+ | browsable = yes | ||
+ | valid users = @DOMAIN\group1, | ||
+ | read list = | ||
+ | write list = | ||
+ | create mask = 0777 | ||
+ | force directory mode = 0777 | ||
+ | | ||
+ | |||
+ | <note tip> | ||
+ | База tdb с привязкой ID к доменным пользователям храниться тут: | ||
+ | |||
+ | # ls -1 / | ||
+ | account_policy.tdb | ||
+ | group_mapping.tdb | ||
+ | passdb.tdb | ||
+ | printers | ||
+ | registry.tdb | ||
+ | secrets.tdb | ||
+ | share_info.tdb | ||
+ | usershares | ||
+ | winbindd_idmap.tdb | ||
+ | |||
+ | В случае каких либо глюков, | ||
+ | |||
+ | net cache flush | ||
+ | rm / | ||
+ | |||
+ | Но в этом случае возможно придется заново перенастраивать права доступа к файловой системе, | ||
+ | </ | ||
+ | |||
+ | <note tip> | ||
+ | Если запустить winbind с ключем -n, то он не будет кешировать результаты запросов к AD. | ||
+ | |||
+ | В debian редактируем файл / | ||
+ | WINBINDD_OPTS=" | ||
+ | |||
+ | В redhat редактируем файл / | ||
+ | WINBINDOPTIONS=" | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | Для сопоставления доменных идентификаторов пользователей локальным удобно использовать вместо бакенда 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 пользователя домена, | ||
+ | BASE_RID - это конфигурируемый параметр, | ||
+ | LOW_RANGE_ID - это нижняя граница диапазона, | ||
+ | И таким образом ID встроенного админа при такой конфигурации будет рассчитан так: 500 - 0 + 2000 = 2500 и это значение будет неизменным для всех серверов при условии, | ||
+ | |||
+ | Чтобы идентификаторы пользователей точно соответствовал доменным, | ||
+ | ... | ||
+ | idmap config DOMAIN : base_rid = 100 | ||
+ | idmap config DOMAIN : range = 100-999999 | ||
+ | ... | ||
+ | Но в этом случае они могут пересекаться с локальными. | ||
+ | | ||
+ | Дополнительная информация по [[https:// | ||
+ | </ | ||
+ | |||
+ | ===== Команды диагностики ===== | ||
+ | |||
+ | # id renderman | ||
+ | uid=503(renderman) gid=500(domain users) группы=500(domain 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: | ||
+ | | ||
+ | # 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 | ||