centos7.5部署openldap

重裝

# rm -fr /etc/openldap
# rm -fr /var/lib/ldap
# yum -y reinstall openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel migrationtools

準(zhǔn)備

設(shè)置selinux,關(guān)閉防火墻(如未關(guān)閉咽安,則要放通389端口)

搭建

yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel migrationtools
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
ll /var/lib/ldap/

systemctl enable slapd
systemctl start slapd
systemctl status slapd

cat >/root/chrootpw.ldif << "EOF"
#specify the password generated above for "olcRootPW" section
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}lz3oLyvG/5FvpW4TIRDP+QHahLxtHWpq
//{SSHA}36qGoMQPrp1JVSwjwhvUc5o+EB7FFEAM(從)
EOF

ldapadd -Y EXTERNAL -H ldapi:/// -f /root/chrootpw.ldif

ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif


cat > /root/memberof_load_configure.ldif << "EOF"
dn: cn=module{0},cn=config
cn: module{0}
objectClass: olcModuleList
objectclass: top
olcModuleLoad: memberof.la
olcModulePath: /usr/lib64/openldap

# Load memberof module
dn: cn=module{0},cn=config
changetype: modify
add: olcModuleLoad
olcModuleLoad: memberof

# Backend memberOf overlay
dn: olcOverlay={0}memberof,olcDatabase={2}hdb,cn=config
changetype: add
objectClass: olcOverlayConfig
objectClass: olcMemberOf
olcOverlay: {0}memberof
olcMemberOfDangling: ignore
olcMemberOfRefInt: TRUE
olcMemberOfGroupOC: groupOfUniqueNames
olcMemberOfMemberAD: uniqueMember
olcMemberOfMemberOfAD: memberOf
EOF

ldapadd -Y EXTERNAL -H ldapi:/// -f /root/memberof_load_configure.ldif


cat > /root/refint.ldif << "EOF"
# Load refint module
dn: cn=module{0},cn=config
changetype: modify
add: olcModuleLoad
olcModuleLoad: refint

# Backend refint overlay
dn: olcOverlay={1}refint,olcDatabase={2}hdb,cn=config
changetype: add
objectClass: olcOverlayConfig
objectClass: olcRefintConfig
olcOverlay: {1}refint
olcRefintAttribute: owner
olcRefintAttribute: manager
olcRefintAttribute: uniqueMember
olcRefintAttribute: member
olcRefintAttribute: memberOf
EOF

ldapadd -Y EXTERNAL -H ldapi:/// -f /root/refint.ldif

cat > /root/disable_anon.ldif << "EOF"
dn: cn=config
changetype: modify
add: olcDisallows
olcDisallows: bind_anon

dn: cn=config
changetype: modify
add: olcRequires
olcRequires: authc

dn: olcDatabase={-1}frontend,cn=config
changetype: modify
add: olcRequires
olcRequires: authc
EOF

ldapadd -Y EXTERNAL -H ldapi:/// -f /root/disable_anon.ldif

cat >/root/chdomain.ldif << "EOF"
#replace to your own domain name for "dc=***,dc=***" section
#specify the password generated above for "olcRootPW" section
dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth"
read by dn.base="cn=root,dc=account,dc=ym" read by * none

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=account,dc=ym

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=root,dc=account,dc=ym

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}N8UMwoAi1/bE02iwUHYs0wLtqdhiWfqs

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by
dn="cn=root,dc=account,dc=ym" write by anonymous auth by self write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=root,dc=account,dc=ym" write by * read
EOF

ldapmodify -Y EXTERNAL -H ldapi:/// -f /root/chdomain.ldif

cat > /root/loglevel.ldif << "EOF"
dn: cn=config
changetype: modify
replace: olcLogLevel
olcLogLevel: stats stats2 sync 
EOF

ldapmodify -Y EXTERNAL -H ldapi:/// -f /root/loglevel.ldif

systemctl restart slapd


cat >> /etc/rsyslog.conf << "EOF"
local4.* /var/log/slapd.log
EOF

systemctl restart rsyslog

cat > /etc/logrotate.d/slapd << "EOF"
/var/log/slapd.log {
daily 
dateext 
copytruncate 
nocompress 
rotate 15
}
EOF

systemctl restart rsyslog

logrotate -f /etc/logrotate.d/slapd

主從master上配置:(如果要配置雙主伴网,則在兩臺(tái)機(jī)上都要配置syncprov_mod.ldif、syncprov.ldif)

cat > /root/syncprov_mod.ldif << "EOF"
dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulePath: /usr/lib64/openldap
olcModuleLoad: syncprov.la
EOF

ldapadd -Y EXTERNAL -H ldapi:/// -f /root/syncprov_mod.ldif


cat > /root/syncprov.ldif << "EOF"
dn: olcOverlay=syncprov,olcDatabase={2}hdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: syncprov
olcSpCheckpoint: 1 1
olcSpSessionLog: 1024
EOF

ldapadd -Y EXTERNAL -H ldapi:/// -f /root/syncprov.ldif

主從在slave上:

