neverend的日志

不记录,终将被遗忘。 一万年太久,只争朝夕。 他们用数字构建了整个世界。

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  62 Posts :: 1 Stories :: 17 Comments :: 0 Trackbacks
服务器端 192.1.0.160
客户机端 192.1.0.221

一、在服务器端配置LDAP服务:
1.下载 openldap-2.4.11.tar.gz和db-4.7.25.tar.gz

2.安装BerkeleyDB
#rpm -qa|grep db
# tar xvf db
-4.7.25.tar.gz
# cd db_4.
7.25
# cd build_unix
/
# ..
/dist/configure -prefix=/usr/local/BerkeleyDB
# make
# make install

安装完成后执行
#cp /usr/local/BerkeleyDB/include/* /usr/include/
#cp /usr/local/BerkeleyDB/lib/* /usr/lib/
可避免如下错误:
checking   Berkeley   DB   version   for   BDB/HDB   backends...   no   
configure:   error:   BDB/HDB:   BerkeleyDB   version   incompatible

3.安装OpenLDAP
#gunzip -c openldap-2.4.15.tgz | tar xvfB -
#cd openldap
-2.4.15/
#.
/configure --prefix=/usr/local/openldap
#make depend
#make
#make install

4.启动LDAP服务
#cd /usr/local/openldap/libexec
#.
/slapd

5.测试LDAP服务是否正常启动
#ldapsearch --'' -s base '(objectclass=*)' namingContexts
返回
dn:

  namingContexts: dc=my-domain,dc=com
则说明正常启动

6.正常关闭LDAP服务
#kill -INT `cat /usr/local/openldap/var/run/slapd.pid`

7.日志配置
日志级别是累加的:296 = 256 日志连接/操作/结果 + 32 搜索过滤器处理 + 8 连接管理:
文件slapd.config中添加:
loglevel 296

日志信息会被记录到 syslogd LOG_LOCAL4 机制中。还需要将下面的内容添加到 /etc/syslog.conf 中:

local4.debug /var/log/slapd.log

重启syslog服务
service syslog restart

在/var/log/slapd.log中即可查看ldap的日志信息。
 
二、客户机端制作账号迁移脚本
IBM的《使用 OpenLDAP 集中管理用户帐号》指出RedHat Enterprise 版本会自带
openldap-server、openldap-client和一些账号移植的脚本
但是在内网160和我昨天在虚拟机上装的RedHat上却没有找到相关文件。
今天又在虚拟机上装了一个,发现默认安装并不包括这些,需要定制安装:

在光盘安装过程中有个界面让选择默认安装还是定制安装,选择“定制安装”,下一步,勾选如下软件包:

开发--开发库
openldap-devel-2.3.27
perl-ldap
perl-mozllla-ldap

服务器——网络服务器
openldap-servers-2.3.27

基本系统——系统工具
openldap-client-2.3.27

基本系统——老的软件支持
compat-db
compat-openldap

安装完成后,就可以找到移植脚本和LDAP的一些文件了。

迁移密码和 shadow 信息

Red Hat 所提供的 openldap-servers 包包含 PADL Software Pty Ltd. 公司的 MigrationTools 工具。我们将使用这些工具将数据从 Linux 系统文件(例如 /etc/group 和 /etc/password)转换成 LDAP LDIF 格式,这是数据库信息的一种文本格式的表示。这种格式是行界定、冒号分隔的属性-值对。

有一组 Perl 脚本被安装到 /usr/share/openldap/migration/ 中执行迁移。这些 Perl 脚本的配置信息包含在 migrate_common.ph 文件的开头。对于我们的目的来说,只需要修改命名前缀的变量来使用条目的识别名就足够了,如下所示:

$DEFAULT_BASE = "dc=mydomain,dc=com"

在进行这些修改之后,请运行脚本 migrate_base.pl,它会创建根项,并为 Hosts、Networks、Group 和 People 等创建低一级的组织单元:


 运行 migrate_base.pl
# ./migrate_base.pl > base.ldif
            

编辑 base.ldif,删除除下面之外的所有条目:


 base.ldif 条目
# cat base.ldif
            dn: dc=mydomain,dc=com
            dc: ibm
            objectClass: top
            objectClass: domain
            dn: ou=People,dc=ibm,dc=com
            ou: People
            objectClass: top
            objectClass: organizationalUnit
            dn: ou=Group,dc=ibm,dc=com
            ou: Group
            objectClass: top
            objectClass: organizationalUnit
            

在 LDAP 服务器上,使用 OpenLDAP 客户机工具 ldapadd 将以下条目插入到数据库中。简单身份验证必须要使用 -x 选项指定。在 slapd.conf 中定义的 rootdn 身份验证识别名是 “cn=Manager,dc=mydomain,dc=com”。对于简单身份验证来说,必须使用密码。选项 -W 强制提示输入密码。这个密码就是在 slapd.conf 文件中指定的 rootpw 参数的值。包含这些条目的 LDIF 文件是使用 -f 选项指定的:


 使用 ldapadd 插入条目
# ldapadd -x -D "cn=Manager,dc=mydomain,dc=com" -W -f base.ldif
            

接下来,从 /etc/group 中迁移 ldapuser 组:


 迁移 ldapuser 组
# grep ldapuser /etc/group > group.in
            # ./migrate_group.pl group.in > group.ldif
            #  cat group.ldif
            dn: cn=ldapuser,ou=Group,dc=mydomain,dc=com
            objectClass: posixGroup
            objectClass: top
            cn: ldapuser
            userPassword: {crypt}x
            gidNumber: 500
            # ldapadd -x -D "cn=Manager,dc=mydomain,dc=com" -W -f group.ldif
            

最后,从 /etc/passwd 和 /etc/shadow 中迁移 ldapuser 的信息:


 迁移 ldapuser 信息
# grep ldapuser /etc/passwd > passwd.in
            # ./migrate_passwd.pl passwd.in > passwd.ldif
            # cat passwd.ldif
            dn: uid=ldapuser,ou=People,dc=mydomain,dc=com
            uid: ldapuser
            cn: ldapuser
            objectClass: account
            objectClass: posixAccount
            objectClass: top
            objectClass: shadowAccount
            userPassword: {crypt$1$TeOlOcMc$cpQaa0WpLSFRC1HIHW5bt1
            shadowLastChange: 13048
            shadowMax: 99999
            shadowWarning: 7
            loginShell: /bin/bash
            uidNumber: 500
            gidNumber: 500
            homeDirectory: /home/ldapuser
            gecos: ldapuser
            # ldapadd -x -D "cn=Manager,dc=mydomain,dc=com" -W -f passwd.ldif
            

三、客户机端配置NSS&PAM
参考IBM《使用 OpenLDAP 集中管理用户帐号》 配置 LDAP 客户机部分
方法1 图形界面配置
authconfig-tui
方法2 修改配置文件
/etc/ldap.conf、/etc/nsswitch.conf、/etc/sysconfig/authconfig 和/etc/pam.d/system-auth
我的/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_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
password    sufficient    pam_unix.so md5 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_mkhomedir.so skel
=/etc/skel/ umask=0022
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

一点说明:pam_mkhomedir.so 负责用户初次登陆没有home目录时为其创建home目录。没有这项配置的话,新用户登陆可能会报/home目录找不到的错误。

问题:
SSL的配置
主从LDAP服务器的配置
日志级别的配置

PAM的作用究竟是什么?
身份鉴别到底是由系统完成的还是LDAP完成的?
资源和组织的信息如何组织?
授权是如何进行的?
posted on 2010-11-02 22:49 neverend 阅读(1434) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: