From: argo <http://argo-uln.blogspot.com>
Date: Mon, 27 Feb 2007 14:31:37 +0000 (UTC)
Subject: Настройка Samba 3 PDC и перевод домена WINDOWS 2003 на Samba 3.
Пишу по мотивам Linux Samba-OpenLDAP Howto
Также использована статья rrv.jino-net.ru/Samba3.htm
Установка дисковых квот в FreeBSD www.opennet.ru/tips/info/446.shtml
Использование ACL в FreeBSD dreamcatcher.ru/docs/freebsd_acl.html
содержимое файла
/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/slapd.pid
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
host 127.0.0.1
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 пользователя не пускает
# В файл usrlocaletcsmbldap-toolssmbldap.conf
# также ставим CPYPT
pam_password CRYPT
# Обратите внимание без следующих двух строчек LDAP сервер
# нормально не стартует
bind_timelimit 10
bind_policy soft
файл /usr/local/etc/ldap.secret(права доступа 0600 root)
секретное_слово
После всех этих телодвижений пользователь Administrator
имеет все права в нашем домене.
Добавлять и удалять пользователей можно при помощи утилит
User manager for domains и Server manager for domains.
Они доступны по адресу
ftp://ftp.microsoft.com/Softlib/MSLFILES/SRVTOOLS.EXE
Для добавления админских привилегий в домене группе Domain Admins:
- в файл smb.conf, секцию [global] добавить
enable privileges = yes
- командой
#net rpc rights grant -U Administrator%секретное_слово
'KRISTALLDomain Admins' SeAddUsersPrivilege
#net rpc rights grant -U Administrator%секретное_слово
'KRISTALLDomain Admins' SeMachineAccountPrivilege
#net rpc rights grant -U Administrator%секретное_слово
'KRISTALLDomain Admins' SeTakeOwnershipPrivilege
#net rpc rights grant -U Administrator%секретное_слово
'KRISTALLDomain Admins' SeBackupPrivilege
#net rpc rights grant -U Administrator%секретное_слово
'KRISTALLDomain Admins' SeRestorePrivilege
#net rpc rights grant -U Administrator%секретное_слово
'KRISTALLDomain Admins' SeRemoteShutdownPrivilege
#net rpc rights grant -U Administrator%секретное_слово
'KRISTALLDomain Admins' SePrintOperatorPrivilege
#net rpc rights grant -U Administrator%секретное_слово
'KRISTALLDomain 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
http://argo-uln.blogspot.com/2006/08/samba-3-pdc-ldap-freebsd-61.html
Останавливаемся в месте Настройка 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
###########