CentOS 7 OpenLDAP 安裝與配置 (非TLS)

軟件安裝包:

  1. OpenLDAP 2.4.44: ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/openldap-2.4.44.tgz
  2. BDB: http://download.oracle.com/berkeley-db/db-5.1.29.tar.gz

CentOS 7 準(zhǔn)備:

  1. 關(guān)閉防火墻
    //停止firewall
    systemctl stop firewalld.service

    //禁止firewall開機(jī)啟動(dòng)
    systemctl disable firewalld.service 
    
    //[Optional]
    //設(shè)置iptables service
    yum -y install iptables-services
    vim /etc/sysconfig/iptables
    //增加規(guī)則
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 389 -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 636 -j ACCEPT
    
  2. 關(guān)閉selinux
    //編輯selinux文件
    vim /etc/sysconfig/selinux

    //修改SELINUX=enforcing 為disabled
    SELINUX=disabled
    
    //設(shè)置selinux狀態(tài) 
    setenforce 0
    
    //獲取selinux狀態(tài)
    getenfroce
    

安裝OpenLDAP

  1. 依賴包
    //涉及l(fā)ibtool-ltdl與libtool-ltdl-devel吭狡,如不安裝,在編譯時(shí)報(bào)錯(cuò):configure: error: could not locate libtool ltdl.h
    [root@localhost ~]# yum install ltdl -y

  2. 安裝BDB
    //必須在解壓包的build_unix目錄中編譯安裝丽猬,否則會(huì)報(bào)錯(cuò)
    [root@localhost ~]# cd /usr/local/src/
    [root@localhost src]# tar -zxvf db-5.1.29.tar.gz
    [root@localhost src]# cd db-5.1.29/build_unix/
    [root@localhost build_unix]# ../dist/configure --prefix=/usr/local/berkeleydb-5.1.29
    [root@localhost build_unix]# make
    [root@localhost build_unix]# make install

  3. 更新lib庫(kù)
    //保證在后面編譯openldap時(shí)能找到lib和include下的庫(kù)晌梨。
    [root@localhost build_unix]# cd /usr/local/src/
    [root@localhost src]# echo "/usr/local/berkeleydb-5.1.29/lib/" > /etc/ld.so.conf
    [root@localhost src]# ldconfig -v

  4. 安裝OpenLDAP
    //編譯選項(xiàng)可以通過(guò)./configure --help查看迅箩;
    //其中make test一步時(shí)間較長(zhǎng)缠沈;
    [root@localhost ~]# cd /usr/local/src/
    [root@localhost src]# tar -zxvf openldap-2.4.44.tgz
    [root@localhost src]# cd openldap-2.4.44
    [root@localhost openldap-2.4.44]# ./configure --prefix=/usr/local/openldap-2.4.44 --enable-syslog --enable-modules --enable-debug --with-tls CPPFLAGS=-I/usr/local/berkeleydb-5.1.29/include/ LDFLAGS=-L/usr/local/berkeleydb-5.1.29/lib/
    [root@localhost openldap-2.4.44]# make depend
    [root@localhost openldap-2.4.44]# make
    [root@localhost openldap-2.4.44]# make test
    [root@localhost openldap-2.4.44]# make install

    //OpenLDAP 包在服務(wù)器上安裝了很多程序:
    //守護(hù)進(jìn)程:
    slapd:主 LDAP 服務(wù)器
    slurpd:負(fù)責(zé)與復(fù)制 LDAP 服務(wù)器保持同步的服務(wù)器
    //對(duì)網(wǎng)絡(luò)上的目錄進(jìn)行操作的客戶機(jī)程序晋渺。下面這兩個(gè)程序是一對(duì)兒:
    ldapadd:打開一個(gè)到 LDAP 服務(wù)器的連接鲤看,綁定缘揪、修改或增加條目
    ldapsearch:打開一個(gè)到 LDAP 服務(wù)器的連接,綁定并使用指定的參數(shù)進(jìn)行搜索
    //對(duì)本地系統(tǒng)上的數(shù)據(jù)庫(kù)進(jìn)行操作的幾個(gè)程序:
    slapadd:將以 LDAP 目錄交換格式(LDIF)指定的條目添加到 LDAP 數(shù)據(jù)庫(kù)中
    slapcat:打開 LDAP 數(shù)據(jù)庫(kù)义桂,并將對(duì)應(yīng)的條目輸出為 LDIF 格式
    
  5. 設(shè)置可執(zhí)行命令
    //對(duì)openldap客戶端(bin)與服務(wù)器端(sbin)相關(guān)執(zhí)行檔添加軟鏈接找筝,也可以通過(guò)增加環(huán)境變量的方式設(shè)置
    [root@localhost openldap-2.4.44]# cd /usr/local/openldap-2.4.44
    [root@localhost openldap-2.4.44]# ln -s /usr/local/openldap-2.4.44/bin/* /usr/local/bin/
    [root@localhost openldap-2.4.44]# ln -s /usr/local/openldap-2.4.44/sbin/* /usr/local/sbin/

  6. 配置rootdn密碼
    //這樣rootdn密碼為密文方式,復(fù)制輸出密文到主配置文件rootdn對(duì)應(yīng)的位置即可慷吊,如果不想麻煩袖裕,可以忽略此步,在主配置文件中使用明文即可溉瓶。
    [root@locahost openldap-2.4.44]# slappasswd
    New password:

    Re-enter new password: 
    
    {SSHA}Jaxya/293KIkH8+3crZqiWpYLK829+pv
    [root@NGACentOS7 openldap-2.4.44]# 
    
  7. 修改主配置文件slapd.conf :
    [root@localhost openldap-2.4.44]# cd /usr/local/openldap-2.4.44/etc/openldap/
    [root@localhost openldap]# vim slapd.conf
    內(nèi)容如下:
    #
    # See slapd.conf(5) for details on configuration options.
    # This file should NOT be world readable.

    //schema默認(rèn)只有core.schema急鳄,各級(jí)需要添加,這里將同配置文件一個(gè)目錄的schema目錄中有的schema文件都加到配置文件中堰酿。
    include /usr/local/openldap-2.4.44/etc/openldap/schema/core.schema 
    include /usr/local/openldap-2.4.44/etc/openldap/schema/collective.schema
    include /usr/local/openldap-2.4.44/etc/openldap/schema/corba.schema
    include /usr/local/openldap-2.4.44/etc/openldap/schema/cosine.schema
    include /usr/local/openldap-2.4.44/etc/openldap/schema/duaconf.schema
    include /usr/local/openldap-2.4.44/etc/openldap/schema/dyngroup.schema
    include /usr/local/openldap-2.4.44/etc/openldap/schema/inetorgperson.schema
    include /usr/local/openldap-2.4.44/etc/openldap/schema/java.schema
    include /usr/local/openldap-2.4.44/etc/openldap/schema/misc.schema
    include /usr/local/openldap-2.4.44/etc/openldap/schema/nis.schema
    include /usr/local/openldap-2.4.44/etc/openldap/schema/openldap.schema
    include /usr/local/openldap-2.4.44/etc/openldap/schema/pmi.schema
    include /usr/local/openldap-2.4.44/etc/openldap/schema/ppolicy.schema
    # Define global ACLs to disable default read access.
    
    # Do not enable referrals until AFTER you have a working directory
    # service AND an understanding of referrals.
    #referral    ldap://root.openldap.org
    
    pidfile      /usr/local/openldap-2.4.44/var/run/slapd.pid
    argsfile /usr/local/openldap-2.4.44/var/run/slapd.args
    
    //#新增日志文件級(jí)別與路徑疾宏,需要在編譯時(shí)--enable-debug,否則日志文件輸出触创,不影響調(diào)試模式坎藐。
    loglevel       256
    logfile        /usr/local/openldap-2.4.44/var/slapd.log
    
    # Load dynamic backend modules:
    # modulepath /usr/local/openldap-2.4.44/libexec/openldap
    # moduleload back_mdb.la
    # moduleload back_ldap.la
    
    # Sample security restrictions
    #    Require integrity protection (prevent hijacking)
    #    Require 112-bit (3DES or better) encryption for updates
    #    Require 63-bit encryption for simple bind
    # security ssf=1 update_ssf=112 simple_bind=64
    
    # Sample access control policy:
    #    Root DSE: allow anyone to read it
    #    Subschema (sub)entry DSE: allow anyone to read it
    #    Other DSEs:
    #        Allow self write access
    #        Allow authenticated users read access
    #        Allow anonymous users to authenticate
    #    Directives needed to implement policy:
    # access to dn.base="" by * read
    # access to dn.base="cn=Subschema" by * read
    # access to *
    #    by self write
    #    by users read
    #    by anonymous auth
    #
    # if no access controls are present, the default policy
    # allows anyone and everyone to read anything but restricts
    # updates to rootdn.  (e.g., "access to * by * read")
    #
    # rootdn can always read and write EVERYTHING!
    
    #######################################################################
    # MDB database definitions
    #######################################################################
    //這里使用mdb做后端數(shù)據(jù)庫(kù),也可修改為”bdb”參數(shù)哼绑,在OpenLDAP 官方文檔” 11.4. LMDB”章節(jié)中有介紹mdb是推薦使用的后端數(shù)據(jù)庫(kù)
    database mdb
    maxsize      1073741824 /*使用mdb做后端數(shù)據(jù)庫(kù)時(shí)岩馍,根據(jù)官方文檔中說(shuō)明需要設(shè)置一個(gè)空間值,” In addition to the usual parameters that a minimal configuration requires, the mdb backend requires a maximum size to be set. This should be the largest that the database is ever anticipated to grow (in bytes). The filesystem must also provide enough free space to accommodate this size.”抖韩;如果使用bdb做后端數(shù)據(jù)庫(kù)蛀恩,需要將此項(xiàng)參數(shù)注釋。*/
    
    //修改域名及管理員賬戶名茂浮。
    suffix       "dc=cisco,dc=com"
    rootdn       "cn=admin,dc=cisco,dc=com"
    # Cleartext passwords, especially for the rootdn, should
    # be avoid.  See slappasswd(8) and slapd.conf(5) for details.
    # Use of strong authentication encouraged.
    //使用密文密碼双谆,即前面使用slappasswd生成的密文。
    rootpw       {SSHA}Jaxya/293KIkH8+3crZqiWpYLK829+pv
    # The database directory MUST exist prior to running slapd AND 
    # should only be accessible by the slapd and slap tools.
    # Mode 700 recommended.
    //openldap數(shù)據(jù)目錄席揽,采用mdb時(shí)佃乘,在相應(yīng)目錄生成” data.mdb”與” lock.mdb”文件;采用bdb時(shí)驹尼,在相應(yīng)目錄生成” dn2id.bdb”與” id2entry.bdb”趣避,及多個(gè)” __db.00*”文件。
    directory    /usr/local/openldap-2.4.44/var/openldap-data
    # Indices to maintain
    index    objectClass eq
    
  8. 初始化OpenLDAP(Optional)
    #如果采用mdb做后端數(shù)據(jù)庫(kù)新翎,此步可忽略程帕,DB_CONFIG是 bdb/hdb數(shù)據(jù)庫(kù)使用的住练。
    #與主配置文件中的配置有關(guān),主配置文件確定使用bdb與數(shù)據(jù)存放路徑愁拭。
    [root@localhost openldap]# cd /usr/local/openldap-2.4.44/var/openldap-data/
    [root@localhost openldap-data]# cp DB_CONFIG.example DB_CONFIG

  9. 啟動(dòng)OpenLDAP
    //直接在后臺(tái)工作;
    [root@localhost ~]# /usr/local/openldap-2.4.44/libexec/slapd

    //非root用戶不能監(jiān)聽端口1~1024讲逛,如果是非root用戶,有可能需要重新定義服務(wù)端口岭埠。
    [root@localhost ~]# /usr/local/openldap-2.4.44/libexec/slapd -d 256
    
    //驗(yàn)證(任選一個(gè))
    [root@localhost ~]# ldapsearch -x -b '' -s base'(objectclass=*)' 
    [root@localhost ~]# ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts
    [root@localhost ~]# netstat -tunlp | grep 389盏混,ps -ef | grep slapd,ps aux | grep slapd
    
  10. LDIF文件配置組織惜论,用戶许赃,條目等
    //創(chuàng)建一個(gè)管理員賬號(hào):
    [root@NGACentOS7 ~]# cat admin.ldif

    dn: dc=cisco,dc=com
    objectclass: dcObject
    objectclass: organization
    o: CISCO.Inc
    dc: cisco
    
    dn: cn=admin,dc=cisco,dc=com
    objectclass: organizationalRole
    cn: admin
    [root@NGACentOS7 ~]# 
    //注意:you need an empty line before each line starting with "dn:" LDIF separates entries by blank lines.
    
    //添加至ldap數(shù)據(jù)庫(kù)
    //簡(jiǎn)單身份驗(yàn)證必須要使用 -x 選項(xiàng)指定。在 slapd.conf 中定義的 rootdn 身份驗(yàn)證識(shí)別名是 “cn=admin,dc=cisco,dc=com”馆类。對(duì)于簡(jiǎn)單身份驗(yàn)證來(lái)說(shuō)混聊,必須使用密碼。選項(xiàng) -W 強(qiáng)制提示輸入密碼乾巧。這個(gè)密碼就是在 slapd.conf 文件中指定的 rootpw 參數(shù)的值句喜。包含這些條目的 LDIF 文件是使用 -f 選項(xiàng)指定的:
    [root@NGACentOS7 ~]# ldapadd -x -D "cn=admin,dc=cisco,dc=com" -W -f admin.ldif
    Enter LDAP Password: 
    
    adding new entry "dc=cisco,dc=com"
    
    adding new entry "cn=admin,dc=cisco,dc=com"
    
    /*驗(yàn)證
    [root@NGACentOS7 ~]# ldapsearch -x -b 'dc=cisco,dc=com' '(objectClass=*)'
    # extended LDIF
    #
    # LDAPv3
    # base <dc=cisco,dc=com> with scope subtree
    # filter: (objectClass=*)
    # requesting: ALL
    #
    
    # cisco.com
    dn: dc=cisco,dc=com
    objectClass: dcObject
    objectClass: organization
    o: CISCO.Inc
    dc: cisco
    
    # admin, cisco.com
    dn: cn=admin,dc=cisco,dc=com
    objectClass: organizationalRole
    cn: admin
    
    # search result
    search: 2
    result: 0 Success
    
    # numResponses: 3
    # numEntries: 2
    */
    

