目 的:搭建一套完整的OpenLDAP系統,實作賬号的統一管理。
1:OpenLDAP服務端的搭建
2:PhpLDAPAdmin的搭建
3:OpenLDAP的打開日志資訊
4:OpenLDAP與migrationtools實作導入系統賬号的相關資訊
5:OpenLDAP用戶端的配置
6:OpenLDAP與SSH
7:OpenLDAP限制使用者登入系統
8:OpenLDAP強制使用者一登入系統更改密碼
9:OpenLDAP與系統賬号結合Samba
10:OpenLDAP的主從
11:OpenLDAP的雙主
系統環境資訊
作業系統:CentOS release 6.7
基礎的環境準備:
關閉防火牆:/etc/init.d/iptables stop && chkconfig iptables off
關閉NetworkManager:/etc/init.d/NetworkManager stop && chkconfig NetworkManager off
SeLinux設為disabled:getenforce 是否為Disabled,若不是,則修改:
1:臨時的生效 setenforce 0,再getenforce的時候為permissive
2:修改配置檔案,然後重新開機 vim /etc/sysconfig/selinux 把SELINUX=disabled
yum源倉庫的配置:
1)mkdir /yum
2)vim /etc/yum.repos.d/ll.repo
[local]
name = local
baseurl = file:///yum
gpgcheck = 0
enabled = 1
3)挂載 mount /mnt/hgfs/軟體/CentOS-6.7-x86_64-bin-DVD1to2/CentOS-6.7-x86_64-bin-DVD1.iso /yum -o loop
4)yum clean all 清除緩存
5)yum makecache 建立緩存
一:OpenLDAP伺服器的搭建
1)安裝OpenLDAP的相關
yum -y install openldap openldap-servers openldap-clients openldap-devel compat-openldap 其中compat-openldap這個包與主從有很大的關系
安裝完後,可以看到自動建立了ldap使用者:

2)OpenLDAP的相關配置檔案資訊
/etc/openldap/slapd.conf:OpenLDAP的主配置檔案,記錄根域資訊,管理者名稱,密碼,日志,權限等
/etc/openldap/slapd.d/*:這下面是/etc/openldap/slapd.conf配置資訊生成的檔案,每修改一次配置資訊,這裡的東西就要重新生成
/etc/openldap/schema/*:OpenLDAP的schema存放的地方
/var/lib/ldap/*:OpenLDAP的資料檔案
/usr/share/openldap-servers/slapd.conf.obsolete 模闆配置檔案
/usr/share/openldap-servers/DB_CONFIG.example 模闆資料庫配置檔案
OpenLDAP監聽的端口:
預設監聽端口:389(明文資料傳輸)
加密監聽端口:636(密文資料傳輸)
3)初始化OpenLDAP的配置
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf
4)修改配置檔案
首先,slappasswd生成密文密碼123456,拷貝這個到/etc/openldap/slapd.conf裡
5)重新生成配置檔案資訊檔案
先檢測/etc/openldap/slapd.conf是否有錯誤:slaptest -f /etc/openldap/slapd.conf
可以看到沒問題,然後重新生成配置檔案的配置資訊:
先删除最先的配置檔案生成的資訊:rm -rf /etc/openldap/slapd.d/*
重新生成:slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/
檢視是否生成的是自己修改的配置檔案資訊:cat /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}bdb.ldif
授權:chown -R ldap.ldap /etc/openldap/slapd.d/
重新開機:/etc/init.d/slapd restart
到這裡為止,OpenLDAP服務端基本上完成了,我們可以通過PhpLDAPAdmin來登入看一下,那先得安裝PhpLDAPAdmin
二:PhpLDAPAdmin的搭建
1)安裝EPEL倉庫,鏡像裡沒有PhpLDAPAdmin這個的安裝包,是以得安裝EPEL倉庫
rpm -ivh http://mirrors.ukfast.co.uk/sites/dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum clean all
yum makecache
2)安裝PhpLDAPAdmin
yum install -y phpldapadmin
3)修改phpldapadmin的配置檔案,通路控制權限vim /etc/httpd/conf.d/phpldapadmin.conf,允許誰通路
4)修改配置檔案:vim /etc/phpldapadmin/config.php
$servers->setValue('login','attr','dn'); 這一行的注釋去掉
//$servers->setValue('login','attr','uid'); 這一行注釋掉
5)重新開機httpd服務/etc/init.d/httpd restart
6)在浏覽器輸入OpenLDAP服務端的IP 10.0.0.138/ldapadmin
這是因為在第一步搭建OpenLDAP服務端的時候,并沒有把管理者的賬号資訊導入,編輯root.ldif,然後導入
dn: dc=lemon,dc=com
objectclass: dcObject
objectclass: organization
o: Yunzhi,Inc.
dc: lemon
dn: cn=Captain,dc=lemon,dc=com
objectclass: organizationalRole
cn: Captain
這裡得注意每一個屬性: 後必須有空格,但是值的後面不能有任何空格
然後導入:ldapadd -x -D "cn=Captain,dc=lemon,dc=com" -W -f root.ldif
到這裡,PhpLDAPAdmin搭建完了,接下來,咱們得把日志打開,這樣的話好排錯,嘿嘿嘿
三:OpenLDAP的打開日志資訊
1:現在配置檔案裡加上日志行 ,這裡的日志級别有很多種,-1的話會記錄很多日志資訊
vim /etc/openldap/slapd.conf 加上loglevel -1
這裡修改了配置檔案,所有得重新生成配置檔案的資訊
rm -rf /etc/openldap/slapd.d/*
slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/
chown -R ldap.ldap /etc/openldap/slapd.d/
2:在 vim /etc/rsyslog.conf加上
local4.* /var/log/slapd/slapd.log
然後重新開機/etc/init.d/rsyslog restart
3:建立日志檔案目錄,授權
mkdir /var/log/slapd
chmod 755 /var/log/slapd/
chown ldap.ldap /var/log/slapd/
4:重新開機slapd服務,/etc/init.d/slapd restart
5:就可以看到日志資訊了cat /var/log/slapd/slapd.log
四:OpenLDAP與migrationtools實作導入系統賬号的相關資訊
1:安裝migrationtools
yum -y install migrationtools
2:修改migrationtools的配置檔案,在/usr/share/migrationtools/這個目錄下有很多migrationtools的檔案
vim /usr/share/migrationtools/migrate_common.ph 修改以下的兩個地方
3:生成基礎的資料檔案,可以自己修改這個生成的base.ldif檔案,把不需要的去掉
/usr/share/migrationtools/migrate_base.pl > base.ldif
4:把base.ldif導入OpenLDAP
ldapadd -x -D "cn=Captain,dc=lemon,dc=com" -W -f base.ldif
5:把系統的使用者生成ldif檔案
cd /usr/share/migrationtools
./migrate_passwd.pl /etc/passwd passwd.ldif
./migrate_group.pl /etc/group group.ldif
可以看到生成的檔案,然後根據自己需要修改這兩個ldif檔案:
passwd.ldif隻留一個test1測試使用者:
在這裡就已經完成把系統的賬号屬性導入了OpenLDAP,然後就通過添加OpenLDAP使用者,來進行驗證,是以得先做好用戶端的設定
五:OpenLDAP用戶端的配置
1:停掉sssd服務 service sssd stop && chkconfig sssd off
2:安裝nslcd服務 yum install nss-pam-ldapd
3:修改vim /etc/nslcd.conf這個配置檔案
7:vim /etc/sysconfig/authconfig 確定标記的已打開為yes
USESHADOW=yes 啟用密碼驗證
USELDAPAUTH=yes 啟用OpenLDAP驗證
USELOCAUTHORIZE=yes 啟用本地驗證
USELDAP=yes 啟用LDAP認證協定
8:重新開機nslcd服務
/etc/init.d/nslcd restart
9:驗證,先通過OpenLDAP增加一個使用者,在test1的基礎上,複制一個test2的條目
可以看到已經成功的添加了test2的使用者,這是OpenLDAP添加的,在本地是沒有的,用cat /etc/passwd 看是沒有test2使用者的
測試:su - test2
重新開機 /etc/init.d/nslcd restart
在進行測試:就可以了
檢視系統使用者清單:
服務端查詢:ldapsearch -x -b "ou=People,dc=lemon,dc=com" |grep dn
用戶端查詢:ldapsearch -H ldap://10.0.0.138 -x -b "ou=People,dc=lemon,dc=com" |grep dn
用戶端的配置到這裡ok啦。有賬号肯定要能通過ssh登入系統
六:OpenLDAP與SSH
1:vim /etc/ssh/sshd_config
4:重新開機sshd
七:OpenLDAP限制使用者登入系統
在賬号中,不能讓每個使用者都能登入系統,是以要限制使用者登入
1:vim /etc/pam.d/sshd 在這裡加上pam_access.so子產品
八:OpenLDAP強制使用者一登入系統更改密碼
1:修改配置檔案
在前面打開注釋
moduleload ppolicy.la
modulepath /usr/lib/openldap
modulepath /usr/lib64/openldap
還要在database config前面加上這兩段
access to attrs=userPassword
by self write
by anonymous auth
by dn="cn=Captain,dc=lemon,dc=com" write
by * none
access to *
by * read
在檔案的末尾添加:
overlay ppolicy
ppolicy_default cn=Captain,ou=pwpolicies,dc=lemon,dc=com
2:重新生成配置檔案資料庫:
[root@lele openldap]# vim /etc/openldap/slapd.conf
[root@lele openldap]# rm -rf /etc/openldap/slapd.d/*
[root@lele openldap]# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
config file testing succeeded
[root@lele openldap]# chown -R ldap.ldap /etc/openldap/slapd.d/
[root@lele openldap]# /etc/init.d/slapd restart
Stopping slapd: [ OK ]
Starting slapd: [ OK ]
可以通過配置檔案的資料資訊看到ppolicy子產品已經加進來了
cat /etc/openldap/slapd.d/cn\=config/cn\=module\{0\}.ldif
3:編輯
cat 1.ldif
dn: ou=pwpolicies,dc=lemon,dc=com
objectClass: organizationalUnit
ou: pwpolicies
4:ldapadd -x -D "cn=Captain,dc=lemon,dc=com" -W -f 1.ldif
添加進去
5:添加cn=Captain,ou=pwpolicies,dc=lemon,dc=com這個的一些屬性值
[root@ll ~]# cat 2.ldif
dn: cn=Captain,ou=pwpolicies,dc=lemon,dc=com
cn: Captain
objectClass: pwdPolicy
objectClass: person
pwdAllowUserChange: TRUE
pwdAttribute: userPassword
pwdExpireWarning: 259200
pwdFailureCountInterval: 0
pwdGraceAuthNLimit: 5
pwdInHistory: 5
pwdLockout: TRUE
pwdLockoutDuration: 300
pwdMaxAge: 2592000
pwdMaxFailure: 5
pwdMinAge: 0
pwdMinLength: 8
pwdMustChange: TRUE
pwdSafeModify: TRUE
sn: dummy value
把屬性值添加進去
6:在vim /etc/pam_ldap.conf中的末尾添加:使得用戶端能識别服務端的密碼政策
pam_password md5
bind_policy soft
pam_lookup_policy yes
pam_password clear_remove_old
7:重新開機nslcd
8:測試
修改使用者的屬性,用test3做測試
[root@ll ~]# cat modify.ldif
dn: uid=test3,ou=people,dc=lemon,dc=com
changetype: modify
replace: pwdReset
pwdReset: TRUE
ldapmodify -x -D "cn=Captain,dc=le,dc=com" -W -f modify.ldif 導入
這裡可以啦
九:OpenLDAP與系統賬号結合Samba
預設的Samba伺服器支援本地系統使用者(smbpasswd添加後)通路Samba資源,不支援OpenLDAP伺服器賬号通路Samba共享資源,配置完後,OpenLDAP每新增一個使用者,就自動支援Samba,就可以用這個賬号直接通路Samba,不需要存在于本地使用者,不用smbpasswd使用者
1:安裝samba
yum -y install samba
2:把Samba.schema檔案拷貝到LDAP的schema目錄下,把原來的覆寫掉
cp /usr/share/doc/samba-3.6.23/LDAP/samba.schema /etc/openldap/schema/
3:修改配置檔案vim /etc/openldap/slapd.conf
在include的地方,加上Samba的schema
3:修改了配置檔案,就有重新生成配置檔案資料
rm -rf /etc/openldap/slapd.d/*
slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/
config file testing succeeded
chown -R ldap.ldap /etc/openldap/slapd.d/
/etc/init.d/slapd restart
4:修改Samba的配置檔案
添加:
security = user
passdb backend = ldapsam:ldap://10.0.0.138
ldap suffix = "dc=lemon,dc=com"
ldap group suffix = "cn=group"
ldap user suffix = "ou=people"
ldap admin dn = "cn=Captain,dc=lemon,dc=com"
ldap delete dn = no
pam password change = yes
ldap passwd sync = yes
ldap ssl = no
在最後的時候添加共享的檔案:
[public]
comment = Public Stuff
path = /tmp/lile
public = yes
writable = yes
printable = no
5:建立共享檔案夾,并且授權
mkdir /tmp/lile
chmod 777 /tmp/lile/
6:把OpenLDAP的密碼傳給Samba,smbpasswd -w 123456 這裡的密碼是OpenLDAP的管理者密碼
7:重新開機smb
/etc/init.d/smb restart
/etc/init.d/nmb restart
8: Samba開通之後,可以看到這裡的開關也打開了
9:測試
先把系統使用者test1用smbpasswd -a test1 加到Samba的使用者下,就可以看到:
test1使用者下多了Samba的特性,原來是沒有的
然後,就可以用windos去通路了,這裡有一個概念就是OpenLDAP添加了的使用者,不要再用smbpasswd去添加了,可以直接登入Samba
十:OpenLDAP的主從
1:做主從和雙主的時候,一定要确認安裝了 compat-openldap這個包
2:在主上的配置檔案 10.0.0.138:
備份原來的配置檔案:cp /etc/openldap/slapd.conf /etc/openldap/slapd.bak
先停掉服務 /etc/init.d/slapd stop
vim /etc/openldap/slapd.conf 修改配置檔案
添加 index entryCSN,entryUUID eq
在檔案的最後添加:
overlay syncprov 後端工作再overlay模式
syncprov-checkpoint 100 10 當滿足修改100個條目或者10分鐘的條件時主動以推的方式執行
syncprov-sessionlog 100 會話日志條目的最大數量
然後重新生成配置檔案的資料檔案:
rm -rf /etc/openldap/slapd.d/*
slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/
chown -R ldap.ldap /etc/openldap/slapd.conf
chown -R ldap.ldap /etc/openldap/slapd.d
/etc/init.d/slapd restart
3:導出主的資料檔案 ldapsearch -x -b 'dc=lemon,dc=com' > root.ldif,拷貝到從上scp scp root.ldif 10.0.0.140:~/
4:把主的配置檔案slapd.conf 拷貝到從10.0.0.140上 用scp /etc/openldap/slapd.conf 10.0.0.140:~/
5:從上從主上拷貝了配置檔案,
去掉:
overlay syncprov
syncprov-checkpoint 100 10
syncprov-sessionlog 100
然後再加上
syncrepl rid=003
provider=ldap://10.0.0.138:389/
type=refreshOnly
retry="60 10 600 +" 嘗試時間
interval=00:00:00:10 設定同步更新時間(日:時:分:秒)
searchbase="dc=lemon,dc=com"
scope=sub 比對根域所有條目
schemachecking=off 同步更新時是否開啟schema文法檢測
bindmethod=simple 同步驗證模式為簡單模式(即明文)
binddn="cn=Captain,dc=lemon,dc=com" 使用Captain使用者讀取目錄樹資訊
attrs="*,+" 同步所有屬性資訊
credentials=123456 管理者密碼
重新生成資料配置檔案
rm -rf /etc/openldap/slapd.d/*
slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/
chown -R ldap.ldap /etc/openldap/slapd.conf
chown -R ldap.ldap /etc/openldap/slapd.d
/etc/init.d/slapd restart
6:測試
在主的10.0.0.138上添加一個test7的使用者,在從上重新整理一下,是同步到的
十一:OpenLDAP的雙主
在主從的基礎上,修改配置,這是主的
serverID 2
overlay syncprov
syncrepl rid=001
provider=ldap://10.0.0.140
type=refreshAndPersist
searchbase="dc=lemon,dc=com"
schemachecking=simple
binddn="cn=Captain,dc=lemon,dc=com"
credentials=123456
retry="60 +"
mirrormode on
這是從的:
serverID 1
retry="60 10 600 +"
schemachecking=off
bindmethod=simple
測試:在兩台機上分别建立一個使用者,看是否在對方能重新整理到,主從與雙主都隻是備份的關系,若一台挂了,立即切換到另一台,則需做高可用和負載均衡
1.安裝和設定資料庫
在CentOS7下,預設安裝的資料庫為MariaDB,屬于MySQL資料庫的一個分支,是以我還是使用了MariaDB。安裝指令為:
[root@localhost ~]# yum install mariadb-server -y
安裝時間不長,安裝完成後的樣子如下:
然後啟動資料庫服務:
[root@localhost ~]# systemctl start mariadb
[root@localhost ~]# systemctl enable mariadb //設定開機自啟
對資料庫進行一些基本設定:
[root@localhost ~]# mysql_secure_installation
初始情況下沒有密碼,直接回車,它會自動提示你重新設定密碼,這時就可以設定自己的資料庫密碼了。設定完密碼之後是一些其他的基本設定,都是直接'y'或者'n'就能解決的,對照着它給出的提示就可以完成設定。然後設定字元集,字元集的設定在/etc下:
[root@localhost ~]# vim /etc/my.cnf
#在[mysqld]标簽下添加如下内容:
default-storage-engine = innodb
innodb_file_per_table
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8
[root@localhost ~]# vim /etc/my.cnf.d/client.cnf
#在[client]标簽下添加如下内容:
default-character-set=utf8
[root@localhost ~]# vim /etc/my.cnf.d/mysql-clients.cnf
#在[mysql]标簽下添加如下内容:
default-character-set=utf8
接着重新開機服務:
[root@localhost ~]# systemctl restart mariadb
此時就大概完成了資料庫的安裝和設定。因為要将該資料庫做完LDAP的後端資料庫,是以先建立一個使用者ldap和資料庫ldap作為連接配接LDAP的資料庫:
[root@localhost ~]# mysql -uroot -p
添加ldap使用者,設定密碼為ldap,添權重限給ldap使用者并建立資料庫ldap:
MariaDB [(none)]> CREATE USER 'ldap'@'%' IDENTIFIED BY 'ldap';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON ldap.* TO 'ldap'@'%';
MariaDB [(none)]> CREATE USER 'ldap'@'localhost' IDENTIFIED BY 'ldap';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON ldap.* TO 'ldap'@'localhost';
MariaDB [(none)]> show databases;
然後退出資料庫,進行第二步。
2.安裝ODBC并配置ldap資料庫
直接yum安裝:
[root@localhost ~]# yum install unixODBC mysql-connector-odbc
建立連接配接配置檔案odbc.ini:
[root@localhost ~]# vim /etc/odbc.ini
#添加如下内容
[ldap]
Description = LdapToMysql
Driver = MySQL
Database = ldap
Server = 127.0.0.1
User = ldap
Password = ldap
Port = 3306
驗證是否連接配接成功:
[root@localhost ~]# isql -v ldap
進入如下界面:
輸入檢視資料庫的指令:
SQL> show databases;
連接配接成功!
3.下載下傳安裝并配置OpenLDAP
安裝LDAP到/opt目錄下:
[root@localhost ~]# yum install wget make gcc mysql-devel unixODBC-devel groff -y
[root@localhost ~]# cd /opt
[root@localhost opt]# wget ftp://mirror.switch.ch/mirror/OpenLDAP/openldap-release/openldap-2.4.43.tgz
[root@localhost opt]# tar zxvf openldap-*.tgz
[root@localhost opt]# rm -rf openldap-*.tgz
[root@localhost opt]# mv openldap-* openldap
[root@localhost opt]# cd /opt/openldap
[root@localhost openldap]# ./configure --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --localstatedir=/var --mandir=/usr/share/man --infodir=/usr/share/info --enable-sql --disable-bdb --disable-ndb --disable-hdb
[root@localhost openldap]# make depend
[root@localhost openldap]# make
[root@localhost openldap]# make install
此時安裝已經完成,接着配置LDAP,首先生成自己的LDAP密碼:
[root@localhost openldap]# slappasswd
輸入密碼之後它會傳回給一個加密的密碼,類似于“{SSHA}XDEtT6s3MTzrSbHeJl7OlRoqk0w1By1X”。然後打開LDAP配置檔案,該檔案在/etc/openldap目錄下:
[root@localhost openldap]# vim /etc/openldap/slapd.conf
#在第5行下面添加如下内容
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
#修改第55行内容
database sql
#修改第56、57行的dc值(這裡最好設定為example,因為後面要用ldap的資料庫資料,如果這裡使用别的值,那麼對應的要把資料庫中的所有dn都改掉)
suffix "dc=example,dc=com"
rootdn "cn=Manager,dc=example,dc=com"
#修改第61行rootpw的值,就是之前擷取到的加密密碼
rootpw {SSHA}XDEtT6s3MTzrSbHeJl7OlRoqk0w1By1X
#注釋掉第65、67行的内容
#directory /var/openldap-data
#index objectClass eq
#在第61行rootpw下面添加如下内容
rootpw {SSHA}XDEtT6s3MTzrSbHeJl7OlRoqk0w1By1X
dbname ldap
dbuser ldap
dbpasswd ldap
has_ldapinfo_dn_ru no
subtree_cond "ldap_entries.dn LIKE CONCAT('%',?)"
關于dc(domainComponent)的問題,在https://www.bbsmax.com/A/WpdKKPaodV/這篇文章裡面講解的很好,我的安裝配置也是從這裡學的。
到此,OpenLDAP的安裝與配置完成,但此時還不能運作LDAP,因為資料庫中沒有對應的表結構,LDAP雖然可以使用除BDB之外的資料庫,但必須要使用它定義的表結構。對應的表結構在/opt/openldap/servers/slapd/back-sql/rdbms_depend/目錄下,該目錄下有多種資料庫的表結構,包括MySQL、Oracle和PGSQL等,進入mysql目錄下,有如下幾個sql檔案:
backsql_create.sql是基礎的表結構,不論其它表有沒有,這幾個表必須有;testdb_create.sql是測試的表結構,包含幾個像person表之類的表結構;testdb_data.sql是測試表中的資料;testdb_metadata.sql是基礎表中的資料。進入資料庫中執行這幾個sql檔案:
[root@localhost ~]# mysql -uldap -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 5.5.52-MariaDB MariaDB Server
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> use ldap
MariaDB [ldap]> source /opt/openldap/servers/slapd/back-sql/rdbms_depend/mysql/backsql_create.sql
MariaDB [ldap]> source /opt/openldap/servers/slapd/back-sql/rdbms_depend/mysql/testdb_create.sql
MariaDB [ldap]> source /opt/openldap/servers/slapd/back-sql/rdbms_depend/mysql/testdb_data.sql
MariaDB [ldap]> source /opt/openldap/servers/slapd/back-sql/rdbms_depend/mysql/testdb_metadata.sql
此時運作LDAP:
[root@localhost ~]# /opt/openldap/servers/slapd/slapd -d 5 -h 'ldap:/// ldapi:///' -f /etc/openldap/slapd.conf &
4.安裝和配置LDAP管理工具PHPldapadmin
首先安裝Apache和PHP:
[root@localhost ~]# yum -y install httpd php php-ldap php-gd php-mbstring php-pear php-bcmath php-xml
然後安裝phpldapadmin:
[root@localhost ~]# yum -y install epel-release
[root@localhost ~]# yum --enablerepo=epel -y install phpldapadmin
接着修改配置檔案:
[root@localhost ~]# vim /etc/phpldapadmin/config.php
#397行取消注釋,398行添加注釋
$servers->setValue('login','attr','dn');
// $servers->setValue('login','attr','uid');
[root@localhost ~]# vim /etc/httpd/conf.d/phpldapadmin.conf
// 修改配置
<IfModule mod_authz_core.c>
# Apache 2.4
Require local
#添加一行内容,指定可通路的ip段(雖然我也不知道為什麼,但不填不能運作這個管理工具,我就直接寫的本地ip)
Require ip 192.168.85.132
</IfModule>
設定開機自啟并啟動Apache:
[root@localhost ~]# systemctl enable httpd
[root@localhost ~]# systemctl start httpd
此時phpldapadmin可以通路但可能不能登入,這個和系統SELinux有關,如果SELinux關閉的話登入時候會有一個錯誤:
error Unable to connect to LDAP server Cloud-Lab.Com
error: Can't contact LDAP server (-1) for user
error Failed to Authenticate to server
Invalid Username or Password.
打開這個配置:
[root@localhost ~]# getsebool httpd_can_connect_ldap
httpd_can_connect_ldap --> off
[root@localhost ~]# setsebool -P httpd_can_connect_ldap on
[root@localhost ~]# getsebool httpd_can_connect_ldap
httpd_can_connect_ldap --> on
浏覽器通路phpldapadmin:
http://(localhost或伺服器位址)/phpldapadmin/
登入phpldapadmin,使用者名密碼可以在資料庫ldap的表persons中查找。