Контроллер домена Samba с базой данных в LDAP [2010]
От переводчика
Этот документ является переводом статьи рамещенной в сети интернет по адресу http://forums.freebsd.org/showthread.php?t=770. Считаю своим долгом дополнить данный материал пунктом 6, ибо статья без него не является законченным работоспособным решением. Данное решение было протестировано переводчиком в виртуальной среде vmware, в операционной системе FreeBSD 8.0.
1. Общая информация
В данном документе описана установка и настройка домена Samba на FreeBSD с базой данных в LDAP. Данная статья не позволит вам осуществлять соединения с сервером по протоколу ssh, описанная конфигурация позволит создать контроллер домена для клиентов windows.
2. Требования
Необходим shell доступ к серверу freebsd. Все операции должны выполняться от пользователя root.
3. Установка
Убедитесь что ваши порты обновлены перед установкой программ. Имя сервера serv01 Имя домена smbdomain.local FQDN имя serv01.smbdomain.local
#cat /etc/host
Содержимое файла /etc/hosts должно иметь вид ниже.
::1 localhost localhost.smbdomain.local
127.0.0.1 localhost localhost.smbdomain.local
192.168.50.195 serv01.smbdomain.local serv01
192.168.50.195 serv01.smbdomain.local.
Нам необходимо установить следующие порты:
/net/openldap24-server
/net/samba3
/net/nss_ldap
/net/smbldap-tools
3.1 Установим сервер базы Openldap
Примем опции установки по умолчанию.
# cd /usr/ports/net/openldap24-server
# make install clean
3.2 Установим сервер Samba
# cd /usr/ports/net/samba30
# make install clean
Выберем следующие опции для установки:
[X] LDAP With LDAP support
[X] ADS With Active Directory support
[X] CUPS With CUPS printing support
[X] WINBIND With WinBIND support
[X] ACL_SUPPORT With ACL support
[X] AIO_SUPPORT With Asyncronous IO support
[ ] FAM_SUPPORT With File Alteration Monitor
[X] SYSLOG With Syslog support
[X] QUOTAS With Disk quota support
[X] UTMP With UTMP accounting support
[ ] PAM_SMBPASS With PAM authentication vs passdb backends
[ ] CLUSTER With experimental cluster support
[ ] DNSUPDATE With dynamic DNS update(require ADS)
[ ] EXP_MODULES With experimental modules
[X] POPT With system-wide POPT library
[X] PCH With precompiled headers optimization
[ ] MAX_DEBUG With maximum debugging
[ ] SMBTORTURE With smbtorture
3.3 Установим nss_ldap
# cd /usr/ports/net/nss_ldap/
# make install clean
3.4 Установим smbldap-tools
# cd /usr/ports/net/smbldap-tools
# make install clean
4. Конфигурирование
4.1 Настройка openldap
Настроим конфигурационный файл openldap (/usr/local/etc/openldap/slapd.conf). Создадим пароль для доступа к серверу openldap.
# slappasswd -s very-secure-password
{SSHA}2pCGrVMhMh3cC+LakUXApebb9jwICf5e
Скопируем строку вывода, она нам понадобится. Теперь откроем наш конфигурационный файл
#vi usr/local/etc/openldap/slapd.conf
и приведем его к такому виду
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
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
Значение первого fxp0 необходимо заменить на имя вашего сетевого интерфейса, или закомментируйте эти две строки. Теперь создадим следующие директории netlogon, profiles, printer-drivers, директории общих ресурсов и дадим на них соответствующие права.
# mkdir /usr/local/samba/netlogon
# mkdir /usr/local/samba/profiles
# mkdir /usr/local/samba/printer-drivers
# mkdir /usr/local/samba/data
# chmod 777 /usr/local/samba/profiles
Командой testparm проверим наш файл smb.conf на ошибки.
# testparm /usr/local/etc/smb.conf
Мы должны увидеть что то подобное без ошибок.
Load smb config files from /usr/local/etc/smb.conf
Processing section "[netlogon]"
Processing section "[homes]"
Processing section "[Profiles]"
Processing section "[printers]"
Processing section "[print$]"
Processing section "[data]"
Loaded services file OK.
Server role: ROLE_DOMAIN_PDC
Press enter to see a dump of your service definitions
Теперь сохраним пароль к LDAP серверу в файле secret.tdb samba. Для этого остановим сервер LDAP.
/usr/local/etc/rc.d/slapd stop
Stopping slapd.
Waiting for PIDS: 49851.
# smbpasswd -w very-secure-password
Setting stored password for "cn=Manager,dc=smbdomain,dc=local" in secrets.tdb
Добавим в автозапуск системы запуск сервера samba.
# echo "#enable Samba" > /etc/rc.conf
# echo nmbd_enable="YES" > /etc/rc.conf
# echo smbd_enable="YES" > /etc/rc.conf
# echo winbindd_enable="YES" > /etc/rc.conf
# echo cupsd_enable="YES" > /etc/rc.conf
Запустим сервер samba.
# /usr/local/etc/rc.d/samba start
Removing stale Samba tdb files: ....... done
Starting nmbd.
Starting smbd.
Starting winbindd.
Проверим что сервер samba работает.
# ps -ax | grep mdb
1093 ?? Ss 0:00.03 /usr/local/sbin/nmbd -D -s /usr/local/etc/smb.conf
1095 ?? I 0:00.00 /usr/local/sbin/nmbd -D -s /usr/local/etc/smb.conf
1100 ?? Ss 0:00.01 /usr/local/sbin/smbd -D -s /usr/local/etc/smb.conf
Изменим стартовый конфигурационный скрипт samba добавив в зависимости slapd после cupsd во второй строке REQUIRE: как это сделано ниже
Настроим smbldap-tools. Запустим файл /usr/local/share/examples/smbldap-tools/configure.pl И будем отвечать на вопросы. Мной были добавлены [HIT ENTER] там где не нужно ничего менять, и [<--- NEEDS CHANGE] где требуются изменения. После вопроса ldap tls support (1/0) [0] будет пауза в работе скрипта, она связана с тем что скрипт пытается получить SID, это может занять несколько секунд.
Use of uninitialized value in concatenation (.) or string at /usr/local/share/examples/smbldap-tools/configure.pl line 314, /usr/local/etc/smbldap-tools/smbldap.conf.old