[Private]

NAM Lab 配置實(shí)例:

    [root@NGACentOS7 ~]# cat namPeople.ldif 
    dn:uid=Lily,ou=namPeople,dc=cisco,dc=com
    uid:Lily
    cn:Lily
    sn:Lily
    userPassword:Crdc%123
    objectClass:inetOrgPerson
    objectClass:posixAccount
    uidNumber:1315
    gidNumber:100
    homeDirectory:/home/Lily
    
    dn:uid=Lucy,ou=namPeople,dc=cisco,dc=com
    uid:Lucy
    cn:Lucy
    objectClass:account
    objectClass:posixAccount
    objectClass:top
    objectClass:shadowAccount
    userPassword:Crdc%123
    shadowLastChange:15064
    loginShell:/bin/sh
    uidNumber:1315
    gidNumber:100
    homeDirectory:/home/Lucy
    
    dn:uid=Leo,ou=namPeople,dc=cisco,dc=com
    uid:Leo
    cn:Leo
    objectClass:account
    objectClass:posixAccount
    objectClass:top
    objectClass:shadowAccount
    userPassword:Crdc%123
    shadowLastChange:15064
    loginShell:/bin/sh
    uidNumber:1316
    gidNumber:100
    homeDirectory:/home/Leo
    [root@NGACentOS7 ~]# 

