天天看點

centos6.5環境openldap實戰之ldap配置詳解及web管理工具lam(ldap-account-manager)使用詳解ldap常用名稱解釋1.環境搭建 2.安裝openldap master3.配置slapd.conf檔案4.ldap授權及安全參數配置5.加入日志記錄6.配置ldap資料庫路徑7.啟動服務:8.測試查找内容10.為ldap master配置web管理接口

ldap常用名稱解釋

centos6.5環境openldap實戰之ldap配置詳解及web管理工具lam(ldap-account-manager)使用詳解ldap常用名稱解釋1.環境搭建 2.安裝openldap master3.配置slapd.conf檔案4.ldap授權及安全參數配置5.加入日志記錄6.配置ldap資料庫路徑7.啟動服務:8.測試查找内容10.為ldap master配置web管理接口
centos6.5環境openldap實戰之ldap配置詳解及web管理工具lam(ldap-account-manager)使用詳解ldap常用名稱解釋1.環境搭建 2.安裝openldap master3.配置slapd.conf檔案4.ldap授權及安全參數配置5.加入日志記錄6.配置ldap資料庫路徑7.啟動服務:8.測試查找内容10.為ldap master配置web管理接口

1.環境搭建

作業系統:centos6.5 x86_64

關閉防火牆、selinux

開啟時間同步

# crontab -e

加入

# time sync

*/5 * * * * /usr/sbin/ntpdate 192.168.8.102 >/dev/null 2>&1

# crontab -l

*/5 * * * * /usr/sbin/ntpdate -u 192.168.8.102 >/dev/null 2>&1

配置域名解析:

# echo "192.168.8.43 chinasoft.com" >> /etc/hosts

解決依賴關系

# yum grouplist

   Base

   Debugging Tools

   Performance Tools

   Compatibility libraries

   Development tools

   Dial-up Networking Support

   Hardware monitoring utilities

如果缺少組包,需要安裝

yum groupinstall -y "Compatibility libraries"

2.安裝openldap master

# yum install -y openldap openldap-*

# yum install -y nscd nss-pam-ldapd nss-* pcre pcre*

# rpm -qa | grep openldap*

compat-openldap-2.3.43-2.el6.x86_64

openldap-2.4.40-12.el6.x86_64

openldap-clients-2.4.40-12.el6.x86_64

openldap-servers-sql-2.4.40-12.el6.x86_64

openldap-servers-2.4.40-12.el6.x86_64

openldap-devel-2.4.40-12.el6.x86_64

3.配置slapd.conf檔案

# cd /etc/openldap/

[[email protected] openldap]# cp /usr/share/openldap-servers/slapd.conf.obsolete slapd.conf

[[email protected] openldap]# cp slapd.conf slapd.conf.bak

[[email protected] openldap]# slappasswd -s chinasoft|sed -e "s#{SSHA}#rootpw\t{SSHA}#g"

rootpw {SSHA}D9+lqUJZVPobp0sZfXl37jE1aVvR2P9K

[[email protected] openldap]# slappasswd -s chinasoft|sed -e "s#{SSHA}#rootpw\t{SSHA}#g">>/etc/openldap/slapd.conf

[[email protected] openldap]# tail -1 slapd.conf

rootpw {SSHA}FvBRnIPqtIi0/u11O2gOfOCrRJr+xMAr

# vim slapd.conf

注釋掉一下四行

# database        dbb

#suffix         "dc=my-domain,dc=com"

#checkpoint     1024 15

#rootdn         "cn=Manager,dc=my-domain,dc=com"

添加如下内容

# add start by jack 2016/07/01

database        bdb

suffix          "dc=chinasoft,dc=com"

rootdn          "cn=admin,dc=chinasoft,dc=com"

centos6.5環境openldap實戰之ldap配置詳解及web管理工具lam(ldap-account-manager)使用詳解ldap常用名稱解釋1.環境搭建 2.安裝openldap master3.配置slapd.conf檔案4.ldap授權及安全參數配置5.加入日志記錄6.配置ldap資料庫路徑7.啟動服務:8.測試查找内容10.為ldap master配置web管理接口

對比修改是否成功:

