The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Настройка Samba 3 PDC и перевод домена WINDOWS 2003 на Samba 3. (samba pdc domain windows freebsd)

<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>
Ключевые слова: samba, pdc, domain, windows, freebsd,  (найти похожие документы)
From: argo <>; Date: Mon, 27 Feb 2007 14:31:37 +0000 (UTC) Subject: Настройка Samba 3 PDC и перевод домена WINDOWS 2003 на Samba 3. Оригинал: Настройка Samba 3 PDC LDAP FreeBSD 6.1 Пишу по мотивам Linux Samba-OpenLDAP Howto Также использована статья Установка дисковых квот в FreeBSD Использование ACL в FreeBSD Из портов ставим openldap-2.3.24 samba-3.0.23 nss_ldap-251 pam_ldap-182 smbldap-tools-0.9.2a Копируем cp /usr/local/share/examples/samba/LDAP/samba.schema /usr/local/etc/openldap/schema содержимое файла /usr/local/etc/openldap/slapd.conf (права доступа 0600 root) include /usr/local/etc/openldap/schema/core.schema include /usr/local/etc/openldap/schema/cosine.schema include /usr/local/etc/openldap/schema/inetorgperson.schema include /usr/local/etc/openldap/schema/misc.schema include /usr/local/etc/openldap/schema/nis.schema include /usr/local/etc/openldap/schema/openldap.schema include /usr/local/etc/openldap/schema/samba.schema pidfile /var/run/openldap/ argsfile /var/run/openldap/slapd.args #ssl #TLSCipherSuite HIGH:MEDIUM:+SSLv2:+TLSv1 #TLSCertificateFile /usr/local/etc/openldap/ldap.csr #TLSCertificateKeyFile /usr/local/etc/openldap/ldap.key modulepath /usr/local/libexec/openldap #moduleload back_bdb moduleload back_ldap moduleload back_ldbm #moduleload back_passwd #moduleload back_shell #database bdb database ldbm suffix "dc=kristall,dc=local" rootdn "cn=Manager,dc=kristall,dc=local" #Создать хеш пароля #/usr/local/sbin/slappasswd rootpw {SSHA}CuizlmpA5bH1MJ8qKJemPJdkgurnguitg #loglevel 256 directory /var/db/openldap-data index objectClass,uidNumber,gidNumber eq index cn,sn,uid,displayName pres,sub,eq index memberUid,mail,givenname eq,subinitial index sambaSID,sambaPrimaryGroupSID,sambaDomainName eq #any users can authenticate and change his password access to attrs=userPassword,sambaLMPassword,sambaNTPassword,sambaPwdLastSet,sambaPwdMustChange by dn="cn=Manager,dc=kristall,dc=local" write by self write by anonymous auth by * none #some attributes need to be readable anonymously so that 'id user' can answer correctly access to attrs=objectClass,entry,homeDirectory,uid,uidNumber,gidNumber,memberUid by dn="cn=Manager,dc=kristall,dc=local" write by * read #somme attributes can be writable by users themselves access to attrs=description,telephoneNumber,roomNumber,homePhone,loginShell,gecos,cn,sn,givenname by dn="cn=Manager,dc=kristall,dc=local" write by self write by * read #some attributes need to be writable for samba access to attrs=cn,sambaLMPassword,sambaNTPassword,sambaPwdLastSet,sambaLogonTime, sambaLogoffTime,sambaKickoffTime,sambaPwdCanChange,sambaPwdMustChange, sambaAcctFlags,displayName,sambaHomePath,sambaHomeDrive,sambaLogonScript, sambaProfilePath,description,sambaUserWorkstations,sambaPrimaryGroupSID, sambaDomainName,sambaMungedDial,sambaBadPasswordCount,sambaBadPasswordTime, sambaPasswordHistory,sambaLogonHours,sambaSID,sambaSIDList,sambaTrustFlags, sambaGroupType,sambaNextRid,sambaNextGroupRid,sambaNextUserRid,sambaAlgorithmicRidBase, sambaShareName,sambaOptionName,sambaBoolOption,sambaIntegerOption,sambaStringOption,sambaStringListoption by dn="cn=Manager,dc=kristall,dc=local" write by self read by * none #samba need to be able to create the samba domain account access to dn.base="dc=kristall,dc=local" by dn="cn=Manager,dc=kristall,dc=local" write by * none #samba need to be able to create new users accounts access to dn="ou=Users,dc=kristall,dc=local" by dn="cn=Manager,dc=kristall,dc=local" write by * none #samba need to be able to create new groups accounts access to dn="ou=Groups,dc=kristall,dc=local" by dn="cn=Manager,dc=kristall,dc=local" write by * none #samba need to be able to create new computers accounts access to dn="ou=Computers,dc=kristall,dc=local" by dn="cn=Manager,dc=kristall,dc=local" write by * none #this can be omitted but we let it stay because there could be other branches in the directory access to * by self read By * none добавим в файл /etc/rc.conf slapd_enable="YES" slapd_flags='-h "ldapi://%2fvar%2frun%2fopenldap%2fldapi/ ldap:// ldaps://"' slapd_sockets="/var/run/openldap/ldapi" samba_enable="YES" файл /usr/local/etc/smb.conf [global] workgroup = KRISTALL netbios name = FREEBSD enable privileges = yes interfaces = # username map = /etc/samba/sbmusers server string = SAMBA_LDAP PDC Server security = user encrypt passwords = Yes obey pam restrictions = No ldap passwd sync = Yes log level = 0 syslog = 0 log file = /var/log/samba/log.%m max log size = 100000 time server = Yes socket options = TCP_NODELAY mangling method = hash2 display charset = koi8-r unix charset = koi8-r dos charset = cp866 logon script = logon.bat logon drive = H: # logon home = logon path = domain logons = Yes # os level = 255 preferred master = yes domain master = yes local master = yes wins support = yes # wins server = w.x.y.z wins proxy = yes dns proxy = no name resolve order = lmhosts wins dns host bcast passdb backend= ldapsam:ldap:// ldap admin dn= cn=Manager,dc=kristall,dc=local ldap suffix= dc=kristall,dc=local ldap user suffix= ou=Users ldap group suffix= ou=Groups ldap machine suffix= ou=Computers ldap idmap suffix = ou=Users ldap ssl= off # ldap ssl= start tls add user script = /usr/local/sbin/smbldap-useradd -m "%u" ldap delete dn= Yes delete user script = /usr/local/sbin/smbldap-userdel "%u" add machine script = /usr/local/sbin/smbldap-useradd -w "%u" add group script = /usr/local/sbin/smbldap-groupadd -p "%g" delete group script = /usr/local/sbin/smbldap-groupdel "%g" add user to group script = /usr/local/sbin/smbldap-groupmod -m "%u" "%g" delete user from group script = /usr/local/sbin/smbldap-groupmod -x "%u" "%g" set primary group script = /usr/local/sbin/smbldap-usermod -g "%g" "%u" load printers = no # printcap name = cups # disable spoolss = Yes # show add printer wizard = No # printing = cups [homes] comment = Home directories browseable = No writable = yes public = no valid users = %S vfs object = recycle recycle:repository = .Корзина recycle:keeptree = Yes recycle:touch = Yes recycle:version = Yes recycle:maxsize = 0 recycle:exclude = *.tmp|*.tbi|*.temp|~$*|*.~?? [netlogon] comment = Network Logon Service path = /home/samba/netlogon/ browseable = no read only = yes [Profiles] path = /home/samba/profiles read only = no create mask = 0600 directory mask = 0700 browseable = No guest ok = yes profile acls = yes csc policy = disable force user = %U valid users = %U @"Domain Admins" [public] comment = Общий ресурс path = /home/samba/public valid users = @"Domain Admins", @"Domain Users" browseable = yes guest ok = yes read only = no directory mask = 0777 create mask = 0666 Пароль к LDAP серверу для samba #smbpasswd -w секретное_слово Создаем шары самбы mkdir /home/samba mkdir /home/samba/netlogon mkdir /home/samba/profiles mkdir /home/samba/public chmod 1777 /home/samba/profiles В ms windows создаем файл logon.bat net use i: \\freebsd\public /yes кладем его в папку /home/samba/netlogon chmod 1777 /home/samba/profiles Тест файла конфигурации samba #testparm Настраиваем NSS файл /etc/nsswitch.conf (права доступа 0600 root) group: files ldap group_compat: nis hosts: files dns networks: files passwd: files ldap passwd_compat: nis shells: files файл /etc/pam.d/system # # $FreeBSD: src/etc/pam.d/system,v 1.1 2003/06/14 12:35:05 des Exp $ # # System-wide defaults # # auth auth sufficient no_warn no_fake_prompts auth requisite no_warn allow_local #auth sufficient no_warn try_first_pass #auth sufficient no_warn try_first_pass #auth required no_warn try_first_pass nullok auth sufficient no_warn try_first_pass nullok auth required /usr/local/lib/ use_first_pass # account #account required account required account required # session #session optional session required no_fail # password #password sufficient no_warn try_first_pass password required no_warn try_first_pass файл /usr/local/etc/ldap.conf host base dc=kristall,dc=local uri ldapi://%2fvar%2frun%2fopenldap%2fldapi/ rootbinddn cn=Manager,dc=kristall,dc=local scope sub nss_base_passwd ou=Users,dc=kristall,dc=local?one nss_base_passwd ou=Computers,dc=kristall,dc=local?one nss_base_group ou=Groups,dc=kristall,dc=local?one ssl no # Если ставлю pam_password SSHA то unix пользователя не пускает # В файл \usr\local\etc\smbldap-tools\smbldap.conf # также ставим CPYPT pam_password CRYPT # Обратите внимание без следующих двух строчек LDAP сервер # нормально не стартует bind_timelimit 10 bind_policy soft файл /usr/local/etc/ldap.secret(права доступа 0600 root) секретное_слово Создаем символические ссылки #ln -s /usr/local/etc/ldap.conf /usr/local/etc/openldap/ldap.conf #ln -s /usr/local/etc/ldap.secret /usr/local/etc/openldap/ldap.secret #ln -s /usr/local/etc/ldap.conf /usr/local/etc/nss_ldap.conf #ln -s /usr/local/etc/ldap.secret /usr/local/etc/nss_ldap.secret Настройка smbldap-tools usr\local\etc\smbldap-tools\smbldap.conf usr\local\etc\smbldap-tools\smbldap_bind.conf Для настройки необходимо #net getlocalsid Полученный SID вбиваем в файл smbldap.conf файл smbldap.conf SID="S-1-5-21-407154694-2210106921-3152988260" sambaDomain="KRISTALL" slaveLDAP="" slavePort="389" masterLDAP="" masterPort="389" ldapTLS="0" suffix="dc=kristall,dc=local" usersdn="ou=Users,${suffix}" computersdn="ou=Computers,${suffix}" groupsdn="ou=Groups,${suffix}" idmapdn="ou=Idmap,${suffix}" sambaUnixIdPooldn="sambaDomainName=${sambaDomain},${suffix}" scope="sub" # Если ставлю hash_encrypt="SSHA" то unix пользователя не пускает hash_encrypt="CRYPT" crypt_salt_format="%s" userLoginShell="/sbin/nologin" userHome="/home/%U" userHomeDirectoryMode="700" userGecos="System User" defaultUserGid="513" defaultComputerGid="515" skeletonDir="/usr/share/skel" defaultMaxPasswordAge="45" userSmbHome="\\freebsd\%U" userHomeDrive="H:" userScript="logon.bat" mailDomain="" with_smbpasswd="0" smbpasswd="/usr/bin/smbpasswd" with_slappasswd="1" slappasswd="/usr/local/sbin/slappasswd" файл smbldap_bind.conf slaveDN="cn=Manager,dc=kristall,dc=local" slavePw="секретное_слово" masterDN="cn=Manager,dc=kristall,dc=local" masterPw="секретное_слово" проверяем работу LDAP #netstat -a | grep LISTEN | grep ldap tcp4 0 0 *.ldaps *.* LISTEN tcp4 0 0 *.ldap *.* LISTEN Наполняем базу LDAP данными #smbldap-populate -a Administrator Посмотреть и исправить содержимое под ms windows можно программой Ldap administrator (адрес проекта Проверка Добавим unix пользователя #smbldap-useradd -m testuser1 #smbldap-passwd testuser1 Пробуем залогиниться в систему. Логинится, но пользователя не понимает, в командной строке [I have no name!@freebsd~]$ (Скорее всего не хватает прав.) Командой id проверяем принадлежность пользователя uid, gid #id testuser1 uid=1000(testuser1) gid=100(users) groupes=100(users) Удаляем тестового пользователя #smbldap-userdel -r testuser1 После всех этих телодвижений пользователь Administrator имеет все права в нашем домене. Добавлять и удалять пользователей можно при помощи утилит User manager for domains и Server manager for domains. Они доступны по адресу Для добавления админских привилегий в домене группе Domain Admins: - в файл smb.conf, секцию [global] добавить enable privileges = yes - командой #net rpc rights grant -U Administrator%секретное_слово 'KRISTALL\Domain Admins' SeAddUsersPrivilege #net rpc rights grant -U Administrator%секретное_слово 'KRISTALL\Domain Admins' SeMachineAccountPrivilege #net rpc rights grant -U Administrator%секретное_слово 'KRISTALL\Domain Admins' SeTakeOwnershipPrivilege #net rpc rights grant -U Administrator%секретное_слово 'KRISTALL\Domain Admins' SeBackupPrivilege #net rpc rights grant -U Administrator%секретное_слово 'KRISTALL\Domain Admins' SeRestorePrivilege #net rpc rights grant -U Administrator%секретное_слово 'KRISTALL\Domain Admins' SeRemoteShutdownPrivilege #net rpc rights grant -U Administrator%секретное_слово 'KRISTALL\Domain Admins' SePrintOperatorPrivilege #net rpc rights grant -U Administrator%секретное_слово 'KRISTALL\Domain Admins' SeDiskOperatorPrivilege Посмотреть назначенные привилегии net rpc rights list accounts -U Administrator%секретное_слово Добавим квоты на разделы - в конфигурации ядра включаем "options QUOTA" и пересобираем ядро. cd /usr/src/sys/i386/conf config FREEBSD cd /usr/src/sys/i386/compile/FREEBSD make depend make all make install - в /etc/rc.conf прописываем enable_quotas="YES" и check_quotas="YES" - указываем в /etc/fstab файловые системы, для которых будет включаться поддержка квот, например: /dev/da0s1e /home ufs rw,userquota,groupquota 2 2 - устанавливаем квоты для пользователей при помощи edquota, напр. "edquota user1" - если нужно установить одинаковые квоты для нескольких пользователей как у user1: edquota -p user1 startuid-enduid (квоты на диапазон uid) пример: edquota -p user1 1001-1999 Посмотреть квоты у всех: repquota -a (из под root) Использование ACL с Samba Конфигурируем ACL для каталога /usr(Команда df -> /dev/ad0s1a) Переводим систему в однопользовательский режим # shutdown now Enter full pathname of shell or RETURN for /bin/sh: # /sbin/umount /usr # /sbin/tunefs -a enable /dev/ad0s1f tunefs: ACLs set # /sbin/mount /usr Используйте свое имя устройства, которое вы посмотрели в выводе команды df. Теперь давайте проверим, как это работает: # /sbin/mount /dev/ad0s1a on / (ufs, local) devfs on /dev (devfs, local) /dev/ad0s1e on /tmp (ufs, local, soft-updates) /dev/ad0s1f on /usr (ufs, local, soft-updates, acls) /dev/ad0s1d on /var (ufs, local, soft-updates) И вернемся в многопользовательский режим: # exit Система готова к использованию ACL в Samba
Перевод домена WINDOWS 2003 на Samba 3 PDC LDAP FreeBSD 6.1 По мотивам Linux Samba-OpenLDAP Howto + собственный опыт. Итак, у нас есть домен: WIN2003 Netbios имя сервера: WIN2003_server Настройка Samba 3 PDC LDAP FreeBSD 6.1 Останавливаемся в месте Настройка smbldap-tools Net rpc getsid -S WIN2003_server WIN2003 Получаем sid домена винды Далее опять по статье Настройка Samba 3 PDC LDAP FreeBSD 6.1 В smb.conf ########### Workgroup = WIN2003 Domain master = No Preferred master = no Os level = 33 Local master = no ########### В файле lmhosts прописать виндовый сервер. ########### WIN2003_server WIN2003 ########### Загоняем samba в домен WIN2003 Net rpc join -Uadministrator%password Выдергиваем учетные записи пользователей и компов из домена. Пришлось переименовать логины пользователей по английски. Net rpc vampire -S WIN2003_server Останавливаем виндовый сервак. В smb.conf ########### Workgroup = WIN2003 Domain master = YES Preferred master = YES Os level = 255 Local master = YES ########### В файле lmhosts прописать samba сервер. Прибиваем ненужные нам виндовые группы. У меня сервер win2003 был русский. Пришлось группы Пользователи домена, Администраторы домена переименовывать по английски. Компы в домене пришлось вывести из домена и ввести снова в него же, профили пользователей при этом сохранились. P.S. Пишу по памяти, может чего нибудь и забыл.

