在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。
注意:
- 这个方法使用
dc = example,dc = com
作为openldap服务器的树。 将这些更改为要拥有的基本树,例如:dc = yourdomain,dc = tld
。 你需要做到这一点,dc = example,dc = com
。 另外对于db.ldif
中的条目o = example
和dc:example
。 - 需要提供所有提供的文件中的硬返回,因为它们在应用于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目录。