{"title": "CentOS\u4f7f\u7528OpenLDAP\u4f5c\u4e3a\u57df\u63a7", "update_time": "2012-12-09 15:13:08", "tags": "openldap", "pid": "185", "icon": "linux.png"}
## OpenLDAP服务端配置 1.Yum安装OpenLDAP服务端和OpneLDAP客户端 ``` yum install -y openldap-clients openldap-servers ``` 2.配置OpenLDAP服务端 ``` vim /etc/openldap/slapd.conf ``` 修改如下对应字段, ``` suffix "dc=opstool,dc=com" #这个表示LDAP的域 rootdn "cn=Manager,dc=opstool,dc=com" #域管理员的DN rootpw {SSHA}Gk2E2zfKJkPEFaNNiDpJu5dz6OIScs8q #域管理员加密后的密码 ``` 域管理员的密码可以运行slappasswd产生 3.启动OpenLDAP服务 ``` service ldap start chkconfig ldap on ``` 启动完成后,执行ldapsearch -x 检查是否有如下输出 ``` # extended LDIF # # LDAPv3 # base <> with scope subtree # filter: (objectclass=*) # requesting: ALL # # search result search: 2 result: 32 No such object # numResponses: 1 ``` 表示服务已经启动成功 4.导入基础结构 ``` base.ldif #内容如下: dn: dc=opstool,dc=com dc: opstool objectClass: top objectClass: domain dn: ou=People,dc=opstool,dc=com ou: People objectClass: top objectClass: organizationalUnit dn: ou=Group,dc=opstool,dc=com ou: Group objectClass: top objectClass: organizationalUnit 然后执行ldapadd -x -D "cn=Manager,dc=opstool,dc=com" -W -f base.ldif ``` 5.导入用户组group.ldif ``` group.ldif #内容如下: dn: cn=admin,ou=Group,dc=opstool,dc=com cn: admin objectClass: posixGroup objectClass: top gidNumber: 510 然后执行ldapadd -x -D "cn=Manager,dc=opstool,dc=com" -W -f group.ldif ``` 6.导入用户信息passwd.ldif ``` passwd.ldif #内容如下 dn: uid=ldapuser,ou=People,dc=opstool,dc=com uid: ldapuser cn: ldapuser objectClass: account objectClass: posixAccount objectClass: top objectClass: shadowAccount userPassword: {SSHA}cbkawTuSdalcKClw0fCYRHQ99quSKJ0Y shadowLastChange: 14963 shadowMin: 0 shadowMax: 99999 shadowWarning: 7 loginShell: /bin/bash uidNumber: 510 gidNumber: 510 homeDirectory: /home/ldapuser 然后执行ldapadd -x -D "cn=Manager,dc=opstool,dc=com" -W -f passwd.ldif ``` userPassword的加密密码可以通过slappasswd产生 7.现在我们来查询一下LDAP数据库里面的记录: ``` ldapsearch -x -b "dc=opstool,dc=com" ``` 能查询出刚才添加的记录,就说明前面的操作都OK了。 ## 客户端配置 1. 安装 ``` yum install -y nss-pam-ldapd ypbind pam_ldap ``` 2. 执行authconfig-tui,图形化界面配置: ``` ┌────────────────┤ Authentication Configuration ├─────────────────┐ │ │ │ User Information Authentication │ │ [ ] Cache Information [ ] Use MD5 Passwords │ │ [ ] Use Hesiod [*] Use Shadow Passwords │ │ [*] Use LDAP [*] Use LDAP Authentication │ │ [ ] Use NIS [ ] Use Kerberos │ │ [ ] Use Winbind [*] Use Fingerprint reader │ │ [ ] Use Winbind Authentication │ │ [*] Local authorization is sufficient │ │ │ │ ┌────────┐ ┌──────┐ │ │ │ Cancel │ │ Next │ │ │ └────────┘ └──────┘ │ │ │ │ │ └─────────────────────────────────────────────────────────────────┘ ``` User Information选中Use LDAP,Authentication选中Use LDAP Authentication 填好后选Next ``` ┌─────────────────┤ LDAP Settings ├─────────────────┐ │ │ │ [ ] Use TLS │ │ Server: ldap://opstool.com/_____________________ │ │ Base DN: dc=opstool,dc=com_______________________ │ │ │ │ ┌──────┐ ┌────┐ │ │ │ Back │ │ Ok │ │ │ └──────┘ └────┘ │ │ │ │ │ └───────────────────────────────────────────────────┘ ``` Server写刚才LDAP服务器的地址,Base DN为服务器端填写的root dn 完成后,可以使用刚才添加的LDAP 用户来登录了 ## LDAP客户端常用命令操作 1.搜索本LDAP服务器 ldapsearch -x -b "过滤选项"。示例如下: ``` ldapsearch -x -b "dc=opstool,dc=com" ``` 2.将ldif添加到LDAP数据库中 ``` ldapadd -x -D "cn=Manager,dc=opstool,dc=com" -W -f file.ldif ldapadd -x -W -D "cn=Manager,dc=opstool,dc=com" -f passwd.ldif ``` 3.修改LDAP中的字段 ``` ldapmodify -x -W -D "cn=Manager,dc=opstool,dc=com" #以下为手动输入 dn: cn=defaults,ou=SUDOers,dc=opstool,dc=com changetype: modify delete: sudoOption sudoOption: !syslog ``` 4.删除一条DN : ldapdelete -x -W -D "cn=Manager,dc=opstool,dc=com" 待删除DN,例如 ``` ldapdelete -x -W -D "cn=Manager,dc=opstool,dc=com" "uid=ldapuser,ou=People,dc=opstool,dc=com" ``` PS: Windows可以使用http://www.ldapbrowser.com/ 这个工具来连接服务端进行相应操作