Примечания перед установкой:
* hostname во время установки был установлен в: glenmorangie
* полное доменное имя будет: glenmorangie.company.ru
* Моя область LDAP: company.ru
* Все используемые пароли "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: company.ru # Доменное имя DNS:
Name of your organization: company.ru # Название организации:
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 = company
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=company,dc=ru
ldap suffix = dc=company, dc=ru
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="company"
ldapTLS="0"
suffix="dc=company,dc=ru"
sambaUnixIdPooldn="sambaDomainName=company,${suffix}"
userLoginShell="/bin/false"
userHome="/home/samba/profiles/%U"
userSmbHome=
userProfile=
userHomeDrive=
userScript=
mailDomain="company.ru"
создаем необходимые каталоги
mkdir /home/samba/
mkdir /home/samba/profiles
mkdir /home/samba/netlogon
затем открываем файл /etc/smbldap-tools/smbldap_bind.conf для редактирования
и меняем следующие строки:
slaveDN="cn=admin,dc=company,dc=ru"
slavePw="12345"
masterDN="cn=admin,dc=company,dc=ru"
masterPw="12345"
так как в этом файле пароли хранятся в открытом виде меняем парметры доступа
chmod 0600 /etc/smbldap-tools/smbldap_bind.conf
ну и заодно
chmod 0644 /etc/smbldap-tools/smbldap.conf
7: Populate LDAP using smbldap-tools
Теперь мы должны заполнить наш каталог LDAP
Выполняем команду, чтобы заполнить каталог.
smbldap-populate -u 30000 -g 30000
# введите пароль для root:
12345
# Проверьте, что в каталоге есть информация, выполнив команду:
ldapsearch -x -b dc=company,dc=ru | 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: ldap://10.0.0.3/
Distinguished name of the search base: dc=company,dc=ru
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=company,dc=ru
LDAP root account password: 12345
# Редактируем файл /etc/ldap.conf
# Настраиваем конфигурацию следующим образом:
#host 127.0.0.1
base dc=company,dc=ru
uri ldap://10.0.0.3/
rootbinddn cn=admin,dc=company,dc=ru
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: files ldap
nss_group=group: files ldap
nss_shadow=shadow: files ldap
nss_netgroup=netgroup: nis
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
# корректируем разрешения для создания фалов и директорий по умолчанию: разрешение по чтению членам группы, всем остальным - нет. В файле /etc/profile в конце файла ставим
umask 0027
в файле /etc/pam.d/common-session корректируем строку
session required pam_mkhomedir.so umask=0027 skel=/etc/skel/
# перезагружаем сервер .
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 # Удаление группы