# diff slapd.conf.bak slapd.conf
114,117c114,122
< database bdb
< suffix "dc=my-domain,dc=com"
< checkpoint 1024 15
< rootdn "cn=Manager,dc=my-domain,dc=com"
---
> #database bdb
> #suffix "dc=my-domain,dc=com"
> #checkpoint 1024 15
> #rootdn "cn=Manager,dc=my-domain,dc=com"
> # add start by jack 2016/07/01
> database dbd
> suffix "dc=chinasoft,dc=com"
> rootdn "cn=admin,dc=chinasoft,dc=com"
> 
140a146
> rootpw {SSHA}FvBRnIPqtIi0/u11O2gOfOCrRJr+xMAr
           

添加如下内容

cat >> /etc/openldap/slapd.conf<<EOF

# add start by jack 2016/07/01

loglevel 296

cachesize 1000

checkpoint 2018 10

EOF

參數說明:

# add start by jack 2016/07/01

loglevel 296  # 日志級别,記錄日志資訊友善調試,296級别是由256(日志連接配接/操作/結果)、32(搜尋過濾器處理)、8(連接配接管理)累加的結果

cachesize 1000 # 設定ldap可以換成的記錄數

checkpoint 2018 10 # 可以設定把記憶體中的資料協會資料檔案的操作上,上面設定表示每達到2048KB或者10分鐘執行一次,checkpoint即寫入資料檔案的操作

4.ldap授權及安全參數配置

# vim /etc/openldap/slapd.conf

删除如下内容:

database config
access to *
        by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage
        by * none


# enable server status monitoring (cn=monitor)
database monitor
access to *
        by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read
        by dn.exact="cn=Manager,dc=my-domain,dc=com" read
        by * none
           

改為:

access to *

        by self write

        by anonymous auth

        by * read

centos6.5環境openldap實戰之ldap配置詳解及web管理工具lam(ldap-account-manager)使用詳解ldap常用名稱解釋1.環境搭建 2.安裝openldap master3.配置slapd.conf檔案4.ldap授權及安全參數配置5.加入日志記錄6.配置ldap資料庫路徑7.啟動服務:8.測試查找内容10.為ldap master配置web管理接口

5.加入日志記錄

# cp /etc/rsyslog.conf /etc/rsyslog.conf.bak.$(date +%F%T)

# echo '#record ldap.log by jack 2016-07-01' >> /etc/rsyslog.conf

# echo 'local4.* /var/log/ldap.log'>> /etc/rsyslog.conf

# tail -1 /etc/rsyslog.conf

local4.* /var/log/ldap.log

# service rsyslog restart

6.配置ldap資料庫路徑

# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

[[email protected] openldap]# ll /var/lib/ldap/DB_CONFIG 

-rw-r--r-- 1 root root 845 Jul  1 17:29 /var/lib/ldap/DB_CONFIG

[[email protected] openldap]# chown ldap:ldap /var/lib/ldap/DB_CONFIG 

[[email protected] openldap]# chmod 700 /var/lib/ldap/

[[email protected] openldap]# ls -l /var/lib/ldap/

total 4

-rw-r--r-- 1 ldap ldap 845 Jul  1 17:29 DB_CONFIG

驗證配置是否Ok

# slaptest -u

config file testing succeeded

7.啟動服務:

# /etc/init.d/slapd restart

# lsof -i :389

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

slapd   50735 ldap    7u  IPv4  75541      0t0  TCP *:ldap (LISTEN)

slapd   50735 ldap    8u  IPv6  75542      0t0  TCP *:ldap (LISTEN)

[[email protected] openldap]# ps -ef |grep ldap|grep -v grep

ldap     50735     1  0 17:33 ?        00:00:00 /usr/sbin/slapd -h  ldap:/// ldapi:/// -u ldap

配置随機啟動

# chkconfig slapd on

[[email protected] openldap]# chkconfig --list slapd

slapd           0:off 1:off 2:on 3:on 4:on 5:on 6:off

8.測試查找内容

# ldapsearch -LLL -W -x -H ldap://chinasoft.com -D "cn=admin,dc=chinasoft,dc=com" -b "dc=chinasoft,dc=com" "(uid=*)"

Enter LDAP Password: 

報錯:

ldap_bind: Invalid credentials (49)

解決辦法:

# rm -rf /etc/openldap/slapd.d/*
# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
57763ec6 bdb_monitor_db_open: monitoring disabled; configure monitor database to enable
config file testing succeeded
# ldapsearch -LLL -W -x -H ldap://chinasoft.com -D "cn=admin,dc=chinasoft,dc=com" -b "dc=chinasoft,dc=com" "(uid=*)"
Enter LDAP Password: 
No such object (32)
           

