下面简要说一下流程吧,希望对大家有所帮助:
由于10.04之后的配置又发生了点变化,这里再做点补充;见第二部分
第一部分:
主要参考:http://www.debuntu.org/ldap-server-and- ... ap-clients
http://wiki.ubuntu.org.cn/LDAPClientAuthentication
1. LDAP Server
1.1. 安装
主要安装一下套件:
代码: 全选
# apt-get install slapd ldap-utils migrationtools
重新配置
代码: 全选
#dpkg-reconfigure slapd
代码: 全选
Omit OpenLDAP server configuration? ... No
DNS domain name: ... debuntu.local //根据自己需要输入,但必须和后面的相关地方保持一致
Name of your organization: ... Whatever & Co
Admin Password: XXXXX
Confirm Password: XXXXX
OK
BDB
Do you want your database to be removed when slapd is purged? ... No
Move old database? ... Yes
Allow LDAPv2 Protocol? ... No
现在都用新的数据格式存放在 /etc/ldap/slap.d/ 目录下面,dpkg-reconfigure slapd 可以实现ldap服务端的配置,按照要求填写即可,相信大家都能读懂里面的提示
现在我们已经设置好了域和管理员用户: “admin”
检查一下你是否可以顺利的访问你的LDAP服务:
输入:
代码: 全选
$ ldapsearch -x -b dc=debuntu,dc=local
代码: 全选
ldap_bind: Can't contact LDAP server (-1)
代码: 全选
# /etc/init.d/slapd start
我们可以通过 migrationtools 来很容易的导入本地的用户和用户组数据:
代码: 全选
#cd /usr/share/migrationtools/
代码: 全选
$DEFAULT_MAIL_DOMAIN = "debuntu.local";
$DEFAULT_BASE = "dc=debuntu,dc=local";
代码: 全选
# ./migrate_group.pl /etc/group ~/group.ldif
# ./migrate_passwd.pl /etc/passwd ~/passwd.ldif
people_group.lidf 如下:
代码: 全选
dn: ou=People, dc=debuntu, dc=local
ou: People
objectclass: organizationalUnit
dn: ou=Group, dc=debuntu, dc=local
ou: Group
objectclass: organizationalUnit
好了,现在我们开始导入数据:
ps:如果people_group.lidf 直接从网页拷贝的话可能会有点问题,得用工具重新编辑一下
代码: 全选
# ldapadd -x -W -D "cn=admin,dc=debuntu,dc=local" -f ~/people_group.ldif
# ldapadd -x -W -D "cn=admin,dc=debuntu,dc=local" -f ~/group.ldif
# ldapadd -x -W -D "cn=admin,dc=debuntu,dc=local" -f ~/passwd.ldif
* -x 指示我们不用 sasl
* -W 指定要输入密码再进行操作
* -D 识别系统管理员
* -f 指定要输入的文件
到目前为止,服务器端已经建立好了。
2、客户端
首先安装相关套件:
代码: 全选
#apt-get install libnss-ldap libpam-ldap nscd
LDAP Account for root: cn=admin,dc=debuntu,dc=local
Password: XXXX
Make local root database admin: yes
Database require logging in: No
Root login account: cn=admin,dc=debuntu,dc=local
Root login password: XXXX
接下来修改相关的配置文件: 注意大部分只有 debain用户需要进行修改,ubuntu 9.10+在安装相关套件的时候已经帮你修改好了,所以ubuntu用户只需最后修改一下认证的开关文件就行 nsswitch.conf
代码: 全选
#vi /etc/libnss-ldap.conf
host ldap
base dc=debuntu,dc=local
rootbinddn cn=admin,dc=debuntu,dc=local
#vi /etc/pam_ldap.conf
host ldap
base dc=debuntu,dc=local
rootbinddn cn=admin,dc=debuntu,dc=local
pam_ldap: error trying to bind (Invalid DN syntax)
那么很可能的原因就是 rootbinddn cn=admin,dc=debuntu,dc=local 有问题,因为在配置的时候只是生成 rootbinddn admin,如果是这样的话,那你按照上面的相关提示进行补全再试试吧
代码: 全选
#vi /etc/pam.d/common-account
account sufficient pam_ldap.so
account required pam_unix.so
#if you want user homedir to be created on first login
#session required pam_mkhomedir.so umask=0022 skel=/etc/skel/ silent
代码: 全选
#vi /etc/pam.d/common-auth
auth sufficient pam_ldap.so
auth required pam_unix.so nullok_secure use_first_pass
代码: 全选
vi /etc/pam.d/common-password
password sufficient pam_ldap.so
password required pam_unix.so nullok obscure min=4 max=8 md5
#vi /etc/pam.d/common-session
session sufficient pam_ldap.so
session required pam_unix.so
session optional pam_foreground.so //有些系统可能会提示找不到这个直接注释掉就行,好像是没什么用
代码: 全选
# vim /etc/nsswitch.conf
passwd: files ldap
group: files ldap
shadow: files ldap
可以先进行
代码: 全选
getent passwd
第二部分
参见这里:zzhttp://www.opinsys.fi/setting-up-openld ... -04-alpha2
由于在10.04的时候安装slapd 系统没有进行默认的域名和系统管理员配置,所以操作就跟之前的有点不太一样
1、安装相关的软件,跟之前的一样
代码: 全选
sudo apt-get install slapd ldap-utils
代码: 全选
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/misc.ldif
create_database.ldif:
代码: 全选
# Load hdb backend module
dn: cn=module{0},cn=config
objectClass: olcModuleList
cn: module
olcModulepath: /usr/lib/ldap
olcModuleload: {0}back_hdb
# Create the hdb database and place the files under /var/lib/ldap
dn: olcDatabase={1}hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {1}hdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=edu,dc=example,dc=org
[color=#FF0000]#这里需要注意一下,如果你之前的服务器由配置过ldap的话可以考虑吧一下的admin的dn修改一下以便跟以前的配置保持一致这样就可以避免在客户端进行不必要的修改,-----delete me [复制的时候][/color]
olcRootDN: uid=admin,ou=People,dc=edu,dc=example,dc=org
olcRootPW: example
olcDbConfig: {0}set_cachesize 0 2097152 0 begin_of_the_skype_highlighting 0 2097152 0 end_of_the_skype_highlighting
olcDbConfig: {1}set_lk_max_objects 1500
olcDbConfig: {2}set_lk_max_locks 1500
olcDbConfig: {3}set_lk_max_lockers 1500
olcLastMod: TRUE
olcDbCheckpoint: 512 30
olcDbIndex: uid pres,eq
olcDbIndex: cn,sn,mail pres,eq,approx,sub
olcDbIndex: objectClass eq
代码: 全选
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f create_database.ldif
init_database.ldif
代码: 全选
dn: dc=edu,dc=example,dc=org
objectClass: dcObject
objectclass: organization
o: edu.example.org
dc: edu
description: LDAP root
dn: ou=People,dc=edu,dc=example,dc=org
objectClass: top
objectClass: organizationalUnit
ou: People
[color=#FF0000]#以前的Groups可能是Group,如果想和之前的配置文件保持一致请自行修改其一[/color]
dn: ou=Groups,dc=edu,dc=example,dc=org
objectClass: top
objectClass: organizationalUnit
ou: Groups
代码: 全选
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f init_database.ldif
acls.ldif:
代码: 全选
dn: olcDatabase={1}hdb,cn=config
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by dn="uid=admin,ou=People,dc=edu,dc=example,dc=org" write by anonymous auth by self write by * none
olcAccess: {1}to dn.subtree="" by * read
olcAccess: {2}to * by dn="uid=admin,ou=People,dc=edu,dc=example,dc=org" write by * read
代码: 全选
sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f acls.ldif
# Show the current configuration:
查看当前的配置
代码: 全选
sudo ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=config
以陌生人身份查看当前目录结构下的数据
代码: 全选
ldapsearch -x -h localhost -b dc=edu,dc=example,dc=org
sudo slapcat
ok,ldap的基本配置基本搞定,接下来就可以按照之前的方法进行数据的导入操作鸟,best wishes!
客户端 设置不变,如上第一部分
有任何疑问欢迎一起交流: hitkeky AT gmail DOT com