Linux LDAP安裝部署集成kerberos

版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載默怨。http://www.reibang.com/p/9995aea194ef

一樟氢、概述

由于Hadoop安全模塊不存儲用戶和用戶組信息,同時在集群開啟kerberos認證后镇饺,需要映射Kerberos Principle到linux的用戶及用戶組乎莉,統(tǒng)一管理用戶信息的方式有OpenLDAP和AD,而AD是部署在Windows上的奸笤,本文主要介紹在linux環(huán)境下OpenLDAP的安裝及部署惋啃。

二、Server端安裝與配置

2.1 安裝介質(zhì)

?$ yum install -y openldap openldap-clients openldap-servers migrationtools

查看版本

在2.4以前的版本中监右,OpenLDAP使用slapd.conf配置文件來進行服務(wù)器的配置边灭,而2.4開始則使用slapd.d目錄保存細分后的各種配置,數(shù)據(jù)存儲位置在/etc/openldap/slapd.d健盒。

2.2 設(shè)置OpenLDAP管理員密碼

$ [root@wgqcasappun05 ~]# slappasswd -s wangkuan {SSHA}nNKPLICNp05v/eh27DquhJZkmsaCSgUx

上述加密后的字段需要保存下來绒瘦,后面配置文件中會用到。

2.3 配置文件修改

[root@wgqcasappun05slapd.d]# vi /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}hdb.ldif

修改內(nèi)容:

olcSuffix: dc=hadoop,dc=com

olcRootDN:cn=Manager,dc=hadoop,dc=com

添加內(nèi)容:

olcRootPW:{SSHA}nNKPLICNp05v/eh27DquhJZkmsaCSgUx???

說明扣癣,cn=Manager中的Manager表示OpenLDAP管理員的用戶名惰帽,而olcRootPW:為開始通過slappasswd生成的密碼,需注意格式的嚴謹搏色,“:”后必須有空格善茎,否則會因格式錯誤導致認證失敗频轿!

[root@wgqcasappun05 cn=config]# cat olcDatabase\=\{2\}hdb.ldif

# AUTO-GENERATED FILE - DO NOT EDIT!! Useldapmodify.

# CRC32 17630c65

dn: olcDatabase={2}hdb

objectClass: olcDatabaseConfig

objectClass: olcHdbConfig

olcDatabase: {2}hdb

olcDbDirectory: /var/lib/ldap

olcSuffix: dc=hadoop,dc=com

olcRootDN:cn=Manager,dc=hadoop,dc=com

olcRootPW:{SSHA}nNKPLICNp05v/eh27DQuhJZkmsaCSgUx

olcDbIndex: objectClass eq,pres

olcDbIndex: ou,cn,mail,surname,givennameeq,pres,sub

structuralObjectClass: olcHdbConfig

entryUUID:c8b8daea-16cd-1039-9fc3-01f93c3094e1

creatorsName: cn=config

createTimestamp: 20190530022423Z

entryCSN:20190530022423.917195Z#000000#000#000000

modifiersName: cn=config

modifyTimestamp: 20190530022423Z

2.4 修改驗證

[root@wgqcasappun05cn=config]#vi /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{1\}monitor.ldif

修改內(nèi)容:

olcAccess: {0}to * bydn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" readby dn.base="cn=Manager,dc=hadoop,dc=com" read by * none

[root@wgqcasappun05 ~]# cat ?/etc/openldap/slapd.d/cn\=config/olcDatabase\=\{1\}monitor.ldif

# AUTO-GENERATED FILE - DO

? NOT EDIT!! Use ldapmodify.

# CRC32 2dc3347a

dn: olcDatabase={1}monitor

objectClass: olcDatabaseConfig

olcDatabase: {1}monitor

olcAccess: {0}to * by? dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth"? read by dn.base="cn=Manager,dc=hadoop,dc=com" read by * none

structuralObjectClass:olcDatabaseConfig

entryUUID: c8b8d0ea-16cd-1039-9fc2-01f93c3094e1

creatorsName: cn=config

createTimestamp: 20190530022423Z

entryCSN: 20190530022423.916939Z#000000#000#000000

modifiersName: cn=config

