31

Re: [HOWTO] Настройка сервера OpenLDAP и Samba в CentOS

Такой не большой вопрос.
В CentOS 6 нет в репозитории пакета openldap-servers-overlays.Без него не как нельзя обойтись?

32

Re: [HOWTO] Настройка сервера OpenLDAP и Samba в CentOS

Подключить сторонний репозитарий, или просто найти пакет, скачать и поставить через yum localinstall

33

Re: [HOWTO] Настройка сервера OpenLDAP и Samba в CentOS

Vadimsky пишет

Подключить сторонний репозитарий, или просто найти пакет, скачать и поставить через yum localinstall

Я уже гуглил openldap-servers-overlays-2.4.19-15 но такой версии нет. более старая не ставится

34

Re: [HOWTO] Настройка сервера OpenLDAP и Samba в CentOS

Плохо искали.
Для пруфа скажу, что искать rpm нужно не в гугле ad
Вобщем вот:
http://rpmfind.net/linux/rpm2html/searc … &arch=

35 (04.01.2012 13:22:30 отредактировано kav)

Re: [HOWTO] Настройка сервера OpenLDAP и Samba в CentOS

добрый день,

попробовал поставить на CentOS 6.2 но там нет openldap-servers-overlays, последняя его версия для CentOS 5.7, и работает он только со старой версией openldap-servers, а хотелось бы уже использовать что то поновее, так как в сети есть некое количество машин с Windows 7.

Пробовал все это настроить это все на CentOS 5.7. Почему то при попытке зайти на phpLDAPadmin говорит что неправильный пароль, в чем может быть проблема?

P.S. Было бы замечательно увидеть столь подробную инструкцию по настройке того же для CentOS 6.2

P.S.S так же у вас там было написано как подключить пользователю сетевой диск, а как каждому пользователя сделать свой батник?

36

Re: [HOWTO] Настройка сервера OpenLDAP и Samba в CentOS

доброго времени суток уважаемые.
Пытаюсь впервые настроить ldap на fc 14
2.6.35.14-106.fc14.i686

include         /etc/openldap/schema/core.schema
include         /etc/openldap/schema/cosine.schema
include         /etc/openldap/schema/inetorgperson.schema
include         /etc/openldap/schema/nis.schema
#allow bind_v2
  pidfile /var/lib/openldap/slapd.pid
   argsfile /var/lib/openldap/slapd.args
    database bdb
     suffix "dc=server,dc=cranknet"
      rootdn "cn=root,dc=server,dc=xxx"
       rootpw {MD5}трололо
       
        access to attrs=userPassword
         by self write
          by anonymous auth
           by * none
           
            access to dn.base=""
             by * read
             
              access to dn.base=""
               by * read
               
                access to attrs=shadowLastChange
                 by self write
                  by * read
                 
                   access to *
                    by * read
directory       /var/lib/ldap
сталкиваюсь со слудующим:

/etc/init.d/slapd restart
Останавливается slapd:                                     [СБОЙ ]
ln: обращение к «/var/run/openldap/slapd.pid»: Нет такого файла или каталога

как это побороть ума не приложу
подскажите плз

37

Re: [HOWTO] Настройка сервера OpenLDAP и Samba в CentOS

Настроил на CentOS 6 практически тоже самое ab

38

Re: [HOWTO] Настройка сервера OpenLDAP и Samba в CentOS

Ka3aH6ac пишет

Настроил на CentOS 6 практически тоже самое

там же какие то изменения произошли в .conf файлах и их размещениях да?

39

Re: [HOWTO] Настройка сервера OpenLDAP и Samba в CentOS

Да, там произошли изминения в части конфиг файлов и пакетов.

40 (17.05.2012 06:51:36 отредактировано semperN)

Re: [HOWTO] Настройка сервера OpenLDAP и Samba в CentOS

Ka3aH6ac пишет

Да, там произошли изминения в части конфиг файлов и пакетов.

А небольшой HowTo не планируете сделать как с почтовыми серверами? ab

41

Re: [HOWTO] Настройка сервера OpenLDAP и Samba в CentOS

Без проблем, выложу ближе к вечеру.
Если честно сказать все уже написано давно аж с 2010 года =)
По этому, по крупицам и зернышкам не собирал.
Заработало можно сказать сразу.

42 (01.08.2012 09:24:36 отредактировано AlfaStriker)

Re: [HOWTO] Настройка сервера OpenLDAP и Samba в CentOS

Этот пост содержит информацию по настройке пакетов Openldap, Samba на CentOS 6 x32.

Эти пакеты нужны для настройки доменного контроллера в стиле аля Windows NT.

Преимущества такого доменного контролерра в следующем:

1. Бесплатность как самой ОС Linux, так и пакетов для построения контроллера

2. Единная база учетных записей пользователей.  Доступ на такие сервисы как доступ в Интернет, общие папки и т.д. разрешается с помощью нее. Что облегчает работу системного администратора.

