ldap配置详解(探索LDAP安全)

0x01 关于 ldap 的一些简单科普

`ldap` 基于tcp/ip的轻量级目录访问协议,属于X.500目录协议族的一个简化版本

你可以暂时把它粗暴的理解成 `一种特殊类型的数据库` ,通常,这种数据库文件后缀都为`.ldif`,并使用特殊的节点查询语句来获取相应数据

实际生产环境中,主要还是用它来做各种查询比较多,既是查询,也就意味着肯定会有大量的读操作

虽然,ldap也支持一些简单的更新功能,即写,但一般都不会用,因为它在写方面的效率并不高

如果真的是写比较多,直接用各种关系型数据库代替就好了,实在没必要用ldap,毕竟,术业有专攻

另外,ldap 跨平台,功能简洁,易管理,配置,读性能也不错,亦可分布式部署`不知道是不是可以把它的分布式理解成windows域的目录树,目录林概念`

用的最多的可能就是进行`集中身份验证`,最后,我们还需要知道的是,默认情况下,ldap的所有数据都是直接以明文传输的,容易被截获,不过好在它支持ssl

0x02 其它的一些常用目录服务工具

X.500 过于庞大臃肿

ldap 轻量且配置简单

虽然这种纯图形化的工具貌似是很好用,但个人还是不太建议在实际生产环境中用,验证过于简单,比较危险,毕竟只是个web脚本,很容易被入侵者扫目录,扫域名时扫到,另外,也极易被各类搜索引擎抓到,如下

1

inurl:templates/login.php intitle:LDAP Account Manager

ldap配置详解(探索LDAP安全)(1)

0x13 启用sasl,让指定的服务都通过ldap的方式进行集中身份验证

# yum install *sasl* -y

# rpm -qa | grep sasl

# saslauthd -v sasl所支持的所有认证类型

# sed -i 's#MECH=pam#MECH=ldap#g' /etc/sysconfig/saslauthd

# grep -i mech /etc/sysconfig/saslauthd

MECH=ldap

# /etc/init.d/saslauthd start

# chkconfig saslauthd on

# vi /etc/saslauthd.conf

ldap_bind_dn: cn=klion,dc=ldapmaster,dc=org

ldap_bind_pw: klion

ldap_search_base: ou=People,dc=ldapmaster,dc=org

ldap_filter: uid=%U

ldap_password_attr: userPassword

# ps -ef | grep sasl

# testsaslauthd -u super -p admin 此时便会用ldap账户来进行验证

0x14 以让svn服务通过ldap进行认证为例,其实非常简单,首先,你需要先在本机快速部署好svn,至于具体的部署方法,请参考之前的相关文章,当然,除了svn,像vsftpd,samba这类的基础服务也都可以通过ldap进行身份验证,并非重点此处不再赘述

# 让svn通过ldap进行验证,不再走svn自己的验证了

# vi /etc/sasl2/snv.conf

pwcheck_method: saslauthd

mech_list: PLAIN LOGIN

# 编辑svn主配置文件

# vi /svn/svndata/svndoc/conf/svnserve.conf

[general]

anon-access = none

auth-access = write

password-db = /svn/svnpasswd/passwd

authz-db = /svn/svnpasswd/authz

[sasl]

use-sasl = true # 开启svn的sasl验证

# 把svn本地用户全部注释掉,因为一旦开启sasl就不再走svn本地验证了

# vi /svn/svnpasswd/passwd

[users]

# harry = harryssecret

# sally = sallyssecret

# web = 654321

# webadmin = admin110

# admin = 123456

# bakuser = admin

# guest = svn110

# svn = svnadmin

# 另外,还需要把ldap用户加到svn认证文件中,不然,依然是登不上svn的

# 虽然用户密码验证过程不走本地,但权限认证过程还是在本地进行的

# vi /svn/svnpasswd/authz

[aliases]

[groups]

administrator = web

sec = webadmin,admin

ldap_user = svnnew,super

[svndoc:/]

svn = rw

@administrator = rw

@ldap_user = rw

[svndoc:/web01]

bakuser = rw

[svndoc:/web02]

guest = rw

下面是svn通过ldap进行认证的实际效果

ldap配置详解(探索LDAP安全)(2)

ldap配置详解(探索LDAP安全)(3)

0x15 关于ldap主从同步,后续有机会再说,这次我们先初步入个门 ^_^

0x16 最后,我们再来关注下openldap的一些安全问题,最重要的可能就是允许匿名访问,对此的利用没什么好说的,直接用各种ldap客户端工具,如,LDAPSoft Ldap Browser或者JXplorer都行,只需指定正确的ip,端口和dn,然后用匿名的方式连上去即可

ldap配置详解(探索LDAP安全)(4)

后话:

建议实际生产环境中直接使用加密传输,另外,可根据实际业务需求配置更具针对性的ACL,至于针对web层的ldap注入 [ 其实跟sql注入没什么两样,只是查询语言不同而已 ],篇幅原因,我们在后续的相关章节中还会再做详细说明,待续……

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页