modifyTimestamp: 20190530022423Z ?

2.5 更新配置庫

$ cp /usr/share/openldap-servers/DB_CONFIG.example/var/lib/ldap/DB_CONFIG

$ chown

ldap:ldap -R /var/lib/ldap

$ chmod 700 -R /var/lib/ldap

2.6 驗證

$slaptest -u

看見:config file testing succeeded ?#驗證成功垂涯,否則失敗

可以看到烁焙,驗證成功了,前面兩條信息可以忽略耕赘。

2.7 啟動OpenLDAP服務(wù)

$ systemctl start slapd

$ systemctl enable slapd

查看運行狀態(tài)

OpelLDAP默認監(jiān)聽端口是389骄蝇,確認服務(wù)正常啟動。

2.8 導入基本Schema

$ cd /etc/openldap/schema/

$ ldapadd -Y EXTERNAL -H?ldapi:///-D"cn=config" -f cosine.ldif

$ ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f nis.ldif

$ ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f collective.ldif

$ ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f corba.ldif

$ ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f core.ldif

$ ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f duaconf.ldif

$ ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f dyngroup.ldif

$ ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f inetorgperson.ldif

$ ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f java.ldif

$ ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f misc.ldif

$ ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f openldap.ldif

$ ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f pmi.ldif

$ ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f ppolicy.ldif

2.9 執(zhí)行l(wèi)dapsearch -x檢查是否有如下輸出

$ldapsearch -x -b '' -s base'(objectclass=*)'

如顯示上面信息操骡,表示服務(wù)已經(jīng)啟動成功九火。

2.10 創(chuàng)建管理員賬號

$ 編輯/etc/openldap/schema/base.ldif文件

[root@wgqcasappun05 schema]# cat base.ldif

dn: dc=hadoop,dc=com

o: hadoop com

dc: hadoop

objectClass: top

objectClass: dcObject

objectClass: organization


dn: cn=root,dc=hadoop,dc=com

cn: root

objectClass: organizationalRole

description: Directory Manager


dn: ou=People,dc=hadoop,dc=com

ou: People

objectClass: top

objectClass: organizationalUnit


dn: ou=Group,dc=hadoop,dc=com

ou: Group

objectClass: top

objectClass: organizationalUnit

導入數(shù)據(jù)庫

$ ldapadd -x -D ?"cn=Manager,dc=hadoop,dc=com" -W -f base.ldif

密碼是wangkuan,查詢驗證

[root@wgqcasappun05 schema]# ldapsearch -x -b 'dc= hadoop,dc=com'? '(objectClass=*)'

# extended LDIF

#

# LDAPv3

# base with scope subtree

# filter: (objectClass=*)

# requesting: ALL

#


# hadoop.com

dn: dc=hadoop,dc=com

o: hadoop com

dc: hadoop

objectClass: top

objectClass: dcObject

objectClass: organization


# root, hadoop.com

dn: cn=root,dc=hadoop,dc=com

cn: root

objectClass: organizationalRole

description: Directory Manager


# People, hadoop.com

dn: ou=People,dc=hadoop,dc=com

ou: People

objectClass: top

objectClass: organizationalUnit


# Group, hadoop.com

dn: ou=Group,dc=hadoop,dc=com

ou: Group

objectClass: top

objectClass: organizationalUnit


# wangkuan, People, hadoop.com

dn: uid=wangkuan,ou=People,dc=hadoop,dc=com

uid: wangkuan

cn: wangkuan

objectClass: account

objectClass: posixAccount

objectClass: top

objectClass: shadowAccount

userPassword:: e2NyeXB0fSEh

shadowLastChange: 18046

shadowMin: 1

shadowMax: 90

shadowWarning: 7

loginShell: /bin/bash

uidNumber: 5199

gidNumber: 5199

homeDirectory: /home/wangkuan


# wangkuan1, People, hadoop.com

dn: uid=wangkuan1,ou=People,dc=hadoop,dc=com

uid: wangkuan1

cn: wangkuan1

objectClass: account

objectClass: posixAccount

objectClass: top

objectClass: shadowAccount

userPassword:: e2NyeXB0fSEh

