OpenLDAP + Samba == Domain Controller на Ubunt 8.0
Предисловие.
Этот документ представляет собой пошаговое руководство по настройке Ubuntu 8.04.1, как Samba Domain Controller с LDAP (OpenLDAP).
Примечания перед установкой:
* hostname во время установки были установлен в: PDC
* полное доменное имя будет: pdc.matrix.local
* Моя область LDAP: matrix.local
* Все используемые пароли "12345", .
* я не использую TLS или SSL для моего справочника LDAP.
* пароль, который я назначал во время установки: 12345
1. Первоначальная установка
# Перед установкой рекомендуется «сделать» root'у пароль:
sudo passwd root
# следующие действия производим от рута
su –
# если не установлен ssh-server, то устанавливаем:
apt-get install openssh-server
# также для удобства я устанавливаю Midnight Commander
apt-get install mc
2: Устанавливаем OpenLDAP
apt-get install slapd ldap-utils migrationtools
# задаем пароль админу:
Admin password: 12345
Confirm password: 12345
# Теперь нам нужно сконфигурировать OpenLDAP:
dpkg-reconfigure slapd
# отвечаем на следующие вопросы так:
No # Не выполнять настройку сервера OpenLDAP?
DNS domain name: matrix.local # Доменное имя DNS:
Name of your organization: matrix.local # Название организации:
Admin password: 12345 # Пароль
Confirm password: 12345 # Подтверждение
OK
BDB # Используемые серверы баз данных:
No # Удалять базу данных при вычистке slapd?
Yes # Переместить старую базу данных?
No # Включить протокол LDAPv2?
# Рестартуем OpenLDAP.
/etc/init.d/slapd restart
# Если не возникло никаких ошибок переходим к установке Самбы
3: Устанавливаем SAMBA
# Устанавливаем необходимые пакеты для Самбы
apt-get install samba smbldap-tools smbclient samba-doc
4: Настраиваем OpenLDAP для использования с SAMBA
# Для того чтобы использовать LDAP и SAMBA, и нам необходимо настроить
/etc/ldap/slapd.conf
# Скопируем файл samba.schema в каталог /etc/ldap/schema/
cp /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz /etc/ldap/schema/
# а так как он запакованный с помошью gzip, распаковываем его
gzip -d /etc/ldap/schema/samba.schema.gz
# затем редактируем файл: /etc/ldap/slapd.conf
# добавляем cхемы :
include /etc/ldap/schema/samba.schema
include /etc/ldap/schema/misc.schema
# находим и изменяем строку access to attrs
# на такую:
access to attrs=userPassword,sambaNTPassword,sambaLMPassword
# сохраняем файл и рестартуем OpenLDAP
/etc/init.d/slapd restart
5: Конфигурируем SAMBA
# Переходим в каталог Самбы
cd /etc/samba/
# бекапим конфиг:
cp smb.conf smb.conf_backup
# затем редактируем файл smb.conf
# находим и изменяем следующие строки
workgroup = MATRIX
security = user
passdb backend = ldapsam:ldap://localhost/
obey pam restrictions = no
# затем вставляем следующий листинг:
#######################################################################
#COPY AND PASTE THE FOLLOWING UNDERNEATH "OBEY PAM RESTRICTIONS = NO"
#######################################################################
#
# Begin: Custom LDAP Entries
#
ldap admin dn = cn=admin,dc=matrix,dc=local
ldap suffix = dc=matrix, dc=local
ldap group suffix = ou=Groups
ldap user suffix = ou=Users
ldap machine suffix = ou=Computers
ldap idmap suffix = ou=Users
; Do ldap passwd sync
ldap passwd sync = Yes
passwd program = /usr/sbin/smbldap-passwd %u
passwd chat = *New*password* %n\n *Retype*new*password* %n\n *all*authentication*tokens*updated*
add user script = /usr/sbin/smbldap-useradd -m "%u"
ldap delete dn = Yes
delete user script = /usr/sbin/smbldap-userdel "%u"
add machine script = /usr/sbin/smbldap-useradd -w "%u"
add group script = /usr/sbin/smbldap-groupadd -p "%g"
delete group script = /usr/sbin/smbldap-groupdel "%g"
add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"
delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"
set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"
domain logons = yes
#
# End: Custom LDAP Entries
#
#####################################################
# При этом не забыв подставить свои значения в сторках (ldap admin dn и ldap suffix)
# закоментируем следующие строки:
invalid users = root
# и изменяем:
logon path =
#если нужно чтобы каждый пользователь имел свою директорию и мог туда записывать данные, находим и изменяем следующие строки (позже можно будет добавить и/или изменить другие шары)
[homes]
comment = Home Directories
browseable = no
read only = no
create mask = 0644
directory mask = 0755
# сохраняем конфиг
# проверяем конфиг самбы на наличине ошибок
testparm
# если все ОК рестартуем Самбу
/etc/init.d/samba restart
# Если есть ошибки открываем конфиг и ищем где ошиблись :)
# Далее задаем пользователю SAMBA "Admin" пароль для LDAP дерева.
smbpasswd -w 12345
6: Настраиваем SMBLDAP-Tools пакет
# Открываем директорию examples пакета smbldap-tools
cd /usr/share/doc/smbldap-tools/examples/
# копируем конфигурационные файлы в /etc/smbldap-tools
cp smbldap_bind.conf /etc/smbldap-tools/
cp smbldap.conf.gz /etc/smbldap-tools/
# распаковываем
gzip -d /etc/smbldap-tools/smbldap.conf.gz
# теперь идем в /etc/smbldap-tools
cd /etc/smbldap-tools/
# Получаем SID (идентификатор Безопасности) для нашего домена Samba.
net getlocalsid
# редактируем файл /etc/smbldap-tools/smbldap.conf
SID="S-1-5-21-3547352230-2808561415-2391782970"# (ВНИМАНИЕ! у вас SID будет отличаться от указанного здесь)
# Находим и изменяем в конфиге следующие строки
sambaDomain="MATRIX"
ldapTLS="0"
suffix="dc=matrix,dc=local"
sambaUnixIdPooldn="sambaDomainName=MATRIX,${suffix}"
userLoginShell="/bin/false"
userHome="/home/samba/profiles/%U"
userSmbHome=
userProfile=
userHomeDrive=
userScript=
mailDomain="matrix.local"
# создаем необходимые каталоги
mkdir /home/samba/
mkdir /home/samba/profiles
# затем открываем файл /etc/smbldap-tools/smbldap_bind.conf для редактирования
# и меняем следующие строки:
slaveDN="cn=admin,dc=matrix,dc=local"
slavePw="12345"
masterDN="cn=admin,dc=matrix,dc=local"
masterPw="12345"
# так как в этом файле пароли хранятся в открытом виде меняем парметры доступа
chmod 0600 /etc/smbldap-tools/smbldap_bind.conf
# ну и заодно
chmod 0644 /etc/smbldap-tools/smbldap.conf
7: Теперь мы должны заполнить наш каталог LDAP спомощью smbldap-tools
# Выполняем команду, чтобы заполнить каталог.
smbldap-populate -u 30000 -g 30000
# введите пароль для root:
12345
# Проверьте, что в каталоге есть информация, выполнив команду:
ldapsearch -x -b dc=matrix,dc=local | less
8: добавляем пользователя в систему LDAP
Настало время для нас, чтобы добавить пользователя LDAP. Мы будем использовать эту учетную запись пользователя для проверки работы LDAP.
smbldap-useradd -a -m –M test -c "Test User" test
# Здесь приведено описание параметров, которые мы использовали.
-a указывает что является пользователем Windows (в противном случае, только Posix)
-m создает домашнюю директорию пользователя
-M задает email пользователя
-c добавляет «Полное Имя» пользователя
# задаем пароль для нового пользователя
smbldap-passwd test
9: Конфигурирование сервера для использования аутентификации LDAP.
# Устанавливаем необходимое программное обеспечение:
apt-get install auth-client-config libpam-ldap libnss-ldap
# Отвечаем на вопросы следующим образом:
Should debconf manage LDAP configuration?: Yes
LDAP server Uniform Resource Identifier: ldapi://127.0.0.1
Distinguished name of the search base: dc=matrix,dc=local
LDAP version to use: 3
Make local root Database admin: Yes
Does the LDAP database require login? No
LDAP account for root: cn=admin,dc=matrix,dc=local
LDAP root account password: 12345
# Редактируем файл /etc/ldap.conf
# Настраиваем конфигурацию следующим образом:
host 127.0.0.1
base dc=matrix,dc=local
uri ldap://127.0.0.1/
rootbinddn cn=admin,dc=matrix,dc=local
bind_policy soft
# копируем файл /etc/ldap.conf в /etc/ldap/ldap.conf
но перед этим на всякий случай забекапим файл /etc/ldap/ldap.conf
cp /etc/ldap/ldap.conf /etc/ldap/ldap.conf_backup
cp /etc/ldap.conf /etc/ldap/ldap.conf
#создаем новый файл /etc/auth-client-config/profile.d/open_ldap
touch /etc/auth-client-config/profile.d/open_ldap
# И добавляем в него следующие строки:
[open_ldap]
nss_passwd=passwd: compat ldap
nss_group=group: compat ldap
nss_shadow=shadow: compat ldap
pam_auth=auth required pam_env.so
auth sufficient pam_unix.so likeauth nullok
auth sufficient pam_ldap.so use_first_pass
auth required pam_deny.so
pam_account=account sufficient pam_unix.so
account sufficient pam_ldap.so
account required pam_deny.so
pam_password=password sufficient pam_unix.so nullok md5 shadow use_authtok
password sufficient pam_ldap.so use_first_pass
password required pam_deny.so
pam_session=session required pam_limits.so
session required pam_mkhomedir.so skel=/etc/skel/
session required pam_unix.so
session optional pam_ldap.so
# бекапим файл /etc/nsswitch.conf
cp /etc/nsswitch.conf /etc/nsswitch.conf.original
# бекапим /etc/pam.d/ files
cd /etc/pam.d/
mkdir bkup
cp * bkup/
# Включаем LDAP аутентификацию профиля, выполнив команду:
auth-client-config -a -p open_ldap
# перезагружаем сервер.
reboot
ну вот вроде и все, если сделали все правильно должно работать.
В Заключение приведу несколько команд которые возможно понадобятся в процессе настройки и дальнейшей работы
# добавление записи workstation в LDAP
хотя в конфиге самбы мы добавили строку для автоматического добавления компьютера в LDAP, возможно вам понадобится сделать это вручную. Делаем это следующим образом:
smbldap-useradd -w client-winxp
smbldap-usershow username # Просмотр информации о пользователе
smbldap-groupshow Administrators # Просмотр информации о группе
smbldap-userlist # Просмотр списка пользователей:
smbldap-userdel username # удаление пользователя (параметр –r удаляет домашнюю директорию )
smbldap-passwd # Изменение пароля пользователя
smbldap-userinfo # Изменение данных о пользователе (Полное имя, shell, телефоны и др.)
smbldap-groupadd # Добавление группы
smbldap-groupdel # Удаление группы
Материалы использованные в процессе настройки и написании этого манулала:
http://www.rrcomputerconsulting.com/view.php?article_id=2 — статья OpenLDAP + Samba == Domain Controller
http://forum.ubuntu.ru/index.php?topic=10440.0 Форум
http://ru.opensuse.org/Howto_setup_SUSE_as_SAMBA_PDC_with_OpenLDAP,_DYNDNS_and_CLAM — статья: Как настроить SAMBA в SUSE как PDC с OpenLDAP, DYNDNS и CLAM
http://www.opennet.ru/ — ну и конечно всем известный портал по открытому ПО Linux, BSD и Unix Системам
Комментарии










