OpenLDAP + Samba == Domain Controller на Ubunt 8.0

Предисловие.

Этот документ представляет собой пошаговое руководство по настройке Ubuntu 8.04.1, как Samba Domain Controller с LDAP (OpenLDAP).

----------------------<cut>----------------------

Примечания перед установкой:
* 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 Системам

Комментарии

    Нет комментариев
комментарии
^ Наверх