shadowLastChange: 18046

shadowMin: 1

shadowMax: 90

shadowWarning: 7

loginShell: /bin/bash

uidNumber: 5200

gidNumber: 5200

homeDirectory: /home/wangkuan1


# search result

search: 2

result: 0 Success


# numResponses: 7

# numEntries: 6

2.11 migrationtools實現(xiàn)OpelLDAP用戶及用戶組的添加

1册招、修改配置文件/usr/share/migrationtools/migrate_common.ph

# Default DNS domain

$DEFAULT_MAIL_DOMAIN= "hadoop.com";

# Default base

$DEFAULT_BASE= "hadoop,dc=com";

2岔激、導入用戶及用戶組信息

a.導入用戶信息

將系統(tǒng)用戶生成ldif文件,此處以yhxwfx(用戶行為分析)這個用戶為例

# cat /etc/passwd |grep yhxwfx > yhxwfx.txt

生成用戶ldif文件

#/usr/share/migrationtools/migrate_passwd.pl?yhxwfx.txt yhxwfx.ldif

這個文件生成之后是掰,第一行dn的配置中默認是少了dc=hadoop的虑鼎,經(jīng)過數(shù)十次失敗的嘗試,確定需要額外新增加粗內(nèi)容键痛,否則你怎么添加條目都會報錯:

因此炫彩,下面這個文件為標準配置文件,需作為用戶新增的模板絮短,善加保存江兢!

[root@wgqcasappun05? migrationtools]# cat yhxwfx.ldif

dn: uid=yhxwfx,ou=People,dc=hadoop,dc=com

uid: yhxwfx

cn: yhxwfx

objectClass: account

objectClass: posixAccount

objectClass: top

objectClass: shadowAccount

userPassword: {crypt}!!

shadowLastChange: 18050

shadowMin: 1

shadowMax: 90

shadowWarning: 7

loginShell: /bin/bash

uidNumber: 5201

gidNumber: 5201

homeDirectory: /home/yhxwfx

將用戶導入到ldap中

# ldapadd -x -D "cn=Manager,dc=hadoop,dc=com" -W -f?yhxwfx.ldif

沒有報錯即說明導入成功。

b.導入用戶組信息

將系統(tǒng)用戶組生成ldif文件丁频,此處以yhxwfx(用戶行為分析)這個用戶為例

# cat /etc/group |grep yhxwfx > yhxwfxgroup.txt

生成用戶組ldif文件

#/usr/share/migrationtools/migrate_passwd.pl?yhxwfxgroup.txt yhxwfxgroup.ldif

同樣的杉允,這個文件生成之后,第一行dn的配置中也少了dc=hadoop限府,需要額外新增加粗內(nèi)容

[root@wgqcasappun05? migrationtools]# cat yhxwfxgroup.ldif

dn: cn=yhxwfx,ou=Group,dc=hadoop,dc=com

objectClass: posixGroup

objectClass: top

cn: yhxwfx

userPassword: {crypt}x

gidNumber: 5201

將用戶組導入到ldap中

# ldapadd -x -D "cn=Manager,dc=hadoop,dc=com" -W -f?yhxwfxgroup.ldif

沒有報錯即說明導入成功夺颤。

3、驗證

# ldapsearch -LLL -x -D 'cn=Manager,dc=hadoop,dc=com' -W -b 'dc=hadoop,dc=com' 'uid= yhxwfx'

可以看到胁勺,通過指定'uid= yhxwfx',我們就能夠查詢到這個用戶的數(shù)據(jù)独旷。

3署穗、Client端安裝與配置

3.1 安裝介質(zhì)

$ yum install nss-pam-ldapd openldap-clients openldap -y ?

3.2 Client端配置ldap.conf

編輯/etc/openldap/ldap.conf文件,指向ladp server端地址嵌洼,并配置dn案疲。

[root@wgqcasappun06wk]# cat /etc/openldap/ldap.conf

#

#LDAP Defaults

#


#See ldap.conf(5) for details

#This file should be world readable but not world writable.


#BASE? dc=example,dc=com

#URI??? ldap://ldap.example.com ldap://ldap-master.example.com:666


#SIZELIMIT 12

