Данный сайт создан с целью помочь начинающим системным администраторам в установке и настройке программного обеспечения. Ну и как памятка для себя.
Показаны сообщения с ярлыком samba. Показать все сообщения
Показаны сообщения с ярлыком samba. Показать все сообщения
воскресенье, декабря 14, 2008
пятница, октября 17, 2008
man smb.conf RU
понедельник, сентября 08, 2008
вторник, августа 26, 2008
понедельник, августа 25, 2008
пятница, августа 17, 2007
четверг, августа 16, 2007
среда, июля 18, 2007
вторник, июля 17, 2007
Перевод man smb.conf продолжение следует
Перевод перенесен на отдельный сайт, man smb.conf по-русски.
понедельник, июля 16, 2007
пятница, июля 13, 2007
понедельник, апреля 09, 2007
Перевод домена с samba smbpasswd на samba ldap freebsd
1. В файл smb.conf старого сервака
убираете строку
smb passwd file = /etc/samba/smbpasswd
добавляете строку
passdb backend = tdbsam:/etc/samba/private/passdb.tdb smbpasswd:/etc/samba/smbpasswd
Местоположение файлов у вас может отличаться
После перезагрузки место хранения аккаунтов изменится на passdb.tdb
2. Снова меняем smb.conf
passdb backend = tdbsam:/etc/samba/private/passdb.tdb
3. Далее читаем здесь http://argo-uln.blogspot.com/2007/03/samba-tdbsamtdb-linux-samba-ldap.html (Перевод домена с samba tdbsam.tdb linux на samba ldap freebsd)
P.S. Более подробно смотрим ресурс Все о Samba
убираете строку
smb passwd file = /etc/samba/smbpasswd
добавляете строку
passdb backend = tdbsam:/etc/samba/private/passdb.tdb smbpasswd:/etc/samba/smbpasswd
Местоположение файлов у вас может отличаться
После перезагрузки место хранения аккаунтов изменится на passdb.tdb
2. Снова меняем smb.conf
passdb backend = tdbsam:/etc/samba/private/passdb.tdb
3. Далее читаем здесь http://argo-uln.blogspot.com/2007/03/samba-tdbsamtdb-linux-samba-ldap.html (Перевод домена с samba tdbsam.tdb linux на samba ldap freebsd)
P.S. Более подробно смотрим ресурс Все о Samba
пятница, марта 23, 2007
Как добавить в сетевое окружение домен из другой подсети?
Имееем два удаленных домена. Поднимаем vpn туннель между локалками.
IP одного сервера 192.168.1.2, другого 192.168.160.8
В файл smb.conf сервера 192.168.1.2 добавим строку
remote browse sync = 192.168.160.8
В файл smb.conf сервера 192.168.160.8 добавим строку
remote browse sync = 192.168.1.2
В сетевом окружении появятся компьютеры другого домена.
Для разрешения имен необходимо настроить DNS и DHCP.
Данный процесс неплохо описан в статье
l2amid.narod.ru/unix/bind.html
P.S. Более подробно смотрим ресурс Все о Samba
IP одного сервера 192.168.1.2, другого 192.168.160.8
В файл smb.conf сервера 192.168.1.2 добавим строку
remote browse sync = 192.168.160.8
В файл smb.conf сервера 192.168.160.8 добавим строку
remote browse sync = 192.168.1.2
В сетевом окружении появятся компьютеры другого домена.
Для разрешения имен необходимо настроить DNS и DHCP.
Данный процесс неплохо описан в статье
l2amid.narod.ru/unix/bind.html
P.S. Более подробно смотрим ресурс Все о Samba
Перевод домена с samba tdbsam.tdb linux на samba ldap freebsd
Решение было найдено в форуме на opennet.ru.
Для просмотра и редактирования LDAP ставим /usr/ports/net/phpldapadmin098
1. На серваке с linux делаем
pdbedit -e tdbsam:/tmp/tdbsam.tdb
2. Переносим файл на freebsd.
3. Берем с Linux файл пользователей passwd переносим на freebsd,
например в папку /tmp
4. Убираем из файла passwd системных пользователей.
5. Приводим файл passwd к формату master.passwd. Пароли пользователей
нам не понадобятся, можно вбить *. Пример:
user:*:1003:513::0:0:User:/home/user:/sbin/nologin
6. На новом сервере настраиваем samba+ldap
7. Меняем sid домена на sid старого сервера.
Получить sid домена:
Net rpc getsid –S ИМЯ_СЕРВЕРА ИМЯ_ДОМЕНА
Изменить sid домена:
net setlocalsid S-1-5-21-XXXXXX-XXXXXXXXX-XXXXXXXX
8. /usr/local/sbin/smbldap-migrate-unix-accounts –M /tmp/passwd
9. Импортируем в LDAP пользователей
pdbedit –i tdbsam:/tmp/tdbsam.tdb
10. Создаем домашние каталоги для пользователей /home/user, права 700
11. Компьютеры все равно приходится выводить и вводить в этот же домен.
Профили пользователей сохраняются.
12. Обратите внимание! В редакторе LDAP в контейнере sambaDomainName=ИМЯ_ВАШЕГО_ДОМЕНА есть запись uidNumber. Ее нужно установить равной uid вашего последнего импортированного пользователя.
После этого я создал тестового пользователя, и в контейнере sambaDomainName=ИМЯ_ВАШЕГО_ДОМЕНА появилась запись sambaNextRid.
Ее я установил в 3000. Необходимо найти последнего созданного пользователя или компьютер в старом домене и установить значение sambaNextRid больше чем последние четыре цифры sambaSID этого пользователя.
P.S. Более подробно смотрим ресурс Все о Samba
Для просмотра и редактирования LDAP ставим /usr/ports/net/phpldapadmin098
1. На серваке с linux делаем
pdbedit -e tdbsam:/tmp/tdbsam.tdb
2. Переносим файл на freebsd.
3. Берем с Linux файл пользователей passwd переносим на freebsd,
например в папку /tmp
4. Убираем из файла passwd системных пользователей.
5. Приводим файл passwd к формату master.passwd. Пароли пользователей
нам не понадобятся, можно вбить *. Пример:
user:*:1003:513::0:0:User:/home/user:/sbin/nologin
6. На новом сервере настраиваем samba+ldap
7. Меняем sid домена на sid старого сервера.
Получить sid домена:
Net rpc getsid –S ИМЯ_СЕРВЕРА ИМЯ_ДОМЕНА
Изменить sid домена:
net setlocalsid S-1-5-21-XXXXXX-XXXXXXXXX-XXXXXXXX
8. /usr/local/sbin/smbldap-migrate-unix-accounts –M /tmp/passwd
9. Импортируем в LDAP пользователей
pdbedit –i tdbsam:/tmp/tdbsam.tdb
10. Создаем домашние каталоги для пользователей /home/user, права 700
11. Компьютеры все равно приходится выводить и вводить в этот же домен.
Профили пользователей сохраняются.
12. Обратите внимание! В редакторе LDAP в контейнере sambaDomainName=ИМЯ_ВАШЕГО_ДОМЕНА есть запись uidNumber. Ее нужно установить равной uid вашего последнего импортированного пользователя.
После этого я создал тестового пользователя, и в контейнере sambaDomainName=ИМЯ_ВАШЕГО_ДОМЕНА появилась запись sambaNextRid.
Ее я установил в 3000. Необходимо найти последнего созданного пользователя или компьютер в старом домене и установить значение sambaNextRid больше чем последние четыре цифры sambaSID этого пользователя.
P.S. Более подробно смотрим ресурс Все о Samba
среда, января 31, 2007
Перевод домена 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
###########
В файле lmhosts прописать виндовый сервер.
###########
192.168.0.1 WIN2003_server
192.168.0.1 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. Пишу по памяти, может чего нибудь и забыл.
Более подробно смотрим ресурс Все о Samba
Итак, у нас есть домен: 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
###########
В файле lmhosts прописать виндовый сервер.
###########
192.168.0.1 WIN2003_server
192.168.0.1 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. Пишу по памяти, может чего нибудь и забыл.
Более подробно смотрим ресурс Все о Samba
понедельник, августа 28, 2006
Настройка Samba 3 PDC LDAP FreeBSD 6.1
Когда то мною была написана эта статья. На нее до сих пор ссылаются поисковики. На сегодня она несколько устарела, поэтому я перевел и дополнил другую статью. Полностью рабочее и проверенное решение, читаем: Контроллер домена Samba с базой данных в LDAP
Пишу по мотивам Linux Samba-OpenLDAP Howto
Также использована статья Установка_Samba_3_PDC_плюс_LDAP_на_FreeBSD
Установка дисковых квот в FreeBSD www.opennet.ru/tips/info/446.shtml
Использование ACL в FreeBSD dreamcatcher.ru/docs/freebsd_acl.html
Из портов ставим
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)
добавим в файл /etc/rc.conf
файл /usr/local/etc/smb.conf
Пароль к LDAP серверу для samba
#smbpasswd -w секретное_слово
Создаем шары самбы
В ms windows создаем файл logon.bat
кладем его в папку /home/samba/netlogon
chmod 1777 /home/samba/profiles
Тест файла конфигурации samba
#testparm
Настраиваем NSS
файл /etc/nsswitch.conf (права доступа 0600 root)
файл /etc/pam.d/system
файл /usr/local/etc/ldap.conf
файл /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
файл smbldap_bind.conf
проверяем работу 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 (адрес проекта www.openldap.org)
Проверка
Добавим 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.
Они доступны по адресу ftp://ftp.microsoft.com/Softlib/MSLFILES/SRVTOOLS.EXE
Для добавления админских привилегий в домене группе Domain Admins:
- в файл smb.conf, секцию [global] добавить
enable privileges = yes
- командой
Посмотреть назначенные привилегии
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
P.S. Более подробно смотрим ресурс Все о Samba
Пишу по мотивам Linux Samba-OpenLDAP Howto
Также использована статья Установка_Samba_3_PDC_плюс_LDAP_на_FreeBSD
Установка дисковых квот в FreeBSD www.opennet.ru/tips/info/446.shtml
Использование ACL в FreeBSD dreamcatcher.ru/docs/freebsd_acl.html
Из портов ставим
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/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
добавим в файл /etc/rc.conf
slapd_enable="YES"
slapd_flags='-h "ldapi://%2fvar%2frun%2fopenldap%2fldapi/ ldap://0.0.0.0/ ldaps://0.0.0.0/"'
slapd_sockets="/var/run/openldap/ldapi"
samba_enable="YES"
файл /usr/local/etc/smb.conf
[global]
workgroup = KRISTALL
netbios name = FREEBSD
enable privileges = yes
interfaces = 192.168.100.1/24
# 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://127.0.0.1/
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 pam_opie.so no_warn no_fake_prompts
auth requisite pam_opieaccess.so no_warn allow_local
#auth sufficient pam_krb5.so no_warn try_first_pass
#auth sufficient pam_ssh.so no_warn try_first_pass
#auth required pam_unix.so no_warn try_first_pass nullok
auth sufficient pam_unix.so no_warn try_first_pass nullok
auth required /usr/local/lib/pam_ldap.so use_first_pass
# account
#account required pam_krb5.so
account required pam_login_access.so
account required pam_unix.so
# session
#session optional pam_ssh.so
session required pam_lastlog.so no_fail
# password
#password sufficient pam_krb5.so no_warn try_first_pass
password required pam_unix.so no_warn try_first_pass
файл /usr/local/etc/ldap.conf
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 пользователя не пускает
# В файл \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="127.0.0.1"
slavePort="389"
masterLDAP="127.0.0.1"
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 (адрес проекта www.openldap.org)
Проверка
Добавим 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.
Они доступны по адресу ftp://ftp.microsoft.com/Softlib/MSLFILES/SRVTOOLS.EXE
Для добавления админских привилегий в домене группе 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
P.S. Более подробно смотрим ресурс Все о Samba
вторник, июля 25, 2006
SQUID с winbind (ntlm,basic) авторизацией
Сначала SAMBA (я ставлю 2)
./configure --with-winbind --with-winbind-auth-challenge --without-cups
make install
cd /usr/local/samba/lib
ee smb.conf
Содержимое smb.conf
workgroup=WORK - Имя нашего Windows-домена
netbios name=PDC - Имя сервера (необязательно)
server string=ProxyServer
hosts allow=10.128. 127. - Для безопасности.
winbind separator=+
winbind use default domain = no
winbind uid = 10000-20000
winbind gid = 10000-20000
winbind enum users = yes
winbind enum groups = yes
template homedir = /home/winnt/%D/%U
template shell = /bin/bash
max log size = 50
security = domain
password server = Primary Exch - серверы паролей (PDC, BDC)
encrypt passwords = yes
cd /usr/local/etc/rc.d
ee winbindd.sh
содержимое winbindd.sh
#!/bin/sh
/usr/local/samba/bin/winbindd
После изменения smb.conf можно попробовать зарегестрироваться в домене Windows.
smbpasswd -j WORK (наш домен) -r Primary(наш PDC) -U Administrator
Необходимо чтобы первый вход с компьютера с samba был осуществлен из-под пользователя домена windows, имеющего права администратора домена. В этот момент происходит обмен секретами между samba и контроллером домена.
Если регистрация в домене прошла успешно, будет выдано сообщение: Joined domain YourDomain.
Далее запускаем демона WINBINDD: winbindd -d9 и контролируем его работу:
команда wbinfo -p должна вернуть: 'ping' to winbindd succeeded
команда wbinfo -t должна вернуть: "Secret is good".
В кронтаб (/etc/crontab) добавить ежедневное обновление аккаунта в домене
0 12 1-31 * 0-6 root /usr/local/samba/bin/smbpasswd -t NANE_WIN_DOMAIN -r NAME_PDS
Теперь SQUID
тянем последний SQUID
./configure --enable-delay-pools --enable-auth="ntlm,basic" --enable-basic-auth-helpers="winbind" --enable-ntlm-auth-helpers="fakeauth" --with-samba-sourses=/usr/local/src/samba (путь к исходникам установленной самбы)
make
make install
Тестируем авторизатор SQUID
/usr/local/squid/libexec/wb_auth -d
потом вводим
WIN_DOMAIN+USERNAME USER_PASSWORD
если все хорошо то результат что-то подобное
wb_auth[91945](wb_basic_auth.c:55): winbindd result: 1
wb_auth[91945](wb_basic_auth.c:58\): sending 'OK' to squid
cd /usr/local/bin/etc/rc.d
ee squid.sh
содержание squid.sh
#!/bin/sh
/usr/local/squid/sbin/squid
cd /usr/local/squid/etc правим squid.conf
# добавить в раздел auth_param
auth_param ntlm program /usr/local/squid//libexec/fakeauth_auth
auth_param ntlm children 5
auth_param ntlm max_challenge_reuses 0
auth_param ntlm max_challenge_lifetime 2 minutes
auth_param basic program /usr/local/squid/libexec/wb_auth
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
# добавить в раздел ACCESS CONTROLS
acl password proxy_auth REQUIRED
# добавить в раздел TAG: http_access
http_access allow password
# добавить в раздел TAG: cache_effective_user
cache_effective_user www
# добавить в раздел TAG: forwarded_for on|off
forwarded_for off
cd /usr/local/squid/var
создать папку cache, хозяин www
у папки logs хозяин www
Создаем кеш SQUID
squid -z
Запускаем SQUID, пробуем
P.S. Более подробно смотрим ресурс Все о Samba
./configure --with-winbind --with-winbind-auth-challenge --without-cups
make install
cd /usr/local/samba/lib
ee smb.conf
Содержимое smb.conf
workgroup=WORK - Имя нашего Windows-домена
netbios name=PDC - Имя сервера (необязательно)
server string=ProxyServer
hosts allow=10.128. 127. - Для безопасности.
winbind separator=+
winbind use default domain = no
winbind uid = 10000-20000
winbind gid = 10000-20000
winbind enum users = yes
winbind enum groups = yes
template homedir = /home/winnt/%D/%U
template shell = /bin/bash
max log size = 50
security = domain
password server = Primary Exch - серверы паролей (PDC, BDC)
encrypt passwords = yes
cd /usr/local/etc/rc.d
ee winbindd.sh
содержимое winbindd.sh
#!/bin/sh
/usr/local/samba/bin/winbindd
После изменения smb.conf можно попробовать зарегестрироваться в домене Windows.
smbpasswd -j WORK (наш домен) -r Primary(наш PDC) -U Administrator
Необходимо чтобы первый вход с компьютера с samba был осуществлен из-под пользователя домена windows, имеющего права администратора домена. В этот момент происходит обмен секретами между samba и контроллером домена.
Если регистрация в домене прошла успешно, будет выдано сообщение: Joined domain YourDomain.
Далее запускаем демона WINBINDD: winbindd -d9 и контролируем его работу:
команда wbinfo -p должна вернуть: 'ping' to winbindd succeeded
команда wbinfo -t должна вернуть: "Secret is good".
В кронтаб (/etc/crontab) добавить ежедневное обновление аккаунта в домене
0 12 1-31 * 0-6 root /usr/local/samba/bin/smbpasswd -t NANE_WIN_DOMAIN -r NAME_PDS
Теперь SQUID
тянем последний SQUID
./configure --enable-delay-pools --enable-auth="ntlm,basic" --enable-basic-auth-helpers="winbind" --enable-ntlm-auth-helpers="fakeauth" --with-samba-sourses=/usr/local/src/samba (путь к исходникам установленной самбы)
make
make install
Тестируем авторизатор SQUID
/usr/local/squid/libexec/wb_auth -d
потом вводим
WIN_DOMAIN+USERNAME USER_PASSWORD
если все хорошо то результат что-то подобное
wb_auth[91945](wb_basic_auth.c:55): winbindd result: 1
wb_auth[91945](wb_basic_auth.c:58\): sending 'OK' to squid
cd /usr/local/bin/etc/rc.d
ee squid.sh
содержание squid.sh
#!/bin/sh
/usr/local/squid/sbin/squid
cd /usr/local/squid/etc правим squid.conf
# добавить в раздел auth_param
auth_param ntlm program /usr/local/squid//libexec/fakeauth_auth
auth_param ntlm children 5
auth_param ntlm max_challenge_reuses 0
auth_param ntlm max_challenge_lifetime 2 minutes
auth_param basic program /usr/local/squid/libexec/wb_auth
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
# добавить в раздел ACCESS CONTROLS
acl password proxy_auth REQUIRED
# добавить в раздел TAG: http_access
http_access allow password
# добавить в раздел TAG: cache_effective_user
cache_effective_user www
# добавить в раздел TAG: forwarded_for on|off
forwarded_for off
cd /usr/local/squid/var
создать папку cache, хозяин www
у папки logs хозяин www
Создаем кеш SQUID
squid -z
Запускаем SQUID, пробуем
P.S. Более подробно смотрим ресурс Все о Samba
Подписаться на:
Сообщения (Atom)