3. Зашищенность пользовательских компьютеров от вирусов, вследствии использования учетных записей с ограничинными правами (группа "Пользователи").

4.  Единная контактная база сотрудников, контрагентов и  дочерних предприятий. По мимо локальной адресной книги в Outlook, есть возможность задействовать адресную книгу находящиюся в каталоге OpenLDAP.

5. Простое управление объектами доменного контроллера если задействовать пакет "Gosa"


Минусы этого решения:

1. Не работают групповые политики

2. Более сложная настройка доменного контроллера в отличии Win решения


Многие компании не используют преимущества доменного контроллера на Windows 2003 и выше, а именно полезный инструмент как "Групповые политики". В основном такие компании мелкие или средние. В больших холдингах возможно будет сложно администрировать большой парк машин c помощью Samba+OpenLDAP из за отсутствия групповых политик.

Если у вас маленькая или средная компания, присмотритесь к решению на базе ОС Linux.

Краткое содержание поста:

1. Установка и настройка OpenLDAP

2. Установка и настройка Samba

3. Тестирования

Домен:

company.local

IP – адрес сервера:

192.168.50.2

Пакеты:

Openldap, samba

В моем тестовом сервере я установил графическую оболочку.

Для облегчения редактирования конфигов установите следующие пакеты:

# yum install gedit mc system-config-network-tui setuptool -y

1. Установка и настройка OpenLDAP

# yum install openldap-servers openldap-clients -y

Открываем файл /etc/sysconfig/ldap

# gedit /etc/sysconfig/ldap

Строчка 16: меняем значение на yes

SLAPD_LDAPS=yes

Создайте новый файл /etc/openldap/slapd.conf:

# gedit /etc/openldap/slapd.conf

Вставляем две строчки

pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args

Удаляем содержимое конфигурации в /etc/openldap/slapd.d/

# rm -rf /etc/openldap/slapd.d/*

Сохраним конфиг файл slapd.conf в базу LDAP

# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d

Откройте файл /etc/openldap/slapd.d/cn=config/olcDatabase\={0}config.ldif

# gedit /etc/openldap/slapd.d/cn=config/olcDatabase\={0}config.ldif

4 строчку изменить на:

olcAccess: {0}to * by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth manage by * break

Создайте новый файл:

# gedit /etc/openldap/slapd.d/cn=config/olcDatabase\={1}monitor.ldif

Вставьте в него текст:

dn: olcDatabase={1}monitor
objectClass: olcDatabaseConfig
olcDatabase: {1}monitor
olcAccess: {1}to * by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth manage by * break
olcAddContentAcl: FALSE
olcLastMod: TRUE
olcMaxDerefDepth: 15
olcReadOnly: FALSE
olcMonitoring: FALSE
structuralObjectClass: olcDatabaseConfig
creatorsName: cn=config
modifiersName: cn=config

# chown -R 700 /etc/openldap/slapd.d

# chown -R ldap. /etc/openldap/slapd.d

# /etc/rc.d/init.d/slapd start


Ставим демон в автозагрузку:

# chkconfig slapd on

Создадим начальную конфигурацию:

# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/core.ldif

# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif

# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif

# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif


Сгенерируем пароль:

# slappasswd


Создадим новый файл:

# gedit backend.ldif

Замените в нем секцию “dc=***,dc=***” на ваши значения.
Замените  секцию  “olcRootPW: ***” на пароль сгенерированный с помощью утилиты slappasswd выше.

dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulepath: /usr/lib64/openldap
olcModuleload: back_hdb

dn: olcDatabase=hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {2}hdb
olcSuffix: dc=company,dc=local
olcDbDirectory: /var/lib/ldap
olcRootDN: cn=admin,dc=company,dc=local
olcRootPW: {SSHA}xxxxxxxxxxxxxxxxxxxxxxxx
olcDbConfig: set_cachesize 0 2097152 0
olcDbConfig: set_lk_max_objects 1500
olcDbConfig: set_lk_max_locks 1500
olcDbConfig: set_lk_max_lockers 1500
olcDbIndex: objectClass eq
olcLastMod: TRUE
olcMonitoring: TRUE
olcDbCheckpoint: 512 30
olcAccess: to attrs=userPassword by dn="cn=admin,dc=company,dc=local" write by anonymous auth by self write by * none
olcAccess: to attrs=shadowLastChange by self write by * read
olcAccess: to dn.base="" by * read
olcAccess: to * by dn="cn=admin,dc=company,dc=local" write by * read

# ldapadd -Y EXTERNAL -H ldapi:/// -f backend.ldif


Создадим новый файл:

# gedit frontend.ldif

Замените в нем секцию “dc=***,dc=***” на ваши значения.
Замените  секцию  “olcRootPW: ***” на пароль сгенерированный с помощью утилиты slappasswd выше.

dn: dc=company,dc=local
objectClass: top
objectClass: dcObject
objectclass: organization
o: Company Local
dc: Company

