LDAP服务器用于统一认证账户信息,有点类似通讯录,实现集中管理用户账户的功能。系统为CentOS6.3。
一、安装openldap
yum install openldap openldap-servers openldap-clients openldap-devel compat-openldap
二、安装Berkeley DB
yum install db4 db4-utils
openldap使用Berkeley DB存储数据。
三、安装web server
由于目录服务是一套复杂的概念,所以这里安装phpLDAPadmin方便于管理。
yum install httpd php php-bcmath php-gd php-mbstring php-xml php-ldap
配置apache、php过程略过。
四、安装phpldapadmin
cd /tmp
wget
http://sourceforge.net/projects/phpldapadmin/files/phpldapadmin-php5/1.2.3/phpldapadmin-1.2.3.zip/download
unzip phpldapadmin-1.2.3.zip
cp -R phpldapadmin-1.2.3 /var/www/html/phpldapadmin
cd /var/www/html/phpldapadmin/config
cp config.php.example config.php
五、配置openldap
安装完openldap后我们看到在/etc/openldap目录下有certs、schema、slapd.d三个目录和ldap.conf一个文件。
1)certs目录用于存放TLS认证的CA证书等。
2)(该目录用于旧的配置方法,已废弃)schema目录下有.schema文件和.ldif文件。
3)slapd.d目录是openldap2.4.x的配置目录。/etc/openldap/slapd.d/cn=config存放数据库的配置文件,/etc/openldap/slapd.d/cn=config/cn=schema存放.ldif文件。
4)ldap.conf是openldap client的配置文件。
1、
首先生成管理员密码:
slappasswd
输完两遍密码后会生成一个加密散列字符串,保存下来。
如:
{SSHA}JiW3WU7jREOTOMZKT6CklgJZriLIj738
2、
编辑数据库配置文件,设置域名:
vim /etc/openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
找到:
olcSuffix: dc=my-domain,dc=com
修改dc:
olcSuffix: dc=ldap,dc=live-in,dc=org
设置目录树后缀(域名),作用是定义根的名字。
找到:
olcRootDN: cn=Manager,dc=my-domain,dc=com
修改dc:
olcRootDN: cn=admin,dc=ldap,dc=live-in,dc=org
设置管理员DN。
PS:LDAP管理员cn默认为Manager,可以改成自己需要的名字。
在olcDatabase={2}bdb.ldif最后添加:
olcRootPW: {SSHA}JiW3WU7jREOTOMZKT6CklgJZriLIj738
设置管理员密码。
3、
指定监控权限:
vim /etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif
找到:
dn.base=\"cn=manager,dc=my-domain,dc=com\"
修改为:
dn.base=\"cn=admin,dc=ldap,dc=live-in,dc=org\"
修改默认域名。
4、
设置Database Cache:
cp
/var/lib/ldap/DB_CONFIG
/usr/share/openldap-servers/DB_CONFIG.example
设置权限:
chown -R ldap:ldap /var/lib/ldap/
测试配置文件是否有错:
slaptest -u
提示:
config file testing succeeded
测试通过。
启动slapd服务:
service slapd start
六、配置phpldapadmin
1、编辑phpldapadmin配置文件
vim /var/www/html/phpldapadmin/config/config.php
找到\"Define your LDAP servers in this section\"区块。
将:
$servers->setValue('server','host','127.0.0.1');
$servers->setValue('server','port',3);
前的注释去掉。
将:
$servers->setValue('server','base',array(''));
修改为:
$servers->setValue('server','base',array('dc=ldap,dc=live-in,dc=org'));
在array中输入设置的olcSuffix。
将:
$servers->setValue('login','auth_type','session');
前的注释去掉。
2、
设置用户和组:
chown -R apache:apache /var/www/html/phpldapadmin
3、
浏览器访问:http://IP/phpldapadmin/index.php
使用RootDN和RootPW登陆:
cn=admin,dc=ldap,dc=live-in,dc=org
123456
此时左侧目录树会显示:This base cannot be created with PLA.
3、添加根节点
cd /etc/openldap
vim base.ldif
输入:
dn: dc=ldap,dc=live-in,dc=org
o: ldap
objectclass: dcObject
objectclass: organization
添加数据库:
ldapadd -f base.ldif -x -D cn=admin,dc=ldap,dc=live-in,dc=org -W
输入密码后会提示:
adding new entry \"dc=ldap,dc=live-in,dc=org\"
在浏览器里刷新一下条目就会显示出根节点。
-------------------------我是分割线-------------------------
七、接下来做一个实验
A机器为上面安装的LDAP服务器,用户从LDAP服务器上获取账户密码登录另一台B机器。B机器上先搜索本地账户,如果没有就从A机器获得账户。A机器IP为192.168.1.100,B机器IP为192.168.1.200。
phpldapadmin设置
1、浏览器登陆phpldapamdin,点击根节点,点击创建一个子条目,选择Posix Group。创建一个名为ldaptest的组。
2、点击cn=ldaptest,点击创建一个子条目,选择User Account。
3、设定用户名,密码,GID,家目录,登陆的shell。其中的User ID就是登陆的用户名。
客户端(B机器)设置
安装所需的软件包:
yum install openldap-clients pam_ldap nss-pam-ldapd
1、编辑openldap客户端配置文件
vim /etc/openldap/ldap.conf
输入:
URI ldap://192.168.1.100
BASE dc=ldap,dc=live-in,dc=org
在客户端测试下搜索数据库:
ldapsearch -x -b \"dc=ldap,dc=live-in,dc=org\"
2、
vim /etc/pam_ldap.conf
修改:
host 192.168.1.100
base dc=ldap,dc=live-in,dc=org
3、
使用图形交互界面设置pam和ldap其余内容
authconfig-tui
User Information选择:
Use LDAP
Authentication选择:
Use Shadow Passwords
Use LDAP Authentication
Local authorization is sufficient
PS:交互界面修改了/etc/pam_ldap.conf、/etc/nsswitch.conf这三个文件。
4、设置第一次登陆时建立家目录
/etc/pam.d/system-auth、
vim /etc/pam.d/system-auth
在最后添加:
session required pam_mkhomedir.so skel=/etc/skel umask=0022
重启B机器使设置生效。随后使用test1用户名及密码登陆。
显示:
Creating directory '/home/users/test1'.
Last login: Fri Feb 8 14:00: 2013 from 192.168.1.200
-sh-4.1$
登陆成功!
一:安装所需要的环境
问题:
解决方法:
# vi config.php
$servers->newServer('ldap_pla');
$servers->setValue('server','name','LDAP Server');
$servers->setValue('server','host','127.0.0.1');
$servers->setValue('server','port',3);
$servers->setValue('server','base',array('dc=example,dc=com')); 283行
$servers->setValue('login','auth_type','session');
$servers->setValue('login','bind_id','cn=root,dc=example,dc=com'); 307
$servers->setValue('login','bind_pass','111111'); 312
$servers->setValue('server','tls',false);
再使用:
our php memory limit is low – currently 16M, you should increase it to atleast 24. This is normally controlled in /etc/php.ini.
vi /etc/php.ini
二:phpldapadmin
三:创建ou
四:创建cn
安装完后,用phpldapadmin 时,不能添加UID号 和 GID 号,解决办法是要先用ldapadd,添加用户的uidNumber,gidNumber
如:
vim zxy.ldif
# zxy, people, example.com
dn: uid=zxy,ou=people,dc=example,dc=com
uid: zxy
cn: zxy
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: 111111
shadowLastChange: 14323
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 1005
gidNumber: 1005
homeDirectory: /home/zxy
使用命令添加:
ldapadd -x -D "cn=root,dc=example,dc=com" -W -f zxy.ldif
查看
Ldapsearch -x –b “dc=example,dc=com"
至此就可以正常使用phpldapadmin添加用户了。。。
zxy用户创建完后:
还要给组命名(这个在真正创建用户前就做—-zxy这个用户完成组引导)
验证方式:
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- ovod.cn 版权所有 湘ICP备2023023988号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务