使用ldap命令来安装配置Openldap

安装OpenLDAP

有两种方式安装ldap,一个是源码编译安装,另一种就是直接使用yum仓库安装

yum install openldap openldap-servers openldap-clients

配置OpenLDAP Server

  1. 拷贝配置文件

    cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

    新版本的OpenLDAP中已经没有/usr/share/openldap-servers/slapd.conf.obsolete这个文件了,所以现在配置都在/etc/openldap/slapd.d的文件中修改。但是其中的文件都是自动生成的,所以修改需要使用ldapmodify指令。

  2. 修改权限

    chown -R ldap:ldap /var/lib/ldap/

    chown -R ldap:ldap /etc/openldap/

  3. 启动服务

    service slapd start && chkconfig slapd on

  4. ⽣成rootpw加密密码串:

    slappasswd -s ,此命令会⽣生成{SSHA}开头的密码串

  5. 修改/etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif :

    旧版本的OpenLDAP都是在/etc/openldap/slapd.conf里修改配置,设置schema等(Centos6中依然还可以通过该方法设置)。但是实际在Centos7和新版本中,大家都开始通过ldapmodify和ldapadd来进行OpenLDAP的配置与修改。

    olcDatabase={2}hdb.ldif这个在不同的电脑上生成的名字可能不同的,有的可能会和我这的文件名字相同,有的可能叫做olcDatabase={2}bdb.ldif。

    使用ldapmodify这个命令,就能达到之前通过修改/etc/openldap/slapd.conf文件来设置suffix、rootdn、rootpw等的目的。

    ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/openldap/changes.ldif

    changes.ldif文件需要自己创建,需要注意dn后面指定的olcDatabase={2}hdb,需要和你自己/etc/openldap/slapd.d/cn=config目录下的相同,内容如下:

    # suffix
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    replace: olcSuffix
    olcSuffix: dc=esgyn,dc=local
    
    # rootdn 
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    replace: olcRootDN
    olcRootDN: cn=Manager,dc=esgyn,dc=local
    
    # rootpw
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    add: olcRootPW
    olcRootPW: {SSHA}6aEM1yQN8TjkSkp8wsybA37OFf/XDkDj #这里的密码就是刚才slappasswd生成加密密码串
    
    # accesss
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    add: olcAccess
    olcAccess: {0}to attrs=userPassword by self write by dn.base="cn=Manager,dc=esgyn,dc=local" write by anonymous auth by * none
    olcAccess: {1}to * by dn.base="cn=Manager,dc=esgyn,dc=local" write by self write by * read
    

    写ldif文件需要注意格式,每行的结尾不能有空格,不同的dn之间需要有一个空行。

  6. 加载schema

    之前是在/etc/openldap/slapd.conf文件中,使用include来载入需要使用的schema,现在可以使用ldapadd命令来加载

    cd /etc/openldap/schema

    依次执行以下的命令,或者写入脚本批量执行,但是需要按照下面的顺序,因为schem之间还有相互继承的依赖关系

    ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f cosine.ldif
    ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f nis.ldif
    ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f collective.ldif
    ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f corba.ldif
    ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f core.ldif
    ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f duaconf.ldif
    ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f dyngroup.ldif
    ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f inetorgperson.ldif
    ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f java.ldif
    ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f misc.ldif
    ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f openldap.ldif
    ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f pmi.ldif
    ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f ppolicy.ldif
    
  7. 创建初始化组

    ldapadd -x -D 'cn=Manager,dc=esgyn,dc=local' -f ou.ldif -W

    ou.ldif文件的内容如下:

    # ou.ldif
    dn: dc=esgyn,dc=local
    objectClass: dcObject
    objectClass: organization
    dc: esgyn
    o : esgyn
    
    dn: ou=Users,dc=esgyn,dc=local
    objectClass: organizationalUnit
    ou: Users
    
  8. 创建用户

    trafodion数据库需要两个默认的用户db__root和db__admin两个用户。

    ldapadd -x -D 'cn=Manager,dc=esgyn,dc=local' -f user.ldif -W

    user.ldif文件的内容如下(仅供参考):

    # db_root
    dn: uid=db_root,ou=Users,dc=esgyn,dc=local
    ou: Users
    uid: db_root
    sn: db_root
    cn: DB_ROOT
    givenName: db_root
    displayName: DB_ROOT
    mail: [email protected]
    objectClass: person
    objectClass: organizationalPerson
    objectClass: inetOrgPerson
    userpassword: DB_ROOT_PASSWORD
    
    # db_admin
    dn: uid=db_admin,ou=Users,dc=esgyn,dc=local
    ou: Users
    uid: db_admin
    sn: db_admin
    cn: DB_ADMIN
    givenName: db_admin
    displayName: DB_ADMIN
    mail: [email protected]
    objectClass: person
    objectClass: organizationalPerson
    objectClass: inetOrgPerson
    userpassword: DB_ADMIN_PASSWORD
    

    如果没有加载schema,会遇到下面的错误:

    adding new entry “uid=trafodion,ou=Users,dc=esgyn,dc=local”
    ldap_add: Invalid syntax (21)
    additional info: objectClass: value #2 invalid per syntax

你可能感兴趣的:(工作)