dn: cn=admin,dc=company,dc=local
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
userPassword: {SSHA}xxxxxxxxxxxxxxxxxxxxxxxx

dn: ou=people,dc=company,dc=local
objectClass: organizationalUnit
ou: people

dn: ou=groups,dc=company,dc=local
objectClass: organizationalUnit
ou: groups

# ldapadd -x -D cn=admin,dc=company,dc=local -W -f frontend.ldif


Создайте файл:

# gedit ldapuser.sh

Добавления локальных пользователей с диапозоном UID 500-999
Замените суфикс “SUFFIX=***” на ваш предпочитаемый.
Этот файл примерочный.

#!/bin/bash

SUFFIX='dc=company,dc=local'
LDIF='ldapuser.ldif'

echo -n > $LDIF
for line in `grep "x:[5-9][0-9][0-9]:" /etc/passwd | sed -e "s/ /%/g"`
do
   UID1=`echo $line | cut -d: -f1`
   NAME=`echo $line | cut -d: -f5 | cut -d, -f1`
   if [ ! "$NAME" ]
   then
      NAME=$UID1
   else
      NAME=`echo $NAME | sed -e "s/%/ /g"`
   fi
   SN=`echo $NAME | awk '{print $2}'`
   if [ ! "$SN" ]
   then
      SN=$NAME
   fi
   GIVEN=`echo $NAME | awk '{print $1}'`
   UID2=`echo $line | cut -d: -f3`
   GID=`echo $line | cut -d: -f4`
   PASS=`grep $UID1: /etc/shadow | cut -d: -f2`
   SHELL=`echo $line | cut -d: -f7`
   HOME=`echo $line | cut -d: -f6`
   EXPIRE=`passwd -S $UID1 | awk '{print $7}'`
   FLAG=`grep $UID1: /etc/shadow | cut -d: -f9`
   if [ ! "$FLAG" ]
   then
      FLAG="0"
   fi
   WARN=`passwd -S $UID1 | awk '{print $6}'`
   MIN=`passwd -S $UID1 | awk '{print $4}'`
   MAX=`passwd -S $UID1 | awk '{print $5}'`
   LAST=`grep $UID1: /etc/shadow | cut -d: -f3`

   echo "dn: uid=$UID1,ou=people,$SUFFIX" >> $LDIF
   echo "objectClass: inetOrgPerson" >> $LDIF
   echo "objectClass: posixAccount" >> $LDIF
   echo "objectClass: shadowAccount" >> $LDIF
   echo "uid: $UID1" >> $LDIF
   echo "sn: $SN" >> $LDIF
   echo "givenName: $GIVEN" >> $LDIF
   echo "cn: $NAME" >> $LDIF
   echo "displayName: $NAME" >> $LDIF
   echo "uidNumber: $UID2" >> $LDIF
   echo "gidNumber: $GID" >> $LDIF
   echo "userPassword: {crypt}$PASS" >> $LDIF
   echo "gecos: $NAME" >> $LDIF
   echo "loginShell: $SHELL" >> $LDIF
   echo "homeDirectory: $HOME" >> $LDIF
   echo "shadowExpire: $EXPIRE" >> $LDIF
   echo "shadowFlag: $FLAG" >> $LDIF
   echo "shadowWarning: $WARN" >> $LDIF
   echo "shadowMin: $MIN" >> $LDIF
   echo "shadowMax: $MAX" >> $LDIF
   echo "shadowLastChange: $LAST" >> $LDIF
   echo >> $LDIF
done

# sh ldapuser.sh

Открываем файл ldapuser.ldif

# gedit ldapuser.ldif

Строка 13:удаляем

$6$E00SY.VhtcM/6Zi6$3wNUJtRsQjrE0gt0PBiNwrG0XdlttOVfLOmHCg72p3QNKi3BW0/G3452HCQDUTQpkn7ZNkUFks9ruO

В конце файла:удаляем последнею строчку

15436

# ldapadd -x -D cn=admin,dc=company,dc=local -W -f ldapuser.ldif

# gedit ldapgroup.sh

Добавление локальных групп с диапозоном UID 500-999
Замените суфикс “SUFFIX=***” на ваш предпочитаемый.
Этот файл примерочный.

#!/bin/bash

SUFFIX='dc=company,dc=local'
LDIF='ldapgroup.ldif'

echo -n > $LDIF
for line in `grep "x:[5-9][0-9][0-9]:" /etc/group`
do
   CN=`echo $line | cut -d: -f1`
   GID=`echo $line | cut -d: -f3`
   echo "dn: cn=$CN,ou=groups,$SUFFIX" >> $LDIF
   echo "objectClass: posixGroup" >> $LDIF
   echo "cn: $CN" >> $LDIF
   echo "gidNumber: $GID" >> $LDIF
   users=`echo $line | cut -d: -f4 | sed "s/,/ /g"`
   for user in ${users} ; do
      echo "memberUid: ${user}" >> $LDIF
   done
   echo >> $LDIF
