openldap加密传输

LDAP(轻量级目录访问协议,Lightweight Directory Access Protocol)是为了实现目录服务的信息服务。

    目录服务是一种特殊的数据库系统,其专门针对读取,浏览和搜索操作进行了特定的优化。在网络中应用了LDAP后,用户只需要使用一个账号和密码就可以轻松访问网络中的所有服务,实现用户身份的统一认证。简单来说:拿LDAP来统一管理一些账号,例如: Gitlab,JenKins,Samba,SVN,Zabbix等。

section1

LDAP数据传输默认是不加密的,即通过抓包工具可以轻而易举将用户数据信息截获到,项目中通过Wireshark工具,与Linux端抓包命令tcpdump结合,可以很容易抓取用户数据与密码。

tcpdump可以再ldap客户端和ldap服务端使用,抓包。

抓取到包,通过 Wireshark打开分析。当然Wireshark也可以抓包,但局限于windows客户端(可以通过java api读取ldap用户进行抓包,读取方式参考之前博客https://blog.csdn.net/seulzz/article/details/103428327

 其中,Wireshark使用参考https://www.cnblogs.com/cocowool/p/wireshark_tcp_http.html ,https://www.cnblogs.com/lsdb/p/9254544.html

 tcpdump使用参考https://www.cnblogs.com/-wenli/p/10126511.html

section2

简单来说:拿LDAP来统一管理一些账号,例如: Gitlab,JenKins,Samba,SVN,Zabbix等。项目中为了解决抓包漏洞问题,将ldap采用加密传输方式,目前加密传输方式两种:LDAP over SSL(ldaps) 与LDAP over TLS
关于SSL/TLS
LDAP over SSL
# LDAP over SSL 也就是 ldaps
# ldap默认不加密情况下是走的389端口
# 当使用ldaps的时候走的就是636端口了
# 可以简单理解成http和https的关系
# 当然ldaps已经淘汰了,不然也不会有LDAP over TLS出来

 

扫描二维码关注公众号,回复: 8752255 查看本文章

LDAP over TLS
# TLS可以简单理解为ldaps的升级
# 它默认走389端口,但是会通讯的时候加密
# 客户端连接LDAP时,需要指明通讯类型为TLS,所以他可以跟不加密的模式一样,任意端口都行

 

对比一下连接方式:
ldaps: ldapsearch -H ldaps://127.0.0.1   
(ldaps启动参考https://blog.csdn.net/seulzz/article/details/102963347)
TLS:   ldapsearch -ZZ -H ldap://127.0.0.1 (ldap over tls,安装启动与不加密传输一样,传输加密实现很简单,ldap操作命令加上-ZZ即可。ldapsearch  -x -ZZ -D "cn=LdapAdmin,dc=zdh,dc=com" -w Zdh@admin )(启动tls加密传输 -ZZ)

执行ldapsearch -x -ZZ后,查看日志,内容有 TLS established tls_ssf=256 ssf=256, 服务端配置正常
Jan  9 01:17:31 ldap-server slapd[12483]: conn=1067 fd=26 ACCEPT from IP=[::1]:52758 (IP=[::]:389)
Jan  9 01:17:31 ldap-server slapd[12483]: conn=1067 op=0 EXT oid=1.3.6.1.4.1.1466.20037
Jan  9 01:17:31 ldap-server slapd[12483]: conn=1067 op=0 STARTTLS
Jan  9 01:17:31 ldap-server slapd[12483]: conn=1067 op=0 RESULT oid= err=0 text=
Jan  9 01:17:31 ldap-server slapd[12483]: conn=1067 fd=26 TLS established tls_ssf=256 ssf=256
Jan  9 01:17:31 ldap-server slapd[12483]: conn=1067 op=1 BIND dn="" method=128
Jan  9 01:17:31 ldap-server slapd[12483]: conn=1067 op=1 RESULT tag=97 err=0 text=
Jan  9 01:17:31 ldap-server slapd[12483]: conn=1067 op=2 SRCH base="" scope=2 deref=0 filter="(objectClass=*)"
Jan  9 01:17:31 ldap-server slapd[12483]: conn=1067 op=2 SEARCH RESULT tag=101 err=32 nentries=0 text=
Jan  9 01:17:31 ldap-server slapd[12483]: conn=1067 op=3 UNBIND
Jan  9 01:17:31 ldap-server slapd[12483]: conn=1067 fd=26 closed

两种方式均需要证书文件,证书制备参考:https://blog.csdn.net/u011607971/article/details/86153804https://www.ibm.com/developerworks/cn/linux/1312_zhangchao_opensslldap/

项目测试过程中,这两种方式都可以解决加密传输抓包问题,但是ldaps会引入其他nessus漏洞,如,51192 - SSL Certificate Cannot Be Trusted,57582 - SSL Self-Signed Certificate,ssl 重协商等。

项目最后采取ldap over TLS方式解决。

发布了189 篇原创文章 · 获赞 86 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/seulzz/article/details/103428416