cat > /root/rp.ldif << "EOF"
dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcSyncRepl
olcSyncRepl: 
rid=001
provider=ldap://10.200.10.20:389/
bindmethod=simple
binddn="cn=root,dc=account,dc=ym"
credentials=1q2w3e4r
searchbase="dc=account,dc=ym"
scope=sub
schemachecking=on
type=refreshAndPersist
retry="30 5 300 3"
attrs="*,+"
interval=00:00:00:02
-
add: olcDbIndex
olcDbIndex: uid eq,pres
olcDbIndex: uniqueMember eq,pres
olcDbIndex: uidNumber,gidNumber eq,pres
olcDbIndex: member,memberUid eq,pres
olcDbIndex: entryUUID eq
olcDbIndex: entryCSN eq
EOF

ldapmodify -Y EXTERNAL -H ldapi:/// -f /root/rp.ldif

備份腳本

vim /backup/ldapbackup.sh
#! /bin/sh

#ben huang
#備份ldap
PATH="/bin:/sbin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin"
export PATH

BACKDIR=/backup/databackup
DATE=`date '+%Y%m%d_%H%M%S'`
BACKFILE0=ldapbackup0_${DATE}.ldif
BACKFILE2=ldapbackup2_${DATE}.ldif
BACKFILE_search=ldapbackup_search_${DATE}.ldif

DEBUG=1

# check of the backup directory exists.if not, create it
if [ -e $BACKDIR ]
then
echo Backups directory already exists
else
mkdir -p $BACKDIR
fi


echo Backing up LDAP entries…

if [ $DEBUG -eq 1 ]
then
slapcat -n 0 -l $BACKDIR/$BACKFILE0 2>/dev/null
slapcat -n 2 -l $BACKDIR/$BACKFILE2 2>/dev/null
ldapsearch -x -b "dc=account,dc=ym" -D "uid=yamei,ou=People,dc=account,dc=ym" -w "123456" > $BACKDIR/$BACKFILE_search 2>/dev/null
else
echo "backup fail"
fi


rsync -avzP --delete /backup/databackup root@10.1.0.113:/backup/
echo Your backup is complete!

主計(jì)劃任務(wù)

0 * * * * /backup/ldapbackup.sh
0 1 * * * find /var/log/ -name "slapd.log-*" -mtime +7|xargs rm -f
0 2 * * * find /backup/databackup/ -name "ldapbackup*" -mtime +7|xargs rm -f

從計(jì)劃任務(wù)

0 1 * * * find /var/log/ -name "slapd.log-*" -mtime +7|xargs rm -f
0 2 * * * find /backup/databackup/ -name "ldapbackup*" -mtime +7|xargs rm -f

基本使用

ldapadd -x -D cn=root,dc=account,dc=ym -f test.ldif -W
ldapdelete -x -D "cn=root,dc=account,dc=ym" -W "uid=test,ou=People,dc=account,dc=ym"
tail -0f /var/log/slapd.log
ldapsearch -x -W -LLL -H ldap:/// -D cn=root,dc=account,dc=ym -b "dc=account,dc=ym" dn|grep test
ldappasswd -s 123456 -W -D cn=root,dc=account,dc=ym -x uid=test,ou=People,dc=account,dc=ym

普通用戶(hù)查詢(xún)時(shí)因條數(shù)過(guò)多無(wú)法顯示的問(wèn)題解決:

cat > /root/sizelimit.ldif << "EOF"
dn: cn=config
changetype: modify
replace: olcSizeLimit
olcSizeLimit: 10000

dn: olcDatabase={-1}frontend,cn=config
changetype: modify
replace: olcSizeLimit
olcSizeLimit: 10000
EOF

ldapmodify -Y EXTERNAL -H ldapi:/// -f sizelimit.ldif
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末妆棒,一起剝皮案震驚了整個(gè)濱河市澡腾,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌糕珊,老刑警劉巖动分,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異红选,居然都是意外死亡澜公,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)喇肋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)坟乾,“玉大人,你說(shuō)我怎么就攤上這事蝶防∩趼拢” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵间学,是天一觀的道長(zhǎng)殷费。 經(jīng)常有香客問(wèn)我印荔,道長(zhǎng),這世上最難降的妖魔是什么详羡? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任仍律,我火速辦了婚禮,結(jié)果婚禮上实柠,老公的妹妹穿的比我還像新娘染苛。我一直安慰自己,他們只是感情好主到,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布茶行。 她就那樣靜靜地躺著,像睡著了一般登钥。 火紅的嫁衣襯著肌膚如雪畔师。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,708評(píng)論 1 305
  • 那天牧牢,我揣著相機(jī)與錄音看锉,去河邊找鬼。 笑死塔鳍,一個(gè)胖子當(dāng)著我的面吹牛伯铣,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播轮纫,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼腔寡,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了掌唾?” 一聲冷哼從身側(cè)響起放前,我...
    開(kāi)封第一講書(shū)人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎糯彬,沒(méi)想到半個(gè)月后凭语,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡撩扒,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年似扔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片搓谆。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡炒辉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出挽拔,到底是詐尸還是另有隱情辆脸,我是刑警寧澤但校,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布螃诅,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏术裸。R本人自食惡果不足惜倘是,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望袭艺。 院中可真熱鬧搀崭,春花似錦、人聲如沸猾编。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)答倡。三九已至轰传,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間瘪撇,已是汗流浹背获茬。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留倔既,地道東北人恕曲。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像渤涌,于是被迫代替她去往敵國(guó)和親佩谣。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355