done

# sh ldapgroup.sh

# ldapadd -x -D cn=admin,dc=company,dc=local -W -f ldapgroup.ldif




Настройки для LDAP клиента

# yum -y install openldap-clients nss-pam-ldapd

# gedit /etc/openldap/ldap.conf

BASE dc=company,dc=local
URI ldap://192.168.50.2/
TLS_CACERTDIR /etc/openldap/cacerts

# gedit /etc/nslcd.conf

Строка 131: определите URI, суффикс

uri ldap://192.168.50.2/
base dc=company,dc=local
ssl no
tls_cacertdir /etc/openldap/cacerts

# gedit /etc/pam_ldap.conf

Строка 17: закоментируйте это

host 127.0.0.1

Строка 20: определите суффикс

base dc=company,dc=local

Добавьте:

uri ldap://192.168.50.2/
ssl no
tls_cacertdir /etc/openldap/cacerts
pam_password md5

# gedit /etc/pam.d/system-auth

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
auth sufficient pam_fprintd.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth sufficient pam_ldap.so use_first_pass
auth required pam_deny.so
account required pam_unix.so
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 500 quiet
account [default=bad success=ok user_unknown=ignore] pam_ldap.so
account required pam_permit.so
password requisite pam_cracklib.so try_first_pass retry=3 type=
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password sufficient pam_ldap.so use_authtok
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_limits.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
session optional pam_ldap.so
# add if you need ( create home directory automatically if it's none )
session optional pam_mkhomedir.so skel=/etc/skel umask=077

# gedit /etc/nsswitch.conf

Строка 33: добавить:

passwd: files ldap
shadow: files ldap
group: files ldap

Строка 57: изменить:

netgroup: ldap

Строка 61: изменить:

automount: files ldap

# gedit /etc/sysconfig/authconfig

Строка 18: изменить:

USELDAP=yes

# chkconfig nslcd on

# shutdown -r now

Меняем OpenLDAP настройки

-Устанавливаем samba в первую очередь

# yum -y install samba


# mkdir /tmp/setsamba/

# mkdir /tmp/setsamba/ldif_output

# cd /tmp/setsamba/ldif_output

# gedit schema_convert.conf

Создайте новый

include /etc/openldap/schema/core.schema
include /etc/openldap/schema/collective.schema
include /etc/openldap/schema/corba.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/duaconf.schema
include /etc/openldap/schema/dyngroup.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/java.schema
include /etc/openldap/schema/misc.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/openldap.schema
include /etc/openldap/schema/ppolicy.schema
include /etc/openldap/schema/samba.schema

# slapcat -f schema_convert.conf -F /tmp/setsamba/ldif_output -n0 -s "cn={12}samba,cn=schema,cn=config" > ./cn=samba.ldif

# gedit cn=samba.ldif

Строки 1,3: измените ( удалите цифры “{12}” )

dn: cn=samba,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: samba

Удалите 186 строку и все что ниже нее

structuralObjectClass: olcSchemaConfig
entryUUID: 761ed782-e76d-102f-94de-7784c8a781ec
creatorsName: cn=config
createTimestamp: 20110320184149Z
entryCSN: 20110320184149.954974Z#000000#000#000000
modifiersName: cn=config
modifyTimestamp: 20110320184149Z

# ldapadd -Y EXTERNAL -H ldapi:/// -f cn=samba.ldif

# gedit samba_indexes.ldif

Создайте новый

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcDbIndex
olcDbIndex: uidNumber eq
olcDbIndex: gidNumber eq
olcDbIndex: loginShell eq
olcDbIndex: uid eq,pres,sub
olcDbIndex: memberUid eq,pres,sub
olcDbIndex: uniqueMember eq,pres
olcDbIndex: sambaSID eq
olcDbIndex: sambaPrimaryGroupSID eq
olcDbIndex: sambaGroupType eq
olcDbIndex: sambaSIDList eq
olcDbIndex: sambaDomainName eq
olcDbIndex: default sub
# ldapmodify -Y EXTERNAL -H ldapi:/// -f samba_indexes.ldif

# service slapd restart


Измените Samba настройки. Этот Samba PDC сервер должен быть также и LDAP клиентом.

# yum install smbldap-tools -y
# mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
# cp /usr/share/doc/smbldap-tools-*/smb.conf /etc/samba/smb.conf
# gedit /etc/samba/smb.conf

# Global parameters
[global]
workgroup = COMPANY
netbios name = PDC
security = user
enable privileges = yes
#interfaces = 192.168.5.11
#username map = /etc/samba/smbusers
server string = Samba Server %v
#security = ads
encrypt passwords = Yes
min passwd length = 3
#pam password change = no
#obey pam restrictions = No

# method 1:
#unix password sync = no
#ldap passwd sync = yes

