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出來

 

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方式解決。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章