你好朋友!。 让我们开始工作,按照我们一贯的建议,阅读本系列的前三篇文章:
对于基于以下内容的简单目录,DNS,DHCP和NTP是最基本的服务 OpenLDAP的 本机,可以在 Debian 6.0“压缩”,或在Ubuntu 12.04 LTS“ Precise Pangolin”中使用。
示例网络:
Lan: 10.10.10.0/24
Dominio: amigos.cu
Servidor: mildap.amigos.cu
Sistema Operativo Servidor: Debian 6 "Squeeze
Dirección IP del servidor: 10.10.10.15
Cliente 1: debian7.amigos.cu
Cliente 2: raring.amigos.cu
Cliente 3: suse13.amigos.cu
Cliente 4: seven.amigos.cu
在第一部分中,我们将看到:
- OpenLDAP安装(拍2.4.23-7.3)
- 安装后检查
- 需要考虑的指标
- 数据访问控制规则
- 在Squeeze中生成TLS证书
在第二部分中,我们将继续:
- 本地用户认证
- 填充数据库
- 使用控制台实用程序管理数据库
- 到目前为止的总结...
OpenLDAP安装(拍2.4.23-7.3)
使用该软件包安装了OpenLDAP服务器 拍打。 我们还必须安装软件包 ldap 实用程序,它为我们提供了一些客户端工具以及OpenLDAP自己的实用程序。
:〜#aptitude安装slapd ldap-utils
在安装过程中, 配置文件 它将要求我们提供管理员或用户的密码«管理员«。 还安装了许多依赖项。 用户已创建 Openldap; 将创建初始服务器配置以及LDAP目录。
在早期版本的OpenLDAP中,守护程序配置 拍打 完全通过文件完成 /etc/ldap/slapd.conf。 在我们使用的版本中,以后的配置都以相同的方式完成 拍打,并为此目的 DIT «目录信息树»或目录信息树,分别。
配置方法称为 RTC «实时配置»实时配置,或作为方法 cn =配置,使我们可以动态配置 拍打 无需重新启动服务。
配置数据库由以下格式的文本文件组成: 低密度脂蛋白 «LDAP数据交换格式»数据交换的LDAP格式,位于文件夹中 /etc/ldap/slapd.d.
了解文件夹组织 拍,让我们运行:
:〜# ls -lR /etc/ldap/slapd.d/ /etc/ldap/slapd.d/:总共8个drwxr-x --- 3 openldap openldap 4096 16月11日08:1 cn = config -rw ------- 407 openldap openldap 16 11月08日28:1 cn = config.ldif /etc/ldap/slapd.d/cn=config:总计383 -rw ------- 16 openldap openldap 11 Feb 08 0:2 cn = module {4096} .ldif drwxr-x- 16 openldap openldap 11 08月1日325:16 cn = schema -rw ------- 11 openldap openldap 08 1月343日16:11 cn = schema.ldif -rw ------- 08 openldap openldap 0 1月472日16:11 olcBackend = {08} hdb.ldif -rw ------- 0 openldap openldap 1 586月16日11:08 olcDatabase = {1} config.ldif -rw ------- 1 openldap openldap 1012 16月11日08:1 olcDatabase = {-40} frontend.ldif -rw ------- 1 openldap openldap 15474 16月11日08:0 olcDatabase = {1} hdb.ldif /etc/ldap/slapd.d/cn = config / cn =模式:总计11308 -rw ------- 16 openldap openldap 11 08月1日1:6438 cn = {16} core.ldif -rw ------- 11 openldap openldap 08 2月1日2802:16 cn = {11} cosine.ldif -rw ------- 08 openldap openldap 3 XNUMX月XNUMX日XNUMX:XNUMX cn = {XNUMX} nis.ldif -rw ------- XNUMX openldap openldap XNUMX XNUMX月XNUMX日XNUMX:XNUMX cn = {XNUMX} inetorgperson.ldif
如果我们稍微看一下先前的输出,我们会看到 后端 在Squeeze中使用的是数据库类型 硬盘,这是 BDB “伯克利数据库”,它是完全分层的,并支持子树的重命名。 进一步了解可能 后端 支持OpenLDAP的,请访问 http://es.wikipedia.org/wiki/OpenLDAP.
我们还看到使用了三个独立的数据库,即一个专用于配置,另一个用于 前端,最后一个是数据库 硬盘 本身。
此外, 拍打 默认情况下随原理图一起安装 核心, 余弦, 尼什 e 国际组织者.
安装后检查
在终端中,我们冷静地执行并读取输出。 我们将检查(尤其是第二条命令)从列出文件夹得出的配置 拍.
:〜#ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn = config | 更多:〜#ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn =配置dn dn:cn =配置dn:cn =模块{0},cn =配置dn:cn =模式,cn =配置dn:cn = {0}核心,cn =模式,cn =配置dn:cn = {1}余弦,cn =模式,cn =配置dn:cn = {2} nis,cn =模式,cn =配置dn:cn = {3} inetorgperson,cn =模式,cn =配置dn:olcBackend = {0} hdb,cn =配置dn:olcDatabase = {-1}前端,cn =配置dn:olcDatabase = {0}配置,cn =配置dn:olcDatabase = {1} hdb,cn =配置
每个输出的说明:
- cn =配置:全局参数。
- cn =模块{0},cn = config:动态加载的模块。
- cn =模式,cn =配置:包含 硬编码 在系统原理图的级别。
- cn = {0}核心,cn =模式,cn =配置:本 硬编码 内核原理图。
- cn = {1}余弦,cn =模式,cn =配置: 方案 余弦
- cn = {2} nis,cn =架构,cn = config: 方案 尼斯
- cn = {3} inetorgperson,cn =模式,cn = config: 方案 国际组织者.
- olcBackend = {0} hdb,cn =配置: 后端 数据存储类型 硬盘.
- olcDatabase = {-1}前端,cn =配置: 前端 数据库的名称以及其他数据库的默认参数。
- olcDatabase = {0}配置,cn =配置: 拍打 (cn =配置).
- olcDatabase = {1} hdb,cn = config:我们的数据库实例(dc =朋友,dc = cu)
:〜#ldapsearch -x -LLL -H ldap:/// -b dc =示例,dc = com dn dn:dc =朋友,dc = cu dn:cn =管理员,dc =朋友,dc = cu
- dc =朋友,dc = cu:DIT基本目录信息树
- cn =管理员,dc =朋友,dc = cu:安装期间声明的DIT的管理员(rootDN)。
注意:基本后缀 dc =朋友,dc = cu,拿走了 配置文件 在安装过程中 FQDN 从服务器 阿米帕斯.
需要考虑的指标
条目的索引被执行以提高对搜索结果的性能。 DIT,并带有过滤条件。 根据默认模式中声明的属性,我们将考虑的最低推荐索引。
为了动态修改数据库中的索引,我们以以下格式创建文本文件 低密度脂蛋白,然后我们将其添加到数据库中。 我们创建文件 olcDb索引.ldif 并保留以下内容:
:〜# 纳米olcDbIndex.ldif dn:olcDatabase = {1} hdb,cn =配置更改类型:修改添加:olcDbIndex olcDbIndex:uidNumber eq-添加:olcDbIndex olcDbIndex:gidNumber eq-添加:olcDbIndex olcDbIndex:memberUid eq,olcDbShell sbc,登录eq,olcDBShell:登录,eq -添加:olcDbIndex olcDbIndex:uid pres,sub,eq-添加:olcDbIndex olcDbIndex:cn pres,sub,eq-添加:olcDbIndex olcDbIndex:sn pres,sub,eq-添加:olcDbIndex olcDbIndexs:namedName,ou pres -添加:olcDbIndex olcDbIndex:displayName pres,sub,eq-添加:olcDbIndex olcDbIndex:默认子-添加:olcDbIndex olcDbIndex:邮件eq,子首字母-添加:olcDbIndex olcDbIndex:dc eq
我们将索引添加到数据库中并检查修改:
:〜#ldapmodify -Y EXTERNAL -H ldapi:/// -f ./olcDbIndex.ldif :〜#ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b \ cn = config'(olcDatabase = {1} hdb)'olcDbIndex dn:olcDatabase = {1} hdb,cn = config olcDbIndex:objectClass eq olcDbIndex:uidNumber,gidNumber eq olcDbIndex:memberUid eq,pres,sub olcDbIndex:loginShell eq olcDbIndex:uid pres,sub,eq,olcn preq olcDbIndex:sn,子,eq olcDbIndex:给定名称,ou,eq,子olcDbIndex:displayName pre,子,eq olcDbIndex:默认子olcDbIndex:邮件eq,子首字母olcDbIndex:dc eq
数据访问控制规则
为使用户可以读取,修改,添加和删除目录数据库中的数据而建立的规则称为访问控制,而我们将称为访问控制列表或«ACL访问控制列表»到配置规则的策略。
要知道哪个 访问控制列表 是在安装过程中默认声明的 拍打,我们执行:
:〜#ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b \ cn =配置'(olcDatabase = {1} hdb)'olcAccess :〜#ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b \ cn =配置'(olcDatabase = {-1}前端)'olcAccess :〜#ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b \ cn =配置'(olcDatabase = {0}配置)'olcAccess :〜#ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b \ cn =配置'(olcAccess = *)'olcAccess olcSuffix
前面的每个命令都会向我们显示 访问控制列表 到目前为止,我们已经在目录中声明了这一点。 具体来说,最后一个命令将全部显示,而前三个命令为我们提供了这三个命令的访问控制规则。 DIT 参与我们的 拍打.
对主题 访问控制列表 并且为了不增加篇幅,建议阅读手册页 男子拍打.
为了保证用户和管理员可以更新其条目 登录外壳 y 壁虎,我们将添加以下ACL:
##我们创建olcAccess.ldif文件,并保留以下内容:〜#nano olcAccess.ldif dn:olcDatabase = {1} hdb,cn =配置更改类型:修改添加:olcAccess olcAccess:{1}到attrs = loginShell,gecos by dn =“ cn = admin,dc =朋友,dc = cu” *阅读 ##我们添加ACL :〜#ldapmodify -Y EXTERNAL -H ldapi:/// -f ./olcAccess.ldif #我们检查更改 ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b \ cn =配置'(olcAccess = *)'olcAccess olcSuffix
证书的产生 TLS 在挤压
要使用OpenLDAP服务器进行安全的身份验证,我们必须通过一个加密的会话进行身份验证,这可以通过使用 TLS«传输层安全性» o安全传输层。
OpenLDAP服务器及其客户端可以使用 框架 TLS提供有关完整性和机密性的保护,并通过该机制支持安全的LDAP身份验证 SASL «简单身份验证和安全层« 外部。
现代OpenLDAP服务器赞成使用*/开始TLS /* o启动到/的安全传输层LDAPS:///,这已过时。 如有任何疑问,请访问*启动TLS v。 ldaps:// * en http://www.openldap.org/faq/data/cache/605.html
只需将文件保留为默认安装 / etc /默认/打 与声明 SLAPD_SERVICES =»ldap:/// ldapi:///»,目的是使用客户端和服务器之间的加密通道以及辅助应用程序本身来管理本地安装的OpenLDAP。
这里介绍的方法,基于软件包 坚果桶 y ssl证书 它对Debian 6“ Squeeze”有效,对Ubuntu Server 12.04也有效。 对于Debian 7“ Wheezy”,另一种基于 OpenSSL的.
在Squeeze中生成证书的过程如下:
1.-我们安装必要的软件包 :〜#aptitude安装gnutls-bin ssl-cert 2.-我们为证书颁发机构创建主密钥 :〜#sh -c“ certtool --generate-privkey> /etc/ssl/private/cakey.pem” 3.-我们创建一个模板来定义CA(证书颁发机构) :〜#nano /etc/ssl/ca.info cn = Cuban Friends ca cert_signing_key 4.-我们为客户创建CA自签名或自签名证书 :〜#certtool --generate-self-signed \\-load-privkey / etc / ssl / private / cakey.pem \-template / etc / ssl / ca.info \-outfile / etc / ssl / certs / cacert.pem 5.-我们为服务器生成一个私钥 :〜#certtool --generate-privkey \ --bits 1024 \ --outfile /etc/ssl/private/mildap-key.pem 注意:替换“轻度“以您自己的服务器的名称作为上述文件的名称。为服务器和使用它的服务命名证书和密钥,有助于我们弄清楚。 6.-我们使用以下内容创建文件/etc/ssl/mildap.info: :〜#nano /etc/ssl/mildap.info组织= Cuban Friends cn = softap.amigos.cu tls_www_server encryption_key signing_key expiration_days = 3650 注意:在以上内容中,我们声明证书有效期为10年。 必须调整参数以方便我们。 7.-我们创建服务器证书 :〜#certtool --generate-certificate \ --load-privkey /etc/ssl/private/mildap-key.pem \ --load-ca-certificate /etc/ssl/certs/cacert.pem \ --load- ca-privkey /etc/ssl/private/cakey.pem \ --template /etc/ssl/mildap.info \ --outfile /etc/ssl/certs/mildap-cert.pem
到目前为止,我们已经生成了必要的文件,我们只需要将自签名证书的位置添加到目录中 cacert.pem; 服务器证书的证书 轻度证书; 和服务器的私钥 温和键。 我们还必须调整所生成文件的权限和所有者。
:〜#纳米/etc/ssl/certinfo.ldif dn:cn =配置添加:olcTLSCACertificateFile olcTLSCACertificateFile:/etc/ssl/certs/cacert.pem-添加:olcTLSCertificateFile olcTLSCertificateFile:/etc/ssl/certs/mildap-cert.pem-添加:olcTLSCertKeysertsert。 /mildap-key.pem 8.-添加:〜#ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/ssl/certinfo.ldif 9.-我们调整所有者和权限 :〜#adduser openldap ssl-cert:〜#chgrp ssl-cert /etc/ssl/private/mildap-key.pem:〜#chmod g + r /etc/ssl/private/mildap-key.pem:〜#chmod或/etc/ssl/private/mildap-key.pem
证书 cacert.pem 这是我们必须在每个客户端中复制的一个。 为了在服务器上使用此证书,我们必须在文件中声明它 /etc/ldap/ldap.conf。 为此,我们修改文件并保留以下内容:
:〜#纳米/etc/ldap/ldap.conf BASE dc =朋友,dc = cu URI ldap://mildap.amigos.cu TLS_CACERT /etc/ssl/certs/cacert.pem
最后,作为检查,我们重新启动服务 拍打 然后检查 系统日志 从服务器,以查看服务是否已使用新声明的证书正确重新启动。
:〜#服务slapd重新启动 :〜#tail / var / log / syslog
如果服务无法正确重启,或者我们发现 系统日志,不要气our。 我们可以尝试修复损坏或重新开始。 如果我们决定从头开始安装 拍打,则无需格式化服务器。
要清除到目前为止由于某种原因而做的所有事情,我们必须卸载该软件包 拍打,然后删除该文件夹 / var / lib / ldap。 我们还必须将文件保留其原始版本 /etc/ldap/ldap.conf.
很少能在第一次尝试中就能正常工作。 🙂
请记住,在下一部分中,我们将看到:
- 本地用户认证
- 填充数据库
- 使用控制台实用程序管理数据库
- 到目前为止的总结...
待会见朋友!
老师!!!
TUTO发生了!
非常好
世界上所有的喜欢你的人。
????
非常感谢你,雨果! 等待有关该主题的下一篇文章。
你好
您的系列文章有趣。
我很惊讶地读到这句话:“现代的OpenLDAP服务器比旧的TLS / SSL协议更喜欢使用StartTLS或启动安全传输层。”
您是否声称,即使在LDAP范围之外的所有情况下,STARTTLS还是一种优于TSL / SSL的保护机制?
感谢您的评论。 请注意,我的意思是OpenLDAP。 我不会超越。 在 http://www.openldap.org/faq/data/cache/185.html,您可以阅读以下内容:
传输层安全性(TLS)是安全套接字层(SSL)的标准名称。 这些术语(除非使用特定版本号限定)通常可以互换。
StartTLS是用于启动TLS / SSL的标准LDAP操作的名称。 成功完成此LDAP操作后,便会启动TLS / SSL。 无需其他端口。 有时将其称为TLS升级操作,因为它将常规LDAP连接升级到受TLS / SSL保护的连接。
ldaps://和LDAPS指的是“基于TLS / SSL的LDAP”或“受LDAP保护”。 TLS / SSL在连接到备用端口(通常为636)时启动。 尽管为此用途注册了LDAPS端口(636),但TLS / SSL初始化机制的详细信息尚未标准化。
一旦启动,ldaps://和StartTLS之间就没有区别。 它们共享相同的配置选项(ldaps除外://需要配置单独的侦听器,请参阅slapd(8)的-h选项),并导致建立类似的安全服务。
请注意:
1)ldap:// + StartTLS应该定向到普通LDAP端口(通常是389),而不是ldaps://端口。
2)ldaps://应定向到LDAPS端口(通常为636),而不是LDAP端口。
抱歉,但是我仍然不确定为什么您会这样声称:1)现代服务器更喜欢STARTTLS而不是SSL / TLS; 2)STARTTLS是现代的,而SSL / TLS已过时。
我已经为使用通过SSL访问服务器的不同邮件客户端(像大多数免费软件一样使用openssl库),/ etc / ssl / certs /中的CA证书以及其他工具配置了半个月。 我了解到的是:1)STARTTLS仅加密会话的身份验证,其他所有内容均未加密发送; 2)SSL绝对加密会话的所有内容。 因此,STARTTLS在任何情况下都不比SSL更好。 我宁愿不这样认为,因为您会话的内容在网络上未加密地传输。
另一个不同之处是,出于其他我不知道的原因,建议使用STARTTLS:为了与MSWindows兼容,因为实现更稳定或经过了更好的测试……我不知道。 这就是为什么我问你。
从您在回答中附带的手册的引用中,我看到ldap://和ldaps://之间的区别等同于imap://和imaps://之间或smtp://和之间smtps:// ::使用了其他端口,在配置文件中添加了一些其他条目,但其余参数保留下来。 但这并不表示是否愿意使用STARTTLS。
问候,对不起,我的答复。 我只是想学一点点。
瞧,很少有人在我的文章中宣称这种能力而没有得到一些严肃的出版物的支持。 在本系列的最后,我将提供所有我认为很认真的文档链接,并已咨询了我写这篇文章的内容。 我为您提供以下链接:
https://wiki.debian.org/LDAP/OpenLDAPSetup
Ubuntu 服务器指南 https://code.launchpad.net/serverguide
OpenLDAP-官方 http://www.openldap.org/doc/admin24/index.html
LDAP over SSL / TLS和StartTLS http://tt4cs.wordpress.com/2014/01/18/ldap-over-ssltls-and-starttls/
而且,我查阅了每个软件包随附的随附文档。
一般而言,安全性问题以及StartTLS和TLS / SSL之间的差异是非常技术性的,而且其深度如此之深,以至于我认为自己不具备进行此类解释的必要知识。 我认为我们可以继续通过电子邮件进行交谈。
而且,我在任何地方都没有声明不能使用LDAPS://。 如果您认为更安全,那就继续!!!
我再也无法帮助您,非常感谢您的评论。
您可以在以下方式获得更多的清晰度-始终关于OpenLDAP:
http://www.openldap.org/faq/data/cache/605.html
StartTLS扩展操作[RFC 2830]是LDAPv3的标准机制,用于启用TLS(SSL)数据机密性保护。 该机制使用LDAPv3扩展操作在已建立的LDAP连接中建立加密的SSL / TLS连接。 尽管该机制旨在与TLSv1一起使用,但大多数实现将在必要时回退至SSLv3(和SSLv2)。
ldaps://是为LDAP建立加密的SSL / TLS连接的机制。 它需要使用单独的端口(通常为636)。尽管最初设计用于LDAPv2和SSLv2,但许多实现都支持将其用于LDAPv3和TLSv1。 尽管没有ldap的技术规范://它被广泛使用。
ldaps://不建议使用Start TLS [RFC2830]。 OpenLDAP 2.0都支持。
出于安全原因,应将服务器配置为不接受SSLv2。
这将是其中一些用户不会发表评论的文章之一,因为他们只在Linux工作站上观看色情内容,所以他们根本不感兴趣。关于ldap,我在与我合作的公司的异构网络中有多项相关服务。 好文章!
感谢您的评论! 关于我许多文章中的一些评论,您的说法是正确的。 但是,我收到有兴趣的读者或其他下载该文章供以后阅读和应用的人的来信。
通过评论获得反馈总是非常有用的,即使它们是:我将其保存以供以后阅读,发表有趣的观点或发表其他意见。
问候
弗里克! 感谢您的评论。 我在邮件中收到了您的评论,但是即使我多次刷新页面也看不到。 朋友,您可以在Squeeze或Ubuntu Server 12.04上尝试本文以及以前的文章,而不会出现问题。 在Wheezy中,使用OpenSSL以不同的方式生成证书。 但是什么都没有。 我的问候,兄弟!
@thisnameisfalse:最好的业务员会变得模糊。 感谢您的评论,我认为有关段落应如下:
相对于LDAPS://协议,现代的OpenLDAP服务器更喜欢使用StartTLS或“启动安全传输层”。 如有任何疑问,请访问Start TLS v。 ldaps:// zh http://www.openldap.org/faq/data/cache/605.html
问候
太好了,现在我在ldap上做作业
您不能将所有内容都放在一个文件中,因此可以下载完整的教程
我是一位在Linux方面拥有丰富经验的计算机技术人员,但在本文中间我仍然迷失了方向。 然后,我将更仔细地阅读它。 非常感谢您的教程。
尽管确实允许我们更多地了解为什么通常选择ActiveDirectory来做这些事情。 在配置和实现的简单性方面存在很大的差异。
问候
谢谢大家发表评论!
@jose monge,希望对您有所帮助
@walter在所有帖子的末尾,我将看看我能否以html或pdf格式制作纲要
@eVeR相反,OpenLDAP比Active Directory更简单-即使看起来不像OpenLDAP。 等待下一篇文章,您将看到。
查询,我一步一步地进行安装,但是当重新启动slapd服务时,它引发了以下错误>
30月15日27:37:1219 xxxx slapd [17]:@(#)$ OpenLDAP:slapd(Ubuntu)(2014年21月20日08:012:011)$#2.4.31#XNUMXbuilded @ aatxe:/build/buildd/openldap-XNUMX .XNUMX / debian / build / servers / slapd
30月15日27:37:1219 xxxxx打[XNUMX]:插入了不明的attributeDescription“ CHANGETYPE”。
30月15日27:37:1219 xxxxx打[XNUMX]:插入了不知名的属性描述“ ADD”。
30月15日27:37:1219 xxxxx [2]:<= str2entry:slap_strXNUMXundef_ad(-):空AttributeDescription
30月15日27:37:1219 xxxxx打[XNUMX]:打停止。
30月15日27:37:1219 xxxxx [XNUMX]:connections_destroy:没有可破坏的东西。
您可以在论坛中提问 http://foro.desdelinux.net/
对于每个看到这篇出色且详尽解释的文章的人,在创建ACL时都会发生此问题:
ldapmodify:无效格式(第5行)条目:“ olcDatabase = {1} hdb,dc = config”
绞尽脑汁搜寻互联网之后,事实证明ldapmodify是网络上最准确的类型。 错位的字符以及尾随的空格都使人歇斯底里。 事不宜迟,建议是将条件并排写入,即由X写入由* read自写入。 如果仍然无法正常工作,请安装记事本++>视图>显示符号,最后杀死看不见的字符。 希望有人帮忙。
基于OpenSSL为Debian Wheezy生成证书,该证书可用于:
http://blog.phenobarbital.info/2014/10/openldap-tlsssl-configuracion-basica-y-aseguramiento/