# method 2:
unix password sync = yes
ldap passwd sync = yes
passwd program = /usr/sbin/smbldap-passwd -u "%u"
passwd chat = "Changing *\nNew password*" %n\n "*Retype new password*" %n\n"

log level = 0
syslog = 0
log file = /var/log/samba/log.%U
max log size = 100000
time server = Yes
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
mangling method = hash2
Dos charset = CP932
Unix charset = UTF-8

logon script = logon.bat
logon drive = W:
logon home =
logon path =
domain logons = Yes
domain master = Yes
os level = 65
preferred master = Yes
wins support = yes
# passdb backend = ldapsam:"ldap://ldap1.company.com ldap://ldap2.company.com"
passdb backend = ldapsam:ldap://192.168.50.2/
ldap admin dn = cn=admin,dc=company,dc=local
#ldap admin dn = cn=samba,ou=DSA,dc=company,dc=com
ldap suffix = dc=company,dc=local
ldap group suffix = ou=groups
ldap user suffix = ou=people
ldap machine suffix = ou=Computers
ldap idmap suffix = ou=Idmap
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 -t 0 -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'
admin users = sysadmin
ldap ssl = no
# printers configuration
#printer admin = @"Print Operators"
load printers = Yes
create mask = 0640
directory mask = 0750
#force create mode = 0640
#force directory mode = 0750
nt acl support = No
printing = cups
printcap name = cups
deadtime = 10
guest account = nobody
map to guest = Bad User
dont descend = /proc,/dev,/etc,/lib,/lost+found,/initrd
show add printer wizard = yes
; to maintain capital letters in shortcuts in any of the profile folders:
preserve case = yes
short preserve case = yes
case sensitive = no

[netlogon]
path = /home/netlogon/
browseable = No
read only = yes

[profiles]
path = /home/profiles
read only = no
create mask = 0600
directory mask = 0700
browseable = No
guest ok = Yes
profile acls = yes
csc policy = disable
# next line is a great way to secure the profiles
#force user = %U
# next line allows administrator to access all profiles
#valid users = %U "Domain Admins"

[printers]
comment = Network Printers
#printer admin = @"Print Operators"
guest ok = yes
printable = yes
path = /home/spool/
browseable = No
read only = Yes
printable = Yes
print command = /usr/bin/lpr -P%p -r %s
lpq command = /usr/bin/lpq -P%p
lprm command = /usr/bin/lprm -P%p %j
# print command = /usr/bin/lpr -U%U@%M -P%p -r %s
# lpq command = /usr/bin/lpq -U%U@%M -P%p
# lprm command = /usr/bin/lprm -U%U@%M -P%p %j
# lppause command = /usr/sbin/lpc -U%U@%M hold %p %j
# lpresume command = /usr/sbin/lpc -U%U@%M release %p %j
# queuepause command = /usr/sbin/lpc -U%U@%M stop %p
# queueresume command = /usr/sbin/lpc -U%U@%M start %p

[print$]
path = /home/printers
guest ok = No
browseable = Yes
read only = Yes
valid users = @"Print Operators"
write list = @"Print Operators"
create mask = 0664
directory mask = 0775

[public]
path = /datasamba/public
guest ok = yes
browseable = Yes
writable = yes
force create mode = 0775
force directory mode = 0775

[private]
path = /datasamba/private
guest ok = yes
browseable = Yes
writable = yes
force create mode = 0770
force directory mode = 0770

# mkdir /datasamba
# mkdir /datasamba/public
# mkdir /datasamba/private
# mkdir /home/netlogon
# service smb restart
# service nmb restart
# chkconfig smb on
# chkconfig nmb on

# smbpasswd -W

# perl /usr/share/doc/smbldap-tools-*/configure.pl

Нажимайте на все вопросы ENTER, кроме вопросов где надо ввести пароль

# smbldap-populate

Тестирования

-Добавьте в Samba ldap пользователей
Мы добавим три учетные записи.
В группу доменные админы: sysadmin и ivanich
В группу пользователи: petrovich

# smbldap-useradd -a -m sysadmin
# smbldap-groupmod -m sysadmin "Domain Admins"
# smbldap-passwd sysadmin
# smbldap-useradd -a -m ivanich
# smbldap-groupmod -m ivanich "Domain Admins"
# smbldap-passwd ivanich
# smbldap-useradd -a -m petrovich
# smbldap-groupmod -m petrovich "Domain Users"
# smbldap-passwd petrovich

-Настройте ACL для Samba общих папок

# setfacl -m group:Domain\ Admins:rwx /datasamba/private/
# setfacl -m group:Domain\ Users:rwx /datasamba/public/

-Найдите компьютер в локальной сети

- Добавления Windows XP  в домен:
Зайдите на компьютер, далее свойства Мой Компьютер, далее Вкладка Имя Компьютера -> Кнопка Изменить ->  Укажем наш домен company -> Enter
На запрос логина и пароля введите : sysadmin/ваш пароль