ISE 關(guān)聯(lián)配置:

Paste_Image.png
Paste_Image.png
Paste_Image.png

參考補(bǔ)充自:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市沟于,隨后出現(xiàn)的幾起案子咳胃,更是在濱河造成了極大的恐慌,老刑警劉巖旷太,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件展懈,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡泳秀,警方通過(guò)查閱死者的電腦和手機(jī)标沪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門榄攀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)嗜傅,“玉大人,你說(shuō)我怎么就攤上這事檩赢÷类郑” “怎么了?”我有些...
    開封第一講書人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵贞瞒,是天一觀的道長(zhǎng)偶房。 經(jīng)常有香客問(wèn)我,道長(zhǎng)军浆,這世上最難降的妖魔是什么棕洋? 我笑而不...
    開封第一講書人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮乒融,結(jié)果婚禮上掰盘,老公的妹妹穿的比我還像新娘摄悯。我一直安慰自己,他們只是感情好愧捕,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開白布奢驯。 她就那樣靜靜地躺著,像睡著了一般次绘。 火紅的嫁衣襯著肌膚如雪瘪阁。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,111評(píng)論 1 285
  • 那天邮偎,我揣著相機(jī)與錄音管跺,去河邊找鬼。 笑死钢猛,一個(gè)胖子當(dāng)著我的面吹牛伙菜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播命迈,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼贩绕,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了壶愤?” 一聲冷哼從身側(cè)響起淑倾,我...
    開封第一講書人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎征椒,沒想到半個(gè)月后娇哆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡勃救,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年碍讨,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蒙秒。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡勃黍,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出晕讲,到底是詐尸還是另有隱情覆获,我是刑警寧澤,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布瓢省,位于F島的核電站弄息,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏勤婚。R本人自食惡果不足惜摹量,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧缨称,春花似錦废亭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至骂删,卻和暖如春掌动,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背宁玫。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工粗恢, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人欧瘪。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓眷射,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親佛掖。 傳聞我的和親對(duì)象是個(gè)殘疾皇子妖碉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

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