重新開機服務

# service slapd restart

Stopping slapd:                                            [FAILED]

Checking configuration files for slapd:                    [FAILED]

57763eee ldif_read_file: Permission denied for "/etc/openldap/slapd.d/cn=config.ldif"

slaptest: bad configuration file!

[[email protected] openldap]# chown -R ldap.ldap /etc/openldap/slapd.d/

[[email protected] openldap]# service slapd restart

Stopping slapd:                                            [FAILED]

Starting slapd:                                            [  OK  ]

# lsof -i :389

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

slapd   51164 ldap    7u  IPv4  77503      0t0  TCP *:ldap (LISTEN)

slapd   51164 ldap    8u  IPv6  77504      0t0  TCP *:ldap (LISTEN)

9.為ldap master初始化資料(如果不初始化,後面無法通過web界面管理)

增加初始的入口(entries) 

1) 建立LDIF檔案 

編輯一個LDIF格式檔案:

# vim base.ldif

dn: dc=chinasoft, dc=com
objectClass: organization
objectClass: dcObject
dc: chinasoft
o: chinasoft


dn: ou=People, dc=chinasoft, dc=com
objectClass: organizationalUnit
ou: People


dn: ou=group, dc=chinasoft, dc=com
objectClass: organizationalUnit
ou: group


dn: cn=tech, ou=group, dc=chinasoft, dc=com
objectClass: posixGroup
description:: 5oqA5pyv6YOo
gidNumber: 10001
cn: tech
           

# vim jack.ldif

dn: uid=jack,ou=People,dc=chinasoft,dc=com
objectClass: posixaccount
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
homeDirectory: /home/jack
loginShell: /bin/bash
uid: jack
cn: jack
userPassword:: 55G/ReqPKeOZ8SpgszwIQhaBXySNU4mw
uidNumber: 10005
gidNumber: 10001
sn: jack
           
# ldapadd -x -H ldap://chinasoft.com -D "cn=admin,dc=chinasoft,dc=com" -W -f base.ldif
Enter LDAP Password: 
adding new entry "dc=chinasoft, dc=com"


adding new entry "ou=People, dc=chinasoft, dc=com"


adding new entry "ou=group, dc=chinasoft, dc=com"


adding new entry "cn=tech, ou=group, dc=chinasoft, dc=com"
           

2) 運作ldapadd

# ldapadd -x -H ldap://chinasoft.com -D "cn=admin,dc=chinasoft,dc=com" -W -f base.ldif

Enter LDAP Password: 

報錯:
adding new entry "dc=chinasoft,dc=com"
ldap_add: Invalid syntax (21)
additional info: objectClass: value #0 invalid per syntax
原因:ldif檔案中存在空格 或者 個别單詞拼寫錯誤
正确書寫格式: 
(1空行)
dn:(空格) dc=mail,dc=kaspersky,dc=com(結尾無空格)
objectclass: (空格)dcObject(結尾無空格)
objectclass: (空格)organization(結尾無空格)
o: (空格)kaspersky(結尾無空格)
dc:(空格) test(結尾無空格)
(1空行)
dn: (空格)cn=test,dc=mail,dc=kaspersky,dc=com(結尾無空格)
objectclass: (空格)organizationalRole(結尾無空格)
cn: (空格)test(結尾無空格)
(結尾無空行)
           

# ldapadd -x -H ldap://chinasoft.com -D "cn=admin,dc=chinasoft,dc=com" -W -f jack.ldif 

Enter LDAP Password: 

adding new entry "uid=jack,ou=People,dc=chinasoft,dc=com"

3) 檢查是否已經開始正常工作 

# ldapsearch -LLL -W -x -H ldap://chinasoft.com -D "cn=admin,dc=chinasoft,dc=com" -b "dc=chinasoft,dc=com" "(uid=*)"

Enter LDAP Password: 

dn: uid=jack,ou=People,dc=chinasoft,dc=com

objectClass: posixAccount

objectClass: inetOrgPerson

objectClass: organizationalPerson

objectClass: person

homeDirectory: /home/jack

loginShell: /bin/bash

uid: jack

cn: jack

userPassword:: 55G/ReqPKeOZ8SpgszwIQhaBXySNU4mw

uidNumber: 10005

gidNumber: 10001

sn: jack

10.為ldap master配置web管理接口

