Добрый день.
Устанавливаю Samba для авторизации в домене Win2k3. Параллельно читаю доки и форум. Запутался немного.Для включения FreeBSD (6.2) в домен Win2k3 (native) необходимы пакеты Kerberos5 (установил heimdal-0.7.2_2, настроил по статье из последнего "Системного Администратора"), установил также openldap-client-2.3.27 (его никак не конфигурирую). Скачал свежий пакет Samba, сказал
# make config
выбрал режимы ADS LDAP WINBIND, ну и другие по умолчанию оставил.
# make
# make installТеперь по http://us4.samba.org/samba/docs/man/Samba-HOWTO-Collection/w... нужно настроить WINBIND. Вот тут мне не ясно, что для этого нужно? PAM я никак не настраивал, ничего не трогал. nsswitch.conf тоже не трогал.
Нужно ли PAM как то настраивать?
Что прописывать в nsswitch.conf?
если "wbinfo -u" "wbinfo -a user%password" работает, то настраиваем nsswitch.conf:
group: files winbind
passwd: files winbindзаодно проверяем наличие nss_winbind.so.1
проверяем: pw usershow -a
если пользователи видны, то можно уже настраивать pam для соответствующего сервиса:
В общем случае что-то типа:
auth sufficient pam_unix.so no_warn try_first_pass
auth required /usr/local/lib/pam_winbind.so
>если "wbinfo -u" "wbinfo -a user%password" работает, то настраиваем nsswitch.conf:
>group: files winbind
>passwd: files winbind
>
>заодно проверяем наличие nss_winbind.so.1
>
>проверяем: pw usershow -a
>если пользователи видны, то можно уже настраивать pam для соответствующего сервиса:
>В общем случае что-то типа:
>auth sufficient pam_unix.so
> no_warn try_first_pass
>auth required
>/usr/local/lib/pam_winbind.soНастройка PAM для соответствующего сервиса - это в /etc/pam.d/ добавить файл с настройками и соответствующий модуль?... А модуль создается при компиляции сервиса с поддержкой PAM, правильно?
И еще... Если пакет, самба, к примеру, уже установлена, каким образом можно узнать, с какими опциями она была сконфигурирована?... Не удалять же пакет и заново конфигурировать и устанавливать.
>Настройка PAM для соответствующего сервиса - это в /etc/pam.d/ добавить файл с
>настройками и соответствующий модуль?... А модуль создается при компиляции сервиса с
>поддержкой PAM, правильно?совершенно верно, в общем виде pam-модуль это pam_что-то.so.?, лежащий в /usr/lib или /usr/local/lib
>И еще... Если пакет, самба, к примеру, уже установлена, каким образом можно
>узнать, с какими опциями она была сконфигурирована?... Не удалять же пакет
>и заново конфигурировать и устанавливать.Наверное, самое простое - это ldd, к примеру:
ldd saslauthd
libgssapi.so.8 => /usr/lib/libgssapi.so.8 (0x2807f000)
libkrb5.so.8 => /usr/lib/libkrb5.so.8 (0x2808d000)
libasn1.so.8 => /usr/lib/libasn1.so.8 (0x280c1000)
libcrypto.so.4 => /lib/libcrypto.so.4 (0x280e2000)
libroken.so.8 => /usr/lib/libroken.so.8 (0x281d4000)
libcrypt.so.3 => /lib/libcrypt.so.3 (0x281e0000)
libcom_err.so.3 => /usr/lib/libcom_err.so.3 (0x281f8000)
libpam.so.3 => /usr/lib/libpam.so.3 (0x281fa000)
libc.so.6 => /lib/libc.so.6 (0x28201000)
Видно, что saslauthd собран с поддержкой Kerberos и pam
>>Настройка PAM для соответствующего сервиса - это в /etc/pam.d/ добавить файл с
>>настройками и соответствующий модуль?... А модуль создается при компиляции сервиса с
>>поддержкой PAM, правильно?
>
>совершенно верно, в общем виде pam-модуль это pam_что-то.so.?, лежащий в /usr/lib или
>/usr/local/lib
>
>>И еще... Если пакет, самба, к примеру, уже установлена, каким образом можно
>>узнать, с какими опциями она была сконфигурирована?... Не удалять же пакет
>>и заново конфигурировать и устанавливать.
>
по поводу определения опций - нашел, что при установке из портов в /var/db/ports/ создается папка с именем установленного порта, а в ней файл OPTIONS со всеми настройками.По поводу WINBIND. Самбу я установил, стартует с поддержкой winbind. Билет Kerberos я получаю, в домен командой
net ads join -U user -w DOMAIN.LOCAL присоединился нормально. Теперь:
wbinfo -a user%password выдает кучу ошибок о неправильном формате nsswitch - говорит, что compat используется с другими источниками:
Feb 5 11:55:56 gate kinit: NSSWITCH(nsparser): /etc/nsswitch.conf line 5: 'compat' used with other sources
Feb 5 11:55:56 gate kernel: Feb 5 11:55:56 gate kinit: NSSWITCH(nsparser): /etc/nsswitch.conf line 5: 'compat' used with other sourcesВот мой nsswitch.conf (пока я его не правил)... При добавлении WINBIND получал ошибки.
group: compat
group_compat: nis
hosts: files dns
networks: files
passwd: compat
passwd_compat: nis
shells: files
>по поводу определения опций - нашел, что при установке из портов в
>/var/db/ports/ создается папка с именем установленного порта, а в ней файл
>OPTIONS со всеми настройками.
Это если собирать из портов, а если уже готовый пакадж? Только ldd>По поводу WINBIND. Самбу я установил, стартует с поддержкой winbind.
Если только для авторизации, то воообще достаточно только одного winbindd_enable="YES"
>
>Вот мой nsswitch.conf (пока я его не правил)... При добавлении WINBIND получал
>ошибки.
>group: compat
>group_compat: nis
>hosts: files dns
>networks: files
>passwd: compat
>passwd_compat: nis
>shells: files
Заменить:
group: files winbind
passwd: files winbind
>>по поводу определения опций - нашел, что при установке из портов в
>>/var/db/ports/ создается папка с именем установленного порта, а в ней файл
>>OPTIONS со всеми настройками.
>Это если собирать из портов, а если уже готовый пакадж? Только ldd
>
>
>>По поводу WINBIND. Самбу я установил, стартует с поддержкой winbind.
>Если только для авторизации, то воообще достаточно только одного winbindd_enable="YES"
>>>Заменить:
>group: files winbind
>passwd: files winbindДля подключения к домену используется следующий алгоритм:
# kinit admin@DOMAIN.RU
# net ads join -U admin -w DOMAIN.RUЧто делать после перезагрузки сервера?.. или когда срок действия билета истечет?
>Для подключения к домену используется следующий алгоритм:
># kinit admin@DOMAIN.RU
># net ads join -U admin -w DOMAIN.RU
>
>Что делать после перезагрузки сервера?.. или когда срок действия билета истечет?Ничего не делать, все будет работать, только сильно желательно периодически синхронизировать время на контроллере и на samba-машине. Проще всего, как мне кажется, засунуть rdate в crontab.
Если будете пользовать winbind для авторизации, обратите внимание, что в некоторых версиях либу winbind-а надо ложить руками в /usr/lib, иначе он ее видеть не будет. Ldconfig тут не поможет, видать где-то по сырцам девелоперы загнали руками.
>Если будете пользовать winbind для авторизации, обратите внимание, что в некоторых версиях
>либу winbind-а надо ложить руками в /usr/lib, иначе он ее видеть
>не будет. Ldconfig тут не поможет, видать где-то по сырцам девелоперы
>загнали руками.Есть pam_winbind.so в /usr/local/lib. Оно?
По поводу автоматического старта - что-то у меня не получается... Буду перечитывать маны.
>>Если будете пользовать winbind для авторизации, обратите внимание, что в некоторых версиях
>>либу winbind-а надо ложить руками в /usr/lib, иначе он ее видеть
>>не будет. Ldconfig тут не поможет, видать где-то по сырцам девелоперы
>>загнали руками.
>
>Есть pam_winbind.so в /usr/local/lib. Оно?
>По поводу автоматического старта - что-то у меня не получается... Буду перечитывать
>маны.Да.
[root@ackinak-mob.bsd] /root/:ll /usr/lib | grep winbi
lrwxr-xr-x 1 root wheel 29 5 май 2006 pam_winbind.so -> /usr/local/lib/pam_winbind.so
[root@ackinak-mob.bsd] /root/:
Помогите разобраться с настройкой. Какие еще файлы править? Как настроить PAM для winbind?Я пока что поправил файл other:
# cat /etc/pam.d/other
#
# $FreeBSD: src/etc/pam.d/other,v 1.10 2003/04/30 21:57:54 markm Exp $
#
# PAM configuration for the "other" service
## auth
auth required pam_nologin.so no_warn
auth required /usr/lib/pam_winbind.so
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 /usr/lib/pam_winbind.so use_first_pass shadow nullok
auth required pam_unix.so no_warn try_first_passaccount required /usr/lib/pam_winbind.so
# session
session required pam_permit.so# password
password required pam_permit.soВот мой smb.conf
# cat /usr/local/etc/smb.conf
[global]
................................
workgroup = DOMAIN
realm = DOMAIN.LOCAL
server string = Интернет сервер
interfaces = 192.168.0.1/24
security = ADS
auth methods = winbind
lanman auth = No
ntlm auth = No
client NTLMv2 auth = Yes
client lanman auth = No
client plaintext auth = No
log level = 10 ads:10
log file = /var/log/samba/log.%m
max log size = 50
max xmit = 65535
client signing = Yes
server signing = Yes
deadtime = 5
paranoid server security = No
preferred master = No
local master = No
domain master = No
dns proxy = No
ldap ssl = no
winbind separator = +
winbind enum users = Yes
winbind enum groups = Yes
winbind use default domain = Yes
winbind refresh tickets = Yes
inherit acls = Yes
hosts allow = 192.168.0., 127.
map acl inherit = Yes
hide special files = Yes
map archive = No
store dos attributes = Yes
wide links = No
template shell = /usr/local/bin/bash
idmap uid = 10000-20000
idmap gid = 10000-20000# net ads testjoin
Join is OK#wbinfo -u
выдает список пользователей домена#pw usershow -a
тоже отображает пользователей и локальных, и доменных.Остался PAM для Samba и для Squid
Так как я пользуюполностью виндовую авторизацию у себя у меня во всех pam-овских файлах одно и тоже:
[root@ackinak-mob.bsd] /root/:less /etc/pam.d/login
#
# $FreeBSD: src/etc/pam.d/sshd,v 1.15 2003/04/30 21:57:54 markm Exp $
#
# PAM configuration for the "sshd" service
#
# auth
auth required pam_nologin.so no_warm
auth sufficient pam_winbind.so
auth sufficient pam_opie.so no_warm no_fake_prompts
auth requisite pam_opieaccess.so no_warm allow_local
auth required pam_unix.so no_warm try_first_pass
# account
account sufficient pam_winbind.so
account required pam_unix.so
# session
session required pam_permit.so