LDAP

公司內(nèi)部會有許多第三方系統(tǒng)或服務(wù)俺驶,例如SVN幸逆、Git、VPN暮现、Jira还绘、Jenkins等等,每個系統(tǒng)都需要維護一份賬號密碼以支持用戶認證栖袋,當(dāng)然公司也會有許多的主機或服務(wù)器拍顷,需要開放登錄權(quán)限給用戶登錄使用,每臺主機需要添加登錄的賬號密碼塘幅,這些操作不僅繁瑣且不方便管理昔案,密碼記錯或遺忘的情況時有發(fā)生。

引入一套支持各系統(tǒng)电媳、服務(wù)踏揣、主機單點認證的服務(wù)就顯得尤其迫切和重要。LDAP服務(wù)正是為此而生匆背,且經(jīng)過長時間市場檢驗呼伸,安全穩(wěn)定,文檔也比較豐富钝尸,方便上手括享。

LDAP

可以通過以下三句話快速的認識一下LDAP:

  1. LDAP:Lightweight Directory Access Protocol,輕量目錄訪問協(xié)議珍促。

  2. LDAP服務(wù)是一個為只讀(查詢铃辖、瀏覽、搜索)訪問而優(yōu)化的非關(guān)系型數(shù)據(jù)庫猪叙,呈樹狀結(jié)構(gòu)組織數(shù)據(jù)娇斩。

  3. LDAP主要用做用戶信息查詢(如郵箱、電話等)或?qū)Ω鞣N服務(wù)訪問做后臺認證以及用戶數(shù)據(jù)權(quán)限管控穴翩。

名詞解釋

  • DC:domain component一般為公司名犬第,例如:dc=163,dc=com

  • OU:organization unit為組織單元,最多可以有四級芒帕,每級最長32個字符歉嗓,可以為中文

  • CN:common name為用戶名或者服務(wù)器名,最長可以到80個字符背蟆,可以為中文

  • DN:distinguished name為一條LDAP記錄項的名字鉴分,有唯一性哮幢,例如:dc:"cn=admin,ou=developer,dc=163,dc=com"

圖形示例

上邊來了一堆的名詞解釋,看的云里霧里志珍,還不是很明白橙垢,怎么跟自己的組織架構(gòu)對應(yīng)起來呢?看看下邊的圖是不是清晰明了

[圖片上傳失敗...(image-f69237-1578624340856)]

image.png

OpenLDAP

上邊介紹了LDAP只是一個協(xié)議伦糯,基于這個協(xié)議實現(xiàn)服務(wù)器端程序有OpenLDAP柜某、Active Directory(微軟的域控制器)等等。

部署OpenLDAP

部署環(huán)境:Debian 8.4

1.安裝OpenLDAP,OpenLDAP服務(wù)端程序叫slapd

apt-get install -y slapd

2.安裝完成之后舔株,會自動生成一個OpenLDAP的系統(tǒng)賬號

cat /etc/passwd

openldap:x:110:115:OpenLDAP Server Account,,,:/var/lib/ldap:/bin/false

3.生成OpenLDAP管理員賬號的密碼(后邊修改配置文件需要使用)

slappasswd

New password:

Re-enter new password:

{SSHA}EcAoXeGab5g8y2Y03EmH3+Zc3hJaHp7F

4.新建OpenLDAP配置文件

cp /usr/share/slapd/slapd.conf /etc/ldap/

配置文件中有很多@xxx@的配置替換為真實配置

slaptest -f /etc/ldap/slapd.conf

5ad9b19d /etc/ldap/slapd.conf: line 105: rootdn is always granted unlimited privileges.

5ad9b19d /etc/ldap/slapd.conf: line 122: rootdn is always granted unlimited privileges.

config file testing succeeded

配置文件重要參數(shù)說明(需要自己修改的莺琳,其他未提到的可以不修改):

  • database bdb:定義使用的后端數(shù)據(jù)存儲格式,數(shù)據(jù)庫默認采用了berkeley db载慈,其后可以跟的值有bdb惭等、ldbm、passwd办铡、shell辞做。bdb指使用Berkley DB 4數(shù)據(jù)庫

  • suffix "dc=163,dc=com":suffix是"LDAP基準名",它是LDAP名字空間在這里的根寡具。設(shè)置想要創(chuàng)建的子樹的根DN

  • rootdn "cn=admin,dc=163,dc=com":設(shè)置管理LDAP目錄的超級用戶的DN秤茅。這個用戶名不要出現(xiàn)在/etc/passwd文件里

  • rootpw {SSHA}EcAoXeGab5g8y2Y03EmH3+Zc3hJaHp7F:設(shè)置這個數(shù)據(jù)庫的超級用戶的口令驗證方式。也就是上邊rootdn設(shè)置的用戶的密碼童叠。一定要用加密的口令存儲框喳,可以使用的加密方式有:CRYPT、MD5厦坛、SMD5五垮、SHA和SSHA,就是我們第三步生成的密碼

  • directory /var/lib/ldap:設(shè)置LDAP數(shù)據(jù)庫和索引文件所在的目錄

  • access to:權(quán)限配置下邊詳細說明

