zoukankan      html  css  js  c++  java
  • LDAP服务配置

    LDAP服务配置

    1. ldap服务相关软件安装

    用命令rpm -qa |grep ldap,可以发现系统中已经默认安装如下和ldap相关软件:

    openldap-2.3.43-12.el5

    python-ldap-2.2.0-2.1

    nss_ldap-253-25.el5

    第一个为openldap包,用来提供LDAP服务的基本文件目录

    python-ldap 提供用于访问 LDAP 目录服务器的 Python 面向对象接口

    nss_ldap用于与LDAP服务器通信,可以让系统识别ldap中的用户和群组。

    我们还需要安装LDAP的服务端和客户端,版本和安装命令如下:

    #rpm –ivh libtool-ltdl-1.5.22-7.el5_4.i386.rpm(服务器端依赖文件)

    #rpm –ivh openldap-servers-2.3.43-12.e15-1.3.i386.rpm

    #rpm –ivh openldap-clients-2.3.43-12.e15-1.3.i386.rpm

    2. LDAP服务器配置

    2.1 创建复制BDB数据库配置文件

    LDAP服务器默认采用BDB(伯克利)数据库作为后台,CentOS中已经默认安装,需要先将/etc/openldap/目录下的DB-CONFIG.example文件复制到/var/lib/ldap/目录下并更名为DB-CONFIG并更改权限为ldap所有。

    #cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

    #chown ldap:ldap /var/lib/ldap/DB_CONFIG

    2.2 服务器文件配置.

    LDAP服务器的主配置文件为/etc/openldap/slapd.conf,找到

    suffix “dc=my-domain,dc=com”

    rootdn “cn=Manager,dc=my-domain,dc=com” 两行。

    根据实际情况修改为:

    suffix “dc=Wistronits,dc=com” 设定域名后缀

    rootdn “cn=Manager,dc= Wistronits,dc=com ” 超级管理员

    密码设为简单的明码,把rootpw secret这行前面的注释去掉,注意此行前面一定不要留空格。

    LDAP服务器需要手动添加日志功能。/etc/openldap/slapd.conf中末行添加

    loglevel 296

    local4.* /var/log/ldap.log (說明:local0-7为syslog的facilities,具体的程序应用的facility不一样,每一个facility都有它的数字代码,由这些代码加上错误信息的程度syslog可以判断出信息的优先权。就上例来说,local7的代码为23,notice的代码为5,那么local7.notice的信息优先权为:23*8+5=189。这是/var/adm/messages.T3是信息的优先仅。具体可以查RFC3164。我自己认为设定local7而不用local5是由应用程序决定的。)

    这是一个比较详细的日志级别。同时在/etc/syslog.conf中添加local4.* /var/log/ldap.log 确定LDAP服务器的日志位置。

    用如下命令使日志功能生效:

    #service syslog restart

    2.3开启LDAP服务

    以下命令来开启ldap服务

    # service ldap restart

    查看端口:

    #netstat –an | grep 389

    如果启动正常应该有“389”端口信息。普通LDAP服务开放389端口。查看日志文件/var/log/ldap.log(系统随系统日志服务重启时自动创建)应该有启动信息。

    设置系统在3,5级别启动时自动开启服务

    #chkconfig –level 3 5 ldap on (說明:- - level ,3和5這兩個級別間不能留空格)

    2.4 添加LDAP数据

    在加入数据之前,要配置客户端文件/etc/openldap/ldap.conf. 该文件是LDAP服务器的客户端搜索工具文件,由openldap_clientsRPM包生成。

    配置如下:

    BASE dc=boy,dc=com  搜索路径,改为:

    BASE dc=Wistronits,dc=com

    因为本机就是服务器,所以不用指定服务器IP,默认为localhost。

    LDAP数据可以用以.ldif文件的形式添加到数据库中

    建立了LDAP 目录数据库的基准辨别名(BDN):

    Base.ldif的内容如下:

    dn: dc=Wistronits,dc=com

    dc: Wistronits

    objectClass: top

    objectClass: domain

    dn: ou=People,dc=Wistronits,dc=com

    ou: People

    objectClass: top

    objectClass: organizationalUnit

    dn: ou=Group,dc=Wistronits,dc=com

    ou: Group

    objectClass: top

    objectClass: organizationalUnit

    用以下命令添加信息:

    #ldapadd -x -D “cn=Manager,dc=Wistronits,dc=com” -W -f base.ldif

    添加组信息:

    Group.ldif内容如下,添加一个组test:

    dn: cn=test,ou=Group,dc=Wistronits,dc=com

    objectClass: posixGroup

    cn: test

    gidNumber: 1100

    #ldapadd -x -D “cn=Manager,dc=Wistronits,dc=com” -W -f group.ldif

    添加用户信息:

    User.ldif内容如下:添加两个用户test,test1,都属于test组:

    dn: uid=test,ou=People,dc=Wistronits,dc=com uid: test cn: test sn: test userPassword: {crypt}$1$TZ8BaFZ7$yrmX5ddg2Vih7cEq0UGA51 uidNumber: 1100 gidNumber: 1100 homeDirectory: /home/test loginShell: /bin/bash objectClass: top objectClass: organizationalPerson objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount

    dn: uid=test1,ou=People,dc=Wistronits,dc=com uid: test1 cn: test1 sn: test1 userPassword: {crypt}$1$TZ8BaFZ7$yrmX5ddg2Vih7cEq0UGA51 uidNumber: 1105 gidNumber: 1100 homeDirectory: /home/test1 loginShell: /root/test 1 objectClass: top objectClass: organizationalPerson objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount

    #ldapadd -x -D “cn=Manager,dc=Wistronits,dc=com” -W -f user.ldif

    上面命令提示输入密码时,输入管理员密码明文“secret”。

    添加完成数据后,可用以下命令查询数据:

    #ldapsearch –x

    (說明:如果你的本地系统已经使用migrate_all_online.sh进行过同步,删除一个用户非常简单: ldapdelete -x -D “cn=admin,dc=netsafe,dc=qa,dc=net” -W “uid=seabird,ou=People,dc=netsafe,dc=qa,dc=net”

    参数说明: x:指定使用简单授权 D:指定LDAP的管理区 W:提示输入管理密码最后的内容是指定删除的用户信息

    当然,你也可以使用ldapmodify命令,在changetype时输入:delete)

    3. 客户端配置

    LDAP服务器的客户端命令RPM包为openldap-clients,手动安装后会有/etc/openldap/ldap.conf文件。除此之外要实现LDAP服务客户端必须配置 /etc/nsswitch.conf, /etc/sysconfig/authconfig,/etc/ldap.conf,/etc/pam.d/system-auth四个文件。

    <1>配置/etc/nsswith.conf

    /etc/nsswith.conf文件由glibc-2.5-24生成,CentOS5.2中缺省安装。该文件用于名称转换服务。通常LINUX系统身份验证读取本地文件,要使身份验证查询通过LDAP服务器必须在该文件中找到passwd;shadow;group;三行在files后空格添加“ldap”

    passwd: files ldap

    shadow: files ldap

    group: files ldap

    <2>配置/etc/sysconfig/authconfig

    该文件提供身份验证支持LDAP功能,/etc/sysconfig/authconfig 文件由authconfig-5.3.21-3.e15RPM包生成系统默认安装。配置该文件用来跟踪LDAP身份认证机制是否正确启用。找到以下七行,将值确定为“yes”。

    USESYSNETAUTH=yes

    USESHADOW=yes

    USELOCAUTHORIZE=yes

    USELDAP=yes

    USELDAPAUTH=yes

    USEMKHOMEDIR=yes

    PASSWDALGORITHM=yes

    <3>配置/etc/pam.d/system-auth文件

    身份验证服务是实际向LDAP验证用户身份的服务。可插入身份验证模块(PAM)提供了本地Linux身份验证服务。pam_unix.so模块是通用模块,使PAM机制对本地的/etc/passwd文件检查用户帐号。PAMLDAP模块可以用来将身份验证重定向到LDAP目录上。身份验证本身是由PAM程序执行的,它从身份验证候选机制中获取用户名,将其绑定到openLDAP 服务器上。如果绑定成功,PAM会报告说这个用户已经成功通过了pam_ldap.so提供的身份验证测试。根据PAM的配置不同,在用户看到命令提示符之前可能会执行其它测试。 /etc/pam.d/system-auth文件是CentOS5.2的系统认证PAM文件。在该文件的auth,account,password,session四段中pam_unix.so模块后添加pam_ldap.so模块使身份验证先对本地的/etc/passwd文件检查用户帐号,然后再对LDAP服务器进行检查。同时因为是LDAP认证需要为用户创建根目录,所以还必须在会话(SESSION)阶段增加pam_mkhomedir.so模块,为用户登录自动创建宿主目录。

    完整配置文件如下

    #%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

    auth required pam_deny.so

    account required pam_unix.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_limits.so

    session [success=1 default=ignore]pam_succeed_if.so service in crond quiet

    session required pam_unix.so

    session required pam_mkhomedir.so skel=/etc/skel/ umask=0022

    session optional pam_ldap.so

    <4>/etc/ldap.conf 文件

    该文件也是LDAP服务器客户端文件,但是与/etc/openldap/ldap.conf文件有不同功能,两者不可混淆。该文件由nss_ldap-253-12.e15RPM包生成,系统默认安装。/lib/security/pam_ldap.so也是由该RPM包生成。 nss_ldap-253: 包括两个LDAP访问客户机:nss_ldap和pam_ldap。nss_ldap是一组C库扩展,提供系统命名服务(NSS),也叫名称转换服务。需要配置为使用LDAP来解析诸如用户和组帐号资源。

    配置如下:

    找到如下行去“#”并配置

    base dc=boy,dc=com 改为指定域名:

    base dc=Wistronits,dc=com

    <5>开启名称缓存服务nscd

    通过网络方式查询用户占用带宽且有时延,开启名称缓存服务可以节省网络资源提高查询效率。

    service nscd restart

    chkconfig –level 3 5 nscd on

    现在可以在客户端进行登录认证调试。

    #ssh test@10.51.2.85(服务器IP)

    输入密码,即可以用SSH登录了。

  • 相关阅读:
    HDU1720 A+B Coming
    HDU1390 ZOJ1383 Binary Numbers
    HDU1390 ZOJ1383 Binary Numbers
    HDU2504 又见GCD
    HDU2504 又见GCD
    HDU1335 POJ1546 UVA389 UVALive5306 ZOJ1334 Basically Speaking
    HDU1335 POJ1546 UVA389 UVALive5306 ZOJ1334 Basically Speaking
    HDU1020 ZOJ2478 Encoding
    HDU1020 ZOJ2478 Encoding
    HDU2097 Sky数
  • 原文地址:https://www.cnblogs.com/BloodAndBone/p/1967130.html
Copyright © 2011-2022 走看看