Установка Ubuntu 8.04.1 как Samba Domain Controller с LDAP (OpenLDAP)

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

Этот документ представляет собой пошаговое руководство по настройке 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* %nn *Retype*new*password* %nn *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

[netlogon]
comment = Network Logon Service
path = /home/samba/netlogon
guest ok = yes
read only = yes
share modes = no

сохраняем конфиг

проверяем конфиг самбы на наличине ошибок

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 и изменяем ее таким образом:

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
mkdir /home/samba/netlogon

затем открываем файл /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

Step 7: Populate LDAP using smbldap-tools

Теперь мы должны заполнить наш каталог LDAP
# Выполняем команду, чтобы заполнить каталог.

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_backup

# бекапим /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-groupmod -m test «Domain Admins»

удаление

smbldap-groupmod -x test «Domain Admins»

smbldap-usershow username # Просмотр информации о пользователе
smbldap-groupshow Administrators # Просмотр информации о группе
smbldap-userlist # Просмотр списка пользователей:
smbldap-userdel username # удаление пользователя (параметр –r удаляет домашнюю директорию )
smbldap-passwd # Изменение пароля пользователя
smbldap-userinfo # Изменение данных о пользователе (Полное имя, shell, телефоны и др.)
smbldap-groupadd # Добавление группы
smbldap-groupdel # Удаление группы

 

Материалы использованные в процессе настройки и написании этого манулала:

Форум http://forum.ubuntu.ru/

статья: Как настроить SAMBA в SUSE как PDC с OpenLDAP, DYNDNS и CLAM

ну и конечно всем известный портал по открытому ПО Linux, BSD и Unix Системам opennet.ru

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Закончите арифметическое действие * Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.