Аналогичным образом все делается в Windows 7.

43 (03.06.2012 13:37:04 отредактировано AlfaStriker)

Re: [HOWTO] Настройка сервера OpenLDAP и Samba в CentOS

Установка Gosa, графической панели для управления LDAP каталогом

Подключаем репозитарий Epel:

# rpm -Uvh http://mirror-kt.neolabs.kz/epel/6/i386/epel-release-6-7.noarch.rpm

Устанавливаем зависимости:

yum install sqlite2 ImageMagick ImageMagick-devel apr apr-util apr-util-ldap httpd httpd-tools libc-client libwmf-lite mailcap perl-Authen-SASL perl-Compress-Raw-Zlib perl-Compress-Zlib perl-Convert-ASN1  perl-Crypt-SmbHash perl-Digest-HMAC perl-Digest-MD4 perl-Digest-SHA1 perl-GSSAPI perl-HTML-Parser perl-HTML-Tagset perl-IO-Compress-Base perl-IO-Compress-Zlib perl-IO-Socket-SSL perl-LDAP perl-Net-LibIDN perl-Net-SSLeay perl-Text-Iconv perl-URI perl-XML-Filter-BufferText perl-XML-LibXML perl-XML-NamespaceSupport perl-XML-SAX perl-XML-SAX-Writer perl-libwww-perl.noarch php php-cli php-common php-imap php-ldap php-mbstring php-mysql php-pdo php-snmp php-gd -y

Качаем саму Gosa:

wget http://oss.gonicus.de/pub/gosa/gosa-combined-2.7.4.tar.bz2

Распаковываем содержимое архива:

tar xjf gosa-combined-2.7.4.tar.bz2 

Перемещаем Gosa в /usr/share/gosa:

mv gosa-combined-2.7.4 /usr/share/gosa

Создаём каталоги необходимые для Gosa:

mkdir /etc/gosa && mkdir /var/spool/gosa && mkdir /var/cache/gosa

Разрешим группе Apache  запись в каталоги:

chown root:apache /var/spool/gosa && chmod 775 /var/spool/gosa
chown root:apache /var/cache/gosa && chmod 770 /var/cache/gosa

Подправим файл /etc/php.ini:

expose_php = Off

Создади /etc/httpd/conf.d/gosa-apache.conf:

# vi /etc/httpd/conf.d/gosa-apache.conf
Alias /gosa /usr/share/gosa/html
<IfModule mod_php5.c>
   <Location /gosa>
     php_admin_flag engine on
     php_admin_flag register_globals off
     php_admin_flag allow_call_time_pass_reference on
     php_admin_flag expose_php off
     php_admin_flag zend.ze1_compatibility_mode off
     php_admin_flag register_long_arrays off
     php_admin_flag magic_quotes_gpc on
   </Location>
</IfModule>

Скопируем схему Gosa Samba:
# cp /usr/share/gosa/contrib/openldap/samba3.schema /etc/openldap/schema

Ее надо сконвертировать в формат LDIF:
# cd  /etc/openldap
# vi /etc/openldap/schema_convert.conf

include         /etc/openldap/schema/core.schema
include         /etc/openldap/schema/cosine.schema
include         /etc/openldap/schema/inetorgperson.schema
include         /etc/openldap/schema/openldap.schema
include         /etc/openldap/schema/nis.schema
include         /etc/openldap/schema/misc.schema
include         /etc/openldap/schema/samba3.schema
# mkdir /tmp/ldif_output
# slapcat -f schema_convert.conf -F /tmp/ldif_output -n0 -s "cn={6}samba3,cn=schema,cn=config" > /tmp/cn=samba3.ldif

Отредактируем  полученный файл:

# cd /tmp
# vi cn=samba3.ldif

Строки 1 и 3: изменить, удалите цифры “{6}” )

dn: cn=samba3,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: samba3

Строка 186: удалить ее и все что ниже

structuralObjectClass: olcSchemaConfig
entryUUID: 5b984a7e-3ad7-1031-9095-b51788d14116
creatorsName: cn=config
createTimestamp: 20120525170356Z
entryCSN: 20120525170356.287249Z#000000#000#000000
modifiersName: cn=config
modifyTimestamp: 20120525170356Z

Скопируем для удобства файл:

# cp /tmp/cn\=samba3.ldif /etc/openldap/schema/samba3.ldif

Копируем все другие схемы Gosa в каталог OpenLDAP:

# cp /usr/share/gosa/contrib/openldap/*.ldif /etc/openldap/schema/ && cp /usr/share/gosa/contrib/openldap/*.schema /etc/openldap/schema/

Осталось добавить схемы в базу LDAP:

ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/trust.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/samba3.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/gosystem.ldif 
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/gofon.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/goto.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/goto-mime.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/gosa-samba3.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/gofax.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/goserver.ldif

Запустим скрипт gosa-update:

# /usr/share/gosa/update-gosa

Будет выведено много ошибок о том что файлы картинок дублируются, не обращайте на это внимания. Если удалить картинки, на веб страницах Gosa вы не увидите иконок ab

Запустим и поставим веб сервер в автозагрузку:
# service httpd start
# chkconfig httpd on

Теперь осталось настроить Gosa, для этого в браузере введите:

http://127.0.0.1/gosa

Окошко 1:
Welcome to the GOsa setup assistent
1 / 8

В этом окне вас попросят ввести на сервере примерно вот такую команду:

echo -n ub3duo06amfqjr5f38ld32l525 > /tmp/gosa.auth 

Кнопка NEXT

Окошко 2:
Installation check
2 / 8

В этом окне проверяются зависимости, если их не хватает будут красные надписи, установите нужные пакеты.
Кнопка NEXT

Окошко 3:
License
3 / 8

Здесь соглашаемся на все.
Кнопка NEXT

Окошко 4:
LDAP connection setup
4 / 8

Проверка соединения с каталогом LDAP.
Здесь вводим нашего админа и его пароль:
Administrator DN

cn=admin

Administrator password

***
Галочка - Automatically append LDAP base to administrator DN 

Кнопка NEXT

Окошко 5:
LDAP schema check
5 / 8

Если в базу LDAP добавлена схема Gosa, будет зеленная надпись.
В противном случае заного добавтье схему.
Кнопка NEXT

Окошко 6:
LDAP inspection
6 / 8

В этом окне надо будет нажать кнопку Migrate
Потом еще раз Migrate
Чтобы Gosa добавила новые объекты, которые ей необходимы.

Также здесь Gosa будет ругаться что нет учетной записи администратора в каталоге LDAP.
Нажмите кнопку Create
Потом мы увидим нашего admin, надо будет только указать пароль.

Окошко 7:
Notification and feedback
7 / 8

Здесь нажмаем NEXT

Окошко 8:
Finish - write the configuration file
8 / 8

Последнее окно в котором будет сегенрирован файл gosa.conf
Нажмите кнопку Download Configuration
Сохраните файл в папке /etc/gosa/
И сразу же выставьте права:

chown root:apache /etc/gosa/gosa.conf
chmod 640 /etc/gosa/gosa.conf

Чтобы Gosa не ругался на остутвующие плагины, создадим пустые каталоги:

# mkdir /etc/gosa/asterisk && touch /etc/gosa/asterisk/sip_context.conf && touch /etc/gosa/asterisk/voicemail_context.conf

Все, Gosa установлена!

44 (27.09.2012 16:03:03 отредактировано yok)

Re: [HOWTO] Настройка сервера OpenLDAP и Samba в CentOS

Вот спасибо ТС за тему, мучал вторую неделю PDC на сентосе 5.5, по другим инфам, но твоя натолкнула на путь решения.
Спасибо !!!!! за то что написал статью !!!!

А 389 directory server он как , никто не ставил?

45 (26.10.2012 15:54:40 отредактировано Archi)

Re: [HOWTO] Настройка сервера OpenLDAP и Samba в CentOS

Всем привет, я сделал настройку CentOS 6.3 в точности как предложил AlfaStriker, все настроилось и заработало, но при попытке ввести любую виндусовую машину в домен просит ввести логин и пароль а потом выкидывает ошибку что сетевое имя более недоступно. Пробовал и из XP и из семрки результат один и тот же.
Подскажите пожалуйста в какую сторону копать??
http://s018.radikal.ru/i522/1210/01/1a5eb39739b3t.jpg

46

Re: [HOWTO] Настройка сервера OpenLDAP и Samba в CentOS

Начал проверять инструкцию и буду писать сюда поправки.

1. Не хватает пакетов openldap-servers, openldap-clients. Нужно их обязательно доустановить, а то не будет файла  /etc/sysconfig/ldap

2. Ошибка в файле  frontend.ldif и в итоге мы получаем такую ошибку

 ldapadd -x -D cn=admin,dc=domain,dc=local -W -f frontend.ldif
Enter LDAP Password: 
adding new entry "dc=domain,dc=local"
ldap_add: Naming violation (64)
    additional info: value of single-valued naming attribute 'dc' conflicts with value present in entry

лечится заменой строчки

dc: Company

на

dc: domain

В итоге выхлоп должен быть таким

adding new entry "dc=domain,dc=local"

adding new entry "cn=admin,dc=domain,dc=local"

adding new entry "ou=people,dc=domain,dc=local"

adding new entry "ou=groups,dc=domain,dc=local"

47 (13.02.2013 15:47:42 отредактировано crazybalu)

Re: [HOWTO] Настройка сервера OpenLDAP и Samba в CentOS

Возникла небольшая проблема Ввожу

# ldapadd -x -D cn=admin,dc=company,dc=local -W -f frontend.ldif

