官方介绍文档:http://www.openldap.org/doc/admin24/intro.html
中文资料:http://learn.hnvs.cy.edu.tw/course/view.php?id=72
LDIF文件格式例子:
1: dn:dc=dlw,dc=com
2: objectclass:top
3: objectclass:dcobject
4: objectclass:organization
5: dc:dlw
6: o:dlw,Inc.
7:
8: dn:ou=managers, dc=dlw, dc=com
9: ou:managers
10: objectclass:organizationalUnit
11:
12: dn:cn=dlw,ou=managers,dc=dlw,dc=com
13: cn:dlw
14: sn:dongliwei
15: objectclass:person
16:
17: dn:cn=test,ou=managers,dc=dlw,dc=com
18: cn:test
19: sn:Test User
20: objectclass:person
官方文档:http://www.openldap.org/doc/admin24/
一:LDAP-master安装和配置
----------------------------------
1.LDAP安装:
yum install openldap openldap-*
yum install nscd nss-pam-ldapd nss-* pcre pcre-*
rpm -qa |grep openldap 安装完成后查看下有5个以上包
2.复制配置文件到目录:
cd /etc/openldap/
cp /usr/share/openldap-servers/slapd.conf.obsolete slapd.conf (这是2.3的老办法,还可以用)
3.生成密码:
slappasswd -s wmj #生成密码,密码为wmj
slappasswd -s wmj |sed -e "s#{SSHA}#rootpw\t{SSHA}#g" >>slapd.conf (生成root密码写入配置文件)
4.编辑配置文件:
cp slapd.conf slapd.conf.ori (先备份)
vim /etc/openldap/slapd.conf
database bdb
#checkpoint 1024 15
suffix "dc=wmj,dc=com"
rootdn "cn=admin,dc=wmj,dc=com" (管理员dc)
5.配置rsyslog来记录ldap的日志:
echo "local4.* /var/log/ldap.log" >>/etc/rsyslog.conf
/etc/init.d/rsyslog restart
6.配置ldap数据库路径:
grep "directory" slapd.conf (可以修改数据库默认路径)
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG (复制默认数据库)
chown ldap:ldap /var/lib/ldap/DB_CONFIG
chmod 700 /var/lib/ldap/DB_CONFIG
slaptest -u (检查配置文件命令)
7.启动ldap服务:
/etc/init.d/slapd start
8.查询ldap所有条目:
ldapsearch -LLL -W -x -H ldap://127.0.0.1 -D "cn=admin,dc=wmj,dc=com" -b "dc=wmj,dc=com" "(uid=*)"
如果报错:ldap_bind: Invalid credentials (49) 说明其他配置正确了。
这是因为2.4和2.3配置文件兼容问题。
参考:http://www.openldap.org/doc/admin24/appendix-common-errors.html
需要先删除默认的配置文件,根据2.3的配置文件重新生成一份。
rm -rf /etc/openldap/slapd.d/*
slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d (重新生成配置文件)
chown -R ldap:ldap /etc/openldap/slapd.d/
/etc/init.d/slapd restart (再重启下服务)
9.修改后以后再查询一遍:
ldapsearch -LLL -W -x -H ldap://127.0.0.1 -D "cn=admin,dc=wmj,dc=com" -b "dc=wmj,dc=com" "(uid=*)"
No such object (32) (出现这个说明正确了)
10.安装ldap的web管理服务:
yum install httpd php php-ldap php-gd
https://www.ldap-account-manager.org/ (通过官网下载3.9版本的客户端)
ldap-account-manager-3.9.tar.gz
mv ldap-account-manager-3.9 /var/www/html/ldap (解压以后移动到php默认目录,必须改名成ldap)
11.配置ldap-account-manager服务:
cd /var/www/html/ldap/config
cp config.cfg_sample config.cfg
cp lam.conf_sample lam.conf
vim lam.conf
admins: cn=admin,dc=wmj,dc=com
types: suffix_user: ou=People,dc=wmj,dc=com
types: suffix_group: ou=group,dc=wmj,dc=com
types: suffix_host: ou=machines,dc=wmj,dc=com
types: suffix_smbDomain: dc=wmj,dc=com
chown -R apache:apache /var/www/html/ldap/
12.启动ldap-web服务:
/etc/init.d/httpd restart
http://172.16.1.210/ldap/ (访问地址)
13.ldap-web的使用:
进入web以后,点击右上角的 LAM configuration
输入默认密码“lam”
点击,,在最下面配置下密码就可以了,
回到首页,输入之前生成的ldap的admin密码,我这里是“wmj”进入web页面。
第一次进入会要建立初始化数据,点建立就可以。
14.数据导出备份:
ldapsearch -LLL -w wmj -x -H ldap://127.0.0.1 -D "cn=admin,dc=wmj,dc=com" -b "dc=wmj,dc=com"
>/tmp/bak-ldap.ldif
-w:后面是ldap的密码
-W:交互式输入密码
15.备份数据导入:
ldapadd -x -H ldap://127.0.0.1 -D "cn=admin,dc=wmj,dc=com" -W -f /tmp/bak-ldap.ldif
二:LDAP-client安装和配置
--------------------------------------
1.安装相关服务:
yum install openldap-clients openldap nss nscd nss-pam-ldapd nss_ldap
2.修改配置:
一:交互式图形化配置办法,
使用setup,选择“Authentication configuration”,勾选下面三项“Use LDAP”,“Use LDAP Authentication”,“Local authorization is sufficient”,下一步输入ldap地址。
二. 命令行配置:
authconfig --enablemd5 --enablemkhomedir --enableldap --enableldapauth --enablelocauthorize \
--ldapserver=ldap://172.16.1.210 --ldapbasedn="dc=wmj,dc=com" --update
--enablemkhomedir:会在ldap首次登陆后自动创建家目录
三.手动修改配置文件:
vim /tmp/nsswitch.conf
passwd: files ldap
shadow: files ldap
group: files ldap
netgroup: files ldap
automount: files ldap
vim /etc/sysconfig/authconfig
USELDAPAUTH=yes
USELDAP=yes
USELOCAUTHORIZE=yes
vim /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 broken_shadow
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
vim /etc/openldap/ldap.conf
TLS_CACERTDIR /etc/openldap/cacerts
URI ldap://172.16.1.210/
BASE dc=wmj,dc=com
vim /etc/pam_ldap.conf
#host 127.0.0.1
base dc=wmj,dc=com
----------底部加上------------
uri ldap://172.16.1.210/
ssl no
tls_cacertdir /etc/openldap/cacerts
pam_password md5
4.测试:
直接输入id wmj04 就可以看到用户了
5.ldap用户可以直接使用visudo 来配置。
6.只允许某些LDAP用户组登陆主机:
vim /etc/nslcd.conf
filter passwd (|(gidNumber=10002)(gidNumber=10001))
限制gid为10001,10002的ldap用户才能登陆主机。(配置文件底部追加)
/etc/init.d/nslcd restart
三:LDAP-slave主从同步配置
---------------------------------------------
1.安装LDAP服务:
重复第一章的1-9步骤即可。
2.配置主从同步(2.4):
修改主配置文件 vim /etc/openldap/slapd.conf
moduleload syncprov.la
index entryCSN,entryUUID eq
overlay syncprov
syncprov-checkpoint 100 10
syncprov-sessionlog 100
修改从配置文件 vim /etc/openldap/slapd.conf
index entryCSN,entryUUID eq
syncrepl
rid=123
provider=ldap://172.16.1.210:389
type=refreshOnly
interval=00:00:03:00 #同步时间间隔 天:小时:分钟:秒
retry="60 10 300 +"
searchbase="dc=wmj,dc=com"
filter="(objectClass=*)"
scope=sub
attrs="*,+"
schemachecking=off
bindmethod=simple
binddn="cn=admin,dc=wmj,dc=com"
credentials=wmj #密码
两台服务都要记得重新生成配置文件:
rm -rf /etc/openldap/slapd.d/*
slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
chown -R ldap:ldap /etc/openldap/slapd.d
service slapd restart
3.允许用户自行修改密码:
vim /etc/openldap/slapd.conf
修改配置文件,在database config前添加如下内容(注意格式!)
access to attrs=userPassword
by self write
by anonymous auth
by * none
access to * by * read
|