31

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

32

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

Истина ускользает от тех кто отказывается её видеть обоими глазами.
Талантам нужно помогать, бездарности пробьются сами.
В Туле настолько суровые парни, что вместо пены для бритья, используют пену монтажную.
cat /broken/hands > /dev/null

33

Vadimsky пишет:

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

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

34

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

Истина ускользает от тех кто отказывается её видеть обоими глазами.
Талантам нужно помогать, бездарности пробьются сами.
В Туле настолько суровые парни, что вместо пены для бритья, используют пену монтажную.
cat /broken/hands > /dev/null

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

добрый день,

попробовал поставить на 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

доброго времени суток уважаемые.
Пытаюсь впервые настроить 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

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

38

Ka3aH6ac пишет:

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

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

39

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

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

Ka3aH6ac пишет:

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

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

41

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

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

Этот пост содержит информацию по настройке пакетов 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 14:37:04 отредактировано AlfaStriker)

Установка 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 17:03:03 отредактировано yok)

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

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

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

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

46

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

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"
MX Linux 21.2 x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

51

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

52

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

53

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

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

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

55

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

56

Вопрос для подключени с клиента на 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

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

я новичок на этом форуме,надеюсь пишу в правильном разделе.если нет,то прошу прощения.
устанавливаю 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

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