<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>

Обсуждение [ RSS ]
  • 1.1, wanderer (??), 12:53, 15/07/2007 [ответить]  
  • +/
    Осталось придумать что с политиками делать.
  • 2.2, afd (?), 16:23, 15/07/2007 [^] [^^] [^^^] [ответить]  
  • +/
    >Осталось придумать что с политиками делать.
    Пересажать, как минимум =).А лучше расстрелять к такой-то матери ;)

  • 1.3, hm (??), 19:51, 19/07/2007 [ответить]  
  • +/
    да с групповыми политиками явно проблемы(
  • 1.4, Alex Povolotsky (?), 00:15, 10/03/2008 [ответить]  
  • +/
    Самба считает, что запись пользователя должна иметь objectClass SambaSAMAccount. smbldap-useradd устанавливает этот objectClass ТОЛЬКО для interdomain trust'ов.

    Это лыжи не едут или у меня smbldap неисправный?

  • 1.5, Ozz (?), 16:37, 04/04/2008 [ответить]  
  • +/
    # net rpc vampire -S jumbo
    Fetching DOMAIN database
    Failed to fetch domain database: NT code 0x1c010002
  • 1.6, KomaLex (??), 08:38, 09/04/2008 [ответить]  
  • +/
    А как быть с ДНС для поддержки домена?
  • 1.7, alonefox (ok), 20:41, 22/05/2008 [ответить]  
  • +/
    SRVTOOLS переехал с указанного в статье места.
    Вот текушее:

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

    Inferno Solutions
    Hosting by

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру