Centos7 搭建LDAP并啟用TLS加密
簡(jiǎn)介
ldap(輕量級(jí)目錄訪問(wèn)協(xié)議,Lightweight Directory Access Protocol)是為了實(shí)現(xiàn)目錄服務(wù)的信息服務(wù)。
目錄服務(wù)是一種特殊的數(shù)據(jù)庫(kù)系統(tǒng),其專門針對(duì)讀取,瀏覽和搜索操作進(jìn)行了特定的優(yōu)化。在網(wǎng)絡(luò)中應(yīng)用了ldap后,用戶只需要使用一個(gè)賬號(hào)和密碼就可以輕松訪問(wèn)網(wǎng)絡(luò)中的所有服務(wù),實(shí)現(xiàn)用戶身份的統(tǒng)一認(rèn)證。
簡(jiǎn)單來(lái)說(shuō):拿LDAP來(lái)統(tǒng)一管理一些賬號(hào),例如: Gitlab,JenKins,Samba,SVN,Zabbix等。
關(guān)于SSL/TLS
LDAP over SSL
#?LDAP?over?SSL?也就是?ldaps#?ldap默認(rèn)不加密情況下是走的389端口#?當(dāng)使用ldaps的時(shí)候走的就是636端口了#?可以簡(jiǎn)單理解成http和https的關(guān)系#?當(dāng)然ldaps已經(jīng)淘汰了,不然也不會(huì)有LDAP?over?TLS出來(lái)
LDAP over TLS
#?TLS可以簡(jiǎn)單理解為ldaps的升級(jí)#?它默認(rèn)走389端口,但是會(huì)通訊的時(shí)候加密#?客戶端連接LDAP時(shí),需要指明通訊類型為TLS,所以他可以跟不加密的模式一樣,任意端口都行對(duì)比一下連接方式: ldaps:?ldapsearch?-H?ldaps://127.0.0.1 TLS:???ldapsearch?-ZZ?-H?ldap://127.0.0.1
環(huán)境
CentOS?Linux?release?7.5.1804Kernel?4.20.0-1.el7.elrepo.x86_64docker-ce?18.09docker-compose?1.23.1
安裝docker-compose
yum?install?-y?python-pip pip?install?docker-compose docker-compose?-v
準(zhǔn)備證書
安裝cfssl
wget?-O?/bin/cfssl?https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 wget?-O?/bin/cfssljson?https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 wget?-O?/bin/cfssl-certinfo??https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64for?cfssl?in?`ls?/bin/cfssl*`;do?chmod?+x?$cfssl;done;
配置證書信息
cd?$HOME?&&?mkdir?ssl?&&?cd?ssl#?ca配置文件cat?>?ca-config.json?<?ldap-ca-csr.json?<?ldap-csr.json?<
給證書簽名
#?CA自簽名cfssl?gencert?-initca?ldap-ca-csr.json?|?cfssljson?-bare?ca#?LDAP證書簽名,ldap需要的文件為:ca證書,ldap證書,ldap私鑰cfssl?gencert?-ca=ca.pem?-ca-key=ca-key.pem?-config=ca-config.json?-profile=ldap?ldap-csr.json?|?cfssljson?-bare?ldap#?查看生成的證書#?其中??ldap-key.pem??ldap.pem?ca.pem?是我們需要的[root@master?ssl]#ls ca-config.json??ca.csr??ca-key.pem??ca.pem??ldap-ca-csr.json??ldap.csr??ldap-csr.json??ldap-key.pem??ldap.pem
開(kāi)始安裝ldap
克隆倉(cāng)庫(kù),獲取docker-compose.yaml文件
cd?$HOMEgit?clone?https://github.com/JyBigBoss/docker-compose.gitcd?docker-compose/LDAP/
復(fù)制證書
mkdir?ssl/ cp?$HOME/ssl/{ldap-key.pem,ldap.pem,ca.pem}?ssl/
修改docker-compose.yaml文件
vi?docker-compose.yaml#?修改下面的幾項(xiàng)#?鏡像使用的是osixia/openldap#?詳細(xì)的配置解釋:https://github.com/osixia/docker-openldapLDAP_ORGANISATION:?"lotbrick.com"LDAP_DOMAIN:?"lotbrick.com"LDAP_ADMIN_PASSWORD:?"admin"LDAP_CONFIG_PASSWORD:?"admin"LDAP_TLS:?"true"LDAP_TLS_CRT_FILENAME:?"ldap.pem"LDAP_TLS_KEY_FILENAME:?"ldap-key.pem"LDAP_TLS_CA_CRT_FILENAME:?"ca.pem"LDAP_TLS_ENFORCE:?"true"LDAP_TLS_VERIFY_CLIENT:?"try"domainname:?"lotbrick.com"hostname:?"lotbrick.com"#?特別注意LDAP_TLS_VERIFY_CLIENT#?不要設(shè)置成demand,這個(gè)選項(xiàng)可以理解成雙向認(rèn)證,也就是客戶端連接ldap時(shí)也許要提供證書,也就是客戶端也需要有自己的證書#?設(shè)置成try就行,客戶端不提供證書也能連接,反正連接已經(jīng)加密了。#?官方文檔:http://www.openldap.org/doc/admin24/tls.html
啟動(dòng)ldap
#第一次啟動(dòng)會(huì)比較慢,淡定點(diǎn)docker-compose?pull docker-compose?up?-d?ls docker?ps?-a?#?啟動(dòng)之后會(huì)生成幾個(gè)文件夾#?ldapconf保存的是ldap的配置文件#?ldapdata保存的是ldap的數(shù)據(jù)#?lam保存的是lam管理工具的配置[root@master?LDAP]#docker-compose?up?-dCreating?network?"ldap_default"?with?the?default?driver Creating?openldap?...?doneCreating?ldap-account-manager?...?done[root@master?LDAP]#lsdocker-compose.yaml??lam??ldapconf??ldapdata??ssl [root@master?LDAP]#docker?ps?-aCONTAINER?ID????????IMAGE?????????????????????????????????COMMAND??????????????????CREATED?????????????STATUS??????????????PORTS????????????????????????????????????????NAMES 9b4ebdad17eb????????jinyunboss/ldap-account-manager:6.6???"docker-php-entrypoi…"???2?minutes?ago???????Up?2?minutes????????0.0.0.0:8080->80/tcp?????????????????????????ldap-account-manager a7ff3bd5dced????????osixia/openldap:1.2.2?????????????????"/container/tool/run"????2?minutes?ago???????Up?2?minutes????????0.0.0.0:389->389/tcp,?0.0.0.0:636->636/tcp???openldap
打開(kāi)瀏覽器,配置LDAP Account Manager
LDAP Account Manager容器監(jiān)聽(tīng)在8080端口
打開(kāi)http://192.168.1.1:8080
#?配置一下lam管理頁(yè)面#?lam管理界面默認(rèn)密碼是:?lam#?lam可以管理多個(gè)ldap服務(wù)器,所以可以擁有多個(gè)profile,每個(gè)profile對(duì)應(yīng)一臺(tái)服務(wù)器#?簡(jiǎn)單添加個(gè)用戶,然后用另一臺(tái)linux機(jī)器測(cè)試ldap連接
測(cè)試LDAP
安裝ldap客戶端
yum?install?-y?openldap-clients??nss-pam-ldapd
配置配置客戶端
#?配置系統(tǒng)使用ldap認(rèn)證authconfig-tui#?將自簽名的ca證書給客戶端cd?/etc/openldap/cacerts/#?修改/etc/nslcd.conf,添加管理員憑據(jù)echo?"binddn?cn=admin,dc=lotbrick,dc=com"?>>?/etc/nslcd.conf echo?"bindpw?admin"??>>?/etc/nslcd.conf cat?/etc/nslcd.conf#?重啟nslcd服務(wù)systemctl?restart?nslcd
測(cè)試
#?執(zhí)行命令看看能不能讀取到LDAP用戶#?能連接上ldap的話,執(zhí)行之后會(huì)出現(xiàn)ldap用戶getent?passwd id?bigboss#?切換成bigboss用戶試試su?-?bigboss
----------------------------------------
本文轉(zhuǎn)自三和梁朝偉博客51CTO博客
IAM
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。