安裝lamp環境

# yum install -y httpd php php-ldap php-gd

# rpm -qa httpd php php-ldap php-gd

php-5.3.3-47.el6.x86_64

httpd-2.2.15-53.el6.centos.x86_64

php-gd-5.3.3-47.el6.x86_64

php-ldap-5.3.3-47.el6.x86_64

安裝ldap-account-manager管理軟體

https://www.ldap-account-manager.org/lamcms/releases?page=3

将ldap-account-manager-3.7.tar.gz安裝包上傳到/var/www/html目錄

# cd /var/www/html/

[[email protected] html]# tar zxf ldap-account-manager-3.7.tar.gz 

[[email protected] html]# mv ldap-account-manager-3.7 ldap

[[email protected] html]# cd ldap/config

[[email protected] config]# cp config.cfg_sample config.cfg

[[email protected] config]# cp lam.conf_sample lam.conf

[[email protected] config]# sed -i 's#cn=Manager#cn=admin#g' lam.conf

[[email protected] config]# sed -i 's#dc=my-domain#dc=chinasoft#g' lam.conf

[[email protected] config]# diff lam.conf_sample lam.conf
13c13
< admins: cn=Manager,dc=my-domain,dc=com
---
> admins: cn=admin,dc=chinasoft,dc=com
55c55
< types: suffix_user: ou=People,dc=my-domain,dc=com
---
> types: suffix_user: ou=People,dc=chinasoft,dc=com
59c59
< types: suffix_group: ou=group,dc=my-domain,dc=com
---
> types: suffix_group: ou=group,dc=chinasoft,dc=com
63c63
< types: suffix_host: ou=machines,dc=my-domain,dc=com
---
> types: suffix_host: ou=machines,dc=chinasoft,dc=com
67c67
< types: suffix_smbDomain: dc=my-domain,dc=com
---
> types: suffix_smbDomain: dc=chinasoft,dc=com
           

# chown -R apache.apache /var/www/html/ldap

通路http://192.168.8.43/ldap/templates/login.php

使用剛才配置的 admin 和密碼chinasoft登陸即可

centos6.5環境openldap實戰之ldap配置詳解及web管理工具lam(ldap-account-manager)使用詳解ldap常用名稱解釋1.環境搭建 2.安裝openldap master3.配置slapd.conf檔案4.ldap授權及安全參數配置5.加入日志記錄6.配置ldap資料庫路徑7.啟動服務:8.測試查找内容10.為ldap master配置web管理接口

添加使用者、配置密碼

centos6.5環境openldap實戰之ldap配置詳解及web管理工具lam(ldap-account-manager)使用詳解ldap常用名稱解釋1.環境搭建 2.安裝openldap master3.配置slapd.conf檔案4.ldap授權及安全參數配置5.加入日志記錄6.配置ldap資料庫路徑7.啟動服務:8.測試查找内容10.為ldap master配置web管理接口
centos6.5環境openldap實戰之ldap配置詳解及web管理工具lam(ldap-account-manager)使用詳解ldap常用名稱解釋1.環境搭建 2.安裝openldap master3.配置slapd.conf檔案4.ldap授權及安全參數配置5.加入日志記錄6.配置ldap資料庫路徑7.啟動服務:8.測試查找内容10.為ldap master配置web管理接口
centos6.5環境openldap實戰之ldap配置詳解及web管理工具lam(ldap-account-manager)使用詳解ldap常用名稱解釋1.環境搭建 2.安裝openldap master3.配置slapd.conf檔案4.ldap授權及安全參數配置5.加入日志記錄6.配置ldap資料庫路徑7.啟動服務:8.測試查找内容10.為ldap master配置web管理接口

檢視通過web界面添加的tom使用者是否生效

# ldapsearch -LLL -W -x -H ldap://chinasoft.com -D "cn=admin,dc=chinasoft,dc=com" -b "dc=chinasoft,dc=com" "(uid=lily)"
Enter LDAP Password: 
dn: uid=lily,ou=People,dc=chinasoft,dc=com
objectClass: posixAccount
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
homeDirectory: /home/lily
loginShell: /bin/bash
uid: lily
cn: lily
uidNumber: 10007
gidNumber: 10002
userPassword:: e1NTSEF9RkY1eHFNUk5JbGJHNFpCQWtBK0pwN1RmcmdIci9Mems=
sn: lily
givenName: lily