Выдается запрос на пароль, ввожу с генерированный пароль а мне в ответ ldap_bind: Invalid credentials (49) В инете пишут что такое сообщение выдается когда неверный пароль вводишь, проверил несколько раз пароль все верно но все равно ошибка повторяется. из-за этого вся настройка встала. Сможете помочь?

48 (28.02.2013 17:06:16 отредактировано CyberTramp)

Re: [HOWTO] Настройка сервера OpenLDAP и Samba в CentOS

ошибка в том что company.local  если назвать Муcompany.local и запустить однажды company.local то будет ошибка постоянно, лудше откатить систему и начать заново

49 (02.04.2013 14:24:54 отредактировано Internetchik)

Re: [HOWTO] Настройка сервера OpenLDAP и Samba в CentOS

Здравствуйте, не могли бы вы подсказать, возникли небольшие затруднения при вводе

AlfaStriker⇓ пишет

Создадим начальную конфигурацию:
# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/core.ldif
# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif

интересует следующее:
1) в пункте ldapi:/// необходимо указывать ip или localhost или  тп? и как
2) ldapi - это же сокет? разве в нем не необходимо указать некий путь?
3) некоторый файлов не существует (/etc/openldap/schema/nis.ldif), их просто создать?

Просто дело в том, что при попытке ввода выдает
ldap_sasl_interactive_bind_s: Can't contact LDAP server (-1)
при том что:
service ldap status
slapd (pid 11258) выполняется...

50

Re: [HOWTO] Настройка сервера OpenLDAP и Samba в CentOS

Всем добрый день. Помогите советом :

Поднял ldap по инструкции AlfaStriker, все работает 

ldapsearch -x -H ldaps://localhost
находит все записи ldap

При попытке зайти в систему под заведенным в ldap пользователем - "Сбой при проверке подлинности"

В nsswitch, system-auth вроде все норм. В какую сторону копать?

51

Re: [HOWTO] Настройка сервера OpenLDAP и Samba в CentOS

Подскажите кто-нибудь как в Gosa 2.7.4 поменять язык хотя бы на английкий, у меня немецкий и все тут... во втором пункте нет меню для выбора языка... в каком конфиге его прописать тоже не могу понять...

52

Re: [HOWTO] Настройка сервера OpenLDAP и Samba в CentOS

А можно запилить HOWTO по переносу OpenLDAP и Samba на другой сервер? Просто в гугле все указывают что все просто slapcat/slapadd - но это же только база, а до этого нужно все с нуля настраивать или что-то можно опустить и скопировать со старого сервера.?

53

Re: [HOWTO] Настройка сервера OpenLDAP и Samba в CentOS

Всем привет, автору большое спасибо!
Сервер Centos 6.3 x32
Настроил по данной инструкции, работает.
Есть вопросы:
1) В gosa невидны пользователи которые заведены через терминал и phpldapadmin  в Ldap, видны только те которых сам завел через gosa?
2) Не могу подключится к ldap пользователем на centos 6.3, win машины все ок, что нужно настроить на машине под centos 6.3 и как прописать в домен?
Помогите пожалуйста.

54 (04.03.2014 06:41:12 отредактировано AlfaStriker)

Re: [HOWTO] Настройка сервера OpenLDAP и Samba в CentOS

vr, я не использую данную связку из samba и openldap. Мне нужны были групповые политики на WinXP и Win7, по этому критерию этот доменный контроллер не подходит. Поэтому, помочь с вопросами по этому посту к сожелению - не могу.

55

Re: [HOWTO] Настройка сервера OpenLDAP и Samba в CentOS

жаль, спасибо за статью.

56

Re: [HOWTO] Настройка сервера OpenLDAP и Samba в CentOS

Вопрос для подключени с клиента на Centos 6.3 решон, вот по этой ссылке http://kolya-iks.livejournal.com/13847.html
Команда для подключения ПК (centos 6.3) в домен  net rpc join -U <админ в samba%пароль>
Проверка подключения к домену  net rpc testjoin
Вопросы:
1) При входе пользователем с centos невозможно создавать коталоги  в PDC шаре public и private. Пишет отказано в доступе даже если зашел админом samba, c Win ПК все нармально.
2) Как с gosa управлять расшареными каталогами и раздовать права группе, пользователям.

57

Re: [HOWTO] Настройка сервера OpenLDAP и Samba в CentOS

доброго времени суток,

я новичок на этом форуме,надеюсь пишу в правильном разделе.если нет,то прошу прощения.
устанавливаю LDAP на Centos 6.6,при добавлении в базу данных (в моем случае ) ldapadd -x -W -D "cn=Manager,dc=dap,dc=com" -f base.ldif

получаю ошибку:Enter LDAP Password:
adding new entry "dc=dap,dc=com"
ldap_add: Invalid syntax (21)
        additional info: objectClass: value #1 invalid per syntax

может кто знает в чем может быть проблема? проверил конфиги,вроде все в порядке.заранее спасибо.