5.刪除原配置杜秸,生成新配置

rm -rf /etc/ldap/slapd.d/*

slaptest -f /etc/ldap/slapd.conf -F /etc/ldap/slapd.d/

給新生成的配置文件賦予OpenLdap的權(quán)限

chown -R openldap.openldap /etc/ldap/slapd.d/

6.重啟OpenLdap

/etc/init.d/slapd restart

ACL權(quán)限控制

ACL訪問指令的格式:

access to [what]

by [who] [control]

簡單解釋:通過access to約束我們訪問的范圍(what)放仗,通過by設(shè)定哪個用戶(who)有什么權(quán)限(control)

ACL的詳細配置還是比較復(fù)雜的,可以看下下邊參考文檔的第三篇撬碟,寫的比較詳細诞挨,這里都不再贅述。

線上ACL控制配置解析

為了用戶能夠自主修改密碼呢蛤,部署了lam給用戶使用(見下文lam介紹)惶傻。希望能達到的效果是:

  1. 管理員能夠有全部權(quán)限,包含新建用戶其障,修改用戶屬性达罗,充值用戶密碼等

  2. 普通用戶只能修改自己的密碼,別的權(quán)限都沒有

配置如下:

access to attrs=userPassword通過屬性找到訪問范圍密碼,

超級管理員也就是我們ldap配置文件里寫的rootdn:"cn=admin,dc=163,dc=com"有寫(write)權(quán)限;

由于管理員可能不止一個粮揉,我創(chuàng)建了個管理員組"ou=Admin,dc=163,dc=com"把管理員統(tǒng)一都放到這個組下,管理員組下的所有用戶(dn.children)有寫權(quán)限抚笔;

匿名用戶(anonymous)要通過驗證(auth);

自己(self)有對自己密碼的寫(write)權(quán)限扶认,其他人(*)都沒有權(quán)限(none).

access to attrs=userPassword,shadowLastChange

    by dn="cn=admin,dc=163,dc=com" write

    by dn.children="ou=Admin,dc=163,dc=com" write

    by anonymous auth

    by self write

    by * none

access to * 所有其他屬性,

超級管理員rootdn:"cn=admin,dc=163,dc=com"有寫(write)權(quán)限殊橙;

管理員"ou=Admin,dc=163,dc=com"成員有寫(write)權(quán)限辐宾;

其他人(*)只有讀(read)權(quán)限

access to *

    by dn="cn=admin,dc=163,dc=com" write

    by dn.children="ou=Admin,dc=163,dc=com" write

    by * read

備份和還原

備份

ldapsearch -x -b "dc=163,dc=com" -D "uid=authz,ou=Public,dc=163,dc=com" -w "CzfdX629K7" > ldap.20180626.ldif

參數(shù)說明:

  • -x:進行簡單的驗證

  • -D:用來綁定服務(wù)器的DN

  • -w:綁定DN的密碼

  • -b:要查詢的根節(jié)點

    authz賬號要有"dc=163,dc=com"的查詢權(quán)限

還原

ldapadd -x -c -D "cn=admin,dc=163,dc=com" -w "smile" -f ldap.20180626.ldif

參數(shù)說明:

  • -c:出錯后繼續(xù)執(zhí)行程序不終止,默認出錯即停止

  • -f:從文件內(nèi)讀取信息還原膨蛮,而不是標準輸入

    還原的DN最好為管理員賬號叠纹,至少也要有要LDAP的寫入權(quán)限

web管理工具

用了phpldapadmin和ldap-account-management(簡稱lam)兩款web管理工具,強烈推薦lam敞葛,所以這里就不介紹其他的了

ldap-account-manager

安裝

1.安裝ldap-account-management

apt-get install ldap-account-manager

2.瀏覽器訪問

http://ip/lam

配置

lam的所有配置都可以在web端配置誉察,不需要去服務(wù)器上修改一行代碼,這個太好用了惹谐。

  1. 瀏覽器訪問后進入登錄頁面持偏,我們點擊右上角"LAM configuratrion"來在線編輯配置文件
![image.jpeg](https://upload-images.jianshu.io/upload_images/18861864-7057cf63bf5c20d3.jpeg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 
  1. 看到如下頁面有兩個選項:"Edit general settings"來編輯通用配置,默認密碼lam氨肌,進入之后能配置密碼策略鸿秆、日志、管理員密碼怎囚,最重要的是更新掉管理員密碼卿叽,這個在后邊"Manage server profiles"管理的時候需要提供;"Edit server profiles"來編輯服務(wù)器配置恳守,我們先來編輯服務(wù)器配置
![image.jpeg](https://upload-images.jianshu.io/upload_images/18861864-e8068995d15c687f.jpeg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 
  1. 進入如下頁面考婴,輸入默認密碼lam即可編輯配置,這里要說明一下的是紅框標注的"Manage server profiles"可以對服務(wù)器的配置文件進行配置井誉,例如增加蕉扮、刪除配置文件、配置文件重命名颗圣,最重要的是可以設(shè)置配置文件密碼(也就是我們剛輸入的密碼lam喳钟,但修改密碼需要管理員密碼,后邊配置)
![image.jpeg](https://upload-images.jianshu.io/upload_images/18861864-ccea257f447601ea.jpeg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 
  1. 輸入密碼lam后就正式進入服務(wù)器配置頁在岂,看到第一個標簽"General setting"奔则,(可以先改下語言簡體中文保存,整站就給漢化啦蔽午,英文渣渣看起來就非常方便了)易茬,基本配置都看的很清晰了,主要是Tree suffix配置為自己的DC可以了
![image.jpeg](https://upload-images.jianshu.io/upload_images/18861864-575c68859d5b6d7d.jpeg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 
  1. 接著來看這個頁面,"security settings"非常重要抽莱,配置以何種方式登錄web控制臺范抓,默認為Fixed list模式,就是下邊列表里配置的dn可以登錄食铐,我們LDAP里還沒有任何一個賬號(當(dāng)我們創(chuàng)建了賬號之后可以選擇"LDAP serch"的模式匕垫,讓普通賬號也能登錄以修改自己的密碼),這里要選擇fixed list模式并配置為我們LDAP的rootdn虐呻,設(shè)置一個密碼登錄之后創(chuàng)建賬號等操作
![image.jpeg](https://upload-images.jianshu.io/upload_images/18861864-10eada254e2ff07c.jpeg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 
  1. 接下來就是"Account types"標簽頁的配置象泵,這里配置我們登錄web控制顯示的標簽,我這里只需要他顯示用戶斟叼,就把Group之類的都刪除了偶惠,保留了User
![image.jpeg](https://upload-images.jianshu.io/upload_images/18861864-c797d25680fe20a7.jpeg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 
  1. "Modules"頁面配置上一個具體每個account type顯示的模塊

    [圖片上傳失敗...(image-d844e1-1578624340853)]

    image.jpeg
  2. "Models setting"頁面配置models具體要顯示的內(nèi)容,不得不說配置非常詳細

![image.jpeg](https://upload-images.jianshu.io/upload_images/18861864-b7bf212af9c61ddd.jpeg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 
  1. 經(jīng)過上邊的配置就可以進入控制臺新建賬號了朗涩,新建賬號之前一個有用的操作是修改用戶的默認RDN標致為uid忽孽,更高位置在登錄web控制臺后右上角配置文件編輯器里邊
![image.png](https://upload-images.jianshu.io/upload_images/18861864-683e9bea81204cdf.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 
  1. 基本配置完成,可以開始使用了馋缅,中文界面比較清晰扒腕,無需過多解釋啦。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末萤悴,一起剝皮案震驚了整個濱河市瘾腰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌覆履,老刑警劉巖蹋盆,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異硝全,居然都是意外死亡栖雾,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進店門伟众,熙熙樓的掌柜王于貴愁眉苦臉地迎上來析藕,“玉大人,你說我怎么就攤上這事凳厢≌穗剩” “怎么了?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵先紫,是天一觀的道長笔诵。 經(jīng)常有香客問我克胳,道長,這世上最難降的妖魔是什么务蝠? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任榨婆,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己劫扒,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布意狠。 她就那樣靜靜地躺著粟关,像睡著了一般。 火紅的嫁衣襯著肌膚如雪环戈。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天澎灸,我揣著相機與錄音院塞,去河邊找鬼。 笑死性昭,一個胖子當(dāng)著我的面吹牛拦止,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播糜颠,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼汹族,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了其兴?” 一聲冷哼從身側(cè)響起顶瞒,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎元旬,沒想到半個月后榴徐,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡匀归,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年坑资,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片穆端。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡袱贮,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出体啰,到底是詐尸還是另有隱情攒巍,我是刑警寧澤,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布狡赐,位于F島的核電站窑业,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏枕屉。R本人自食惡果不足惜常柄,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧西潘,春花似錦卷玉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至品姓,卻和暖如春寝并,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背腹备。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工衬潦, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人植酥。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓镀岛,卻偏偏與公主長得像,于是被迫代替她去往敵國和親友驮。 傳聞我的和親對象是個殘疾皇子漂羊,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內(nèi)容