安装和配置OpenLDAP在Ubuntu Karmic Koala

在Ubuntu Karmic考拉安装和配置OpenLDAP

OpenLDAP的配置有点(更复杂)。 仍然使用cn = config ,但是从存储库安装软件包时,只会安装openldap的骨架配置。

当安装软件包并发出“dpkg-reconfigure slapd”仅将openldap重置为骨架配置时,您不再需要提供密码。 您必须使用root帐户(或sudo)设置openldap数据库,root dn和acl,才能配置openldap。

这是我如何在Karmic考拉配置openldap,但是我不会保证这个设置将适合您的需要或为您工作,因为它适用于我。

有关于此的官方声明( https://lists.ubuntu.com/archives/ubuntu-server/2009-August/003182.html ),但是help.ubuntu.com的官方指南已经过时了,不会告诉你在Karmic Koala上配置openldap。

注意:

  1. 这个方法使用 dc = example,dc = com作为openldap服务器的树。 将这些更改为要拥有的基本树,例如: dc = yourdomain,dc = tld 。 你需要做到这一点, dc = example,dc = com 。 另外对于 db.ldif中的条目 o = exampledc:example
  2. 需要提供所有提供的文件中的硬返回,因为它们在应用于openldap服务器时标记命令的结束。

所以我这样做是如何做到的:

第1步:安装openldap和ldap-utils:

apt-get -y install slapd ldap-utils

第2步:更改为/ etc / ldap目录:

cd /etc/ldap

第3步:添加您需要/需要的模式,因为默认情况下只添加核心模式:

ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif

第4步:加载数据库后端模块并创建数据库。

创建一个名为db.ldif的文件,并将以下文本粘贴到其中:

vi db.ldif

db.ldif的内容:

# Load dynamic backend modules
dn: cn=module{0},cn=config
objectClass: olcModuleList
cn: module
olcModulepath: /usr/lib/ldap
olcModuleload: {0}back_hdb

# Create the database
dn: olcDatabase={1}hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {1}hdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=example,dc=com
olcRootDN: cn=admin,dc=example,dc=com
olcRootPW: example
olcDbConfig: {0}set_cachesize 0 2097152 0
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

保存文件并发出以下命令来加载模块并初始化数据库:

ldapadd -Y EXTERNAL -H ldapi:/// -f db.ldif

请注意olcRootPW:RootPW设置为示例的示例 。 替换示例 ,使用您选择的密码。

第5步:创建基础dn和openldap服务器的管理员帐户。

修改下面的文本以满足您的需求,并为管理员帐户生成密码。 此文件中的哈希将密码设置为示例

要为管理员帐户创建密码,请输入以下命令:

slappasswd -h {MD5}

键入想要的pasword两次,并将结果复制到下面的文本。

创建base.ldif

vi base.ldif

base.ldif的内容:

dn: dc=example,dc=com
objectClass: dcObject
objectclass: organization
o: example.com
dc: example
description: My LDAP Root

dn: cn=admin,dc=example,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
userPassword: {MD5}Gnmk1g3mcY6OWzJuM4rlMw==
description: LDAP administrator

使用以下命令将基础dn加载到数据库中:

ldapadd -Y EXTERNAL -H ldapi:/// -f base.ldif

第6步:修改系统acl

在openldap设置中有一些acl设置,阻止phpldapadmin与目录进行接口,所以我们现在将其删除,并将openldap设置为默认的cn = admin,cn = config。 从这一刻起,openldap可以像以前一样配置和操作,但不再通过发出命令,如ldapadd -Y EXTERNAL -H ldapi:// -f文件 ,而是ldapadd -x -Y EXTERNAL -H ldapi:// -D cn = admin,cn = config -W -f文件

创建一个名为config.ldif的文件,并粘贴下面的文本。 但是不要忘记用上面创建的哈希替换olcRootPW哈希。

vi config.ldif

config.ldif的内容:

dn: cn=config
changetype: modify
delete: olcAuthzRegexp

dn: olcDatabase={-1}frontend,cn=config
changetype: modify
delete: olcAccess

dn: olcDatabase={0}config,cn=config
changetype: modify
delete: olcRootDN

dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootDN
olcRootDN: cn=admin,cn=config

dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {MD5}Gnmk1g3mcY6OWzJuM4rlMw==

dn: olcDatabase={0}config,cn=config
changetype: modify
delete: olcAccess

config.ldif加载到openldap服务器:

ldapadd -Y EXTERNAL -H ldapi:/// -f config.ldif

7:设置ldap acl的

现在我们只需要添加一些acl到目录,root有一个完整的读/写,但这个acl是opendlap一直附带的基本acl。

创建一个名为acl.ldif的文件,并将下面的文本粘贴到其中:

vi acl.ldif

acl.ldif的内容:

dn: olcDatabase={1}hdb,cn=config
add: olcAccess
olcAccess: to attrs=userPassword,shadowLastChange by dn="cn=admin,dc=example,dc=com" write by anonymous auth by self write by * none
olcAccess: to dn.base="" by * read
olcAccess: to * by dn="cn=admin,dc=example,dc=com" write by * read

现在将acl加载到openldap服务器中:

ldapmodify -x -D cn=admin,cn=config -W -f acl.ldif

您现在应该具有与Jaunty Jackalope一起运送的openldap目录。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