#TIMELIMIT 15

#DEREF????? never


TLS_CACERTDIR/etc/openldap/cacerts


#Turning this off breaks GSSAPI used with krb5 when rdns = false

SASL_NOCANON???? on

URL ldap://172.29.91.117/

BASE dc=hadoop,dc=com

URI ldap://172.29.91.117/

3.3 配置authconfig-tui

命令行輸入

$ authconfig-tui

選中圖中的*號項,點擊Next

填寫ldap地址:172.29.91.117麻养,并更新Base DN: dc=haddop,dc=com

3.4 驗證

操作系統(tǒng)層面不存在某個用戶褐啡,那么執(zhí)行id username會報如下錯:

在Client配置好之后,即便操作系統(tǒng)上不存在該用戶鳖昌,執(zhí)行id usename依然會檢索到該用戶备畦,因為該用戶已經(jīng)存入在LDAP數(shù)據(jù)庫中低飒。

至此,LDAP的配置就已完成懂盐。

4褥赊、LDAP集成Kerberos

4.1 創(chuàng)建LDAP管理員用戶

為了使kerberos能夠綁定到OpenLDAP服務(wù)器,需創(chuàng)建一個管理員用戶

$ kadmin.local -q "addprinc ldapadmin@SPDB.COM"

4.2 添加principal

$ kadmin.local -q "addprinc -randkey ldap/wgqcasappun05@SPDB.COM"

4.3 生成keytab文件

$ kadmin.local -q "ktadd -k /etc/openldap/ldap.keytab ldap/wgqcasappun05@SPDB.COM"

4.4 賦予keytab文件權(quán)限

$ chown ldap:ldap /etc/openldap/ldap.keytab && chmod 640 /etc/openldap/ldap.keytab

4.5 驗證keytab文件

使用ldapadmin用戶測試莉恼,輸入密碼沒有報錯說明已通過kerberos身份驗證拌喉。

$ kinit ldapadmin

4.5 增加KRB5_KTNAME配置

確保LDAP啟動時使用上一步創(chuàng)建的keytab文件,在/etc/sysconfig/sldap中增加如下內(nèi)容:

KRB5_KTNAME=/etc/openldap/ldap.keytab

之后重啟服務(wù)

$ systemctl restart? slapd

至此俐银,LDAP與kerberos已完成集成尿背。

kerberos的配置可查閱:

Kerberos高可用HA配置

CDH6集成kerberos

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市捶惜,隨后出現(xiàn)的幾起案子田藐,更是在濱河造成了極大的恐慌,老刑警劉巖售躁,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件坞淮,死亡現(xiàn)場離奇詭異读存,居然都是意外死亡宇色,警方通過查閱死者的電腦和手機僻他,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門衙傀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來逗扒,“玉大人咙鞍,你說我怎么就攤上這事箫柳《浦” “怎么了苍碟?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵酒觅,是天一觀的道長。 經(jīng)常有香客問我微峰,道長舷丹,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任蜓肆,我火速辦了婚禮颜凯,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘仗扬。我一直安慰自己症概,他們只是感情好,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布早芭。 她就那樣靜靜地躺著彼城,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上募壕,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天调炬,我揣著相機與錄音,去河邊找鬼司抱。 笑死筐眷,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的习柠。 我是一名探鬼主播匀谣,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼资溃!你這毒婦竟也來了武翎?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤溶锭,失蹤者是張志新(化名)和其女友劉穎宝恶,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體趴捅,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡垫毙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了拱绑。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片综芥。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖猎拨,靈堂內(nèi)的尸體忽然破棺而出膀藐,到底是詐尸還是另有隱情,我是刑警寧澤红省,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布额各,位于F島的核電站,受9級特大地震影響吧恃,放射性物質(zhì)發(fā)生泄漏虾啦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一痕寓、第九天 我趴在偏房一處隱蔽的房頂上張望缸逃。 院中可真熱鬧,春花似錦厂抽、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春藐守,著一層夾襖步出監(jiān)牢的瞬間挪丢,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工卢厂, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留乾蓬,地道東北人。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓慎恒,卻偏偏與公主長得像任内,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子融柬,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345

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