OpenLDAP伺服器搭建以及整合SVN、Linux登陸等應用實現
OpenLDAP伺服器搭建全套
目錄:
- 一、製作iso安裝源
- 二、安裝前的準備操作
- 三、安裝OpenLDAP伺服器
- 四、安裝PhpLDAPAdmin來登陸OpenLDAP
- 五、開啟OpenLDAP的日誌
- 六、主從伺服器搭建
- 七、SVN與LDAP伺服器整合驗證
- 八、Linux登陸整合LDAP伺服器
安裝環境介紹:
CentOS 6.9(其實都要不多,也就CentOS7和CentOS6某些指令不一樣而已)
安裝物件準備:
安裝源DVD檔案:http://mirrors.163.com/centos/6.9/isos/x86_64/
下載下來這兩個,就可以開始了
一、製作iso安裝源
下載了CentOS6.9的DVD,它的DVD檔案是兩個,所以就要把這兩個檔案合併成一個iso來使用。
把這兩個檔案放到系統中,假設位置分別為/home/CentOS-DVD1.iso和/home/CentOS-DVD2.iso
1.建立相應操作資料夾
mkdir -p /mnt/dvd1 /mnt/dvd2 /mnt/iso
2.掛在這兩個iso檔案
mount mount -o loop /home/CentOS-DVD1.iso /mnt/dvd1
mount mount -o loop /home/CentOS-DVD2.iso /mnt/dvd2
3.複製dvd1的所有內容到/mnt/iso下
cp -r /mnt/dvd1/* /mnt/iso/
4.複製dvd2下Packages目錄下的所有的rpm包到/mnt/iso/Packages下
cp -r /mnt/dvd2/Packages/*.rpm /mnt/iso/Packages/
5.合併TRANS.TBL檔案
cat /mnt/dvd[12]/Packages/TRANS.TBL|sort > /mnt/iso/Packages/TRANS.TBL
6.備份yum配置檔案
cd /etc/yum.repos.d
rename .repo .repo.bak *.repo
7.複製一個新的配置檔案
cp CentOS-Media.repo.bak CentOS-Media.repo
8.編輯這個CentOS-Media.repo修改中間的三項
vi CentOS-Media.repo
[c6-media]
name=CentOS-\$releasever - Media
baseurl=file:///mnt/iso
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
9.生效yum配置
yum clean all yum upgrade yum makecache
iso製作完成
二、安裝前的準備操作
1.關閉防火牆
/etc/init.d/iptables stop && chkconfig iptables off
2.關閉NetworkManager(非圖形化介面的最小安裝系統可以忽略)
/etc/init.d/NetworkManager stop && chkconfig NetworkManager off
3.SeLinux設為disabled
使用getenforce
命令檢視是否為Disabled,若不是,則修改。
執行命令setenforce 0
,再getenforce
的時候為permissive
修改配置檔案:vi /etc/sysconfig/selinux
把 SELINUX=disabled 儲存
4.重啟電腦
shutdown -r now
三、安裝OpenLDAP伺服器
1.執行安裝
yum -y install openldap openldap-servers openldap-clients openldap-devel compat-openldap
安裝完成後可以使用tail -n 1 /etc/passwd
結果:
ldap:x:55:55:LDAP User:/var/lib/ldap:/sbin/nologin
還可以通過rpm -qa|grep openldap
看到安裝了5個軟體包
2.複製配置檔案
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
3.生成密碼
slappasswd >> /etc/openldap/slapd.conf
然後讓你輸入兩次密碼,密碼你來定 這條命令是將輸出結果輸入到slapd.conf檔案尾部
4.修改slapd.conf檔案內容
vi /etc/openldap/slapd.conf
1) 檔案尾部則出現"{SSHA}sdjajdsdaskdjaxxxxx"一串密文密碼 在非編輯狀態:
游標放到密文密碼這一行按yy
使用:set nu
來顯示行號
去大約在123行附近,準確的說是
# rootpw secret
這一行後面按p
則貼上到這一行,前面新增"rootpw"
注意rootpw必須要頂格,roowpw與密文密碼之間大約有三個TAB鍵,密文跟secret的橫向位置相同,最終達到的效果是這樣的:
# rootpw secret
rootpw {SSHA}sdjajdsdaskdjaxxxxx
不要忘記刪除最後一行的密碼,shift+g到最後一行,dd刪除。
2)修改
- 107行(by dn.exact="cn=x1,dc=x2,dc=x3" read)
- 115行(suffix "dc=x2,dc=x3")
- 117行(rootdn "cn=x1,dc=x2,dc=x3")
三處的cn=x1,dc=x2,dc=x3為你想使用的名字
x1、x2、x3為你想取得名字
5.重新生成配置檔案資訊檔案
1)檢測剛剛修改的slapd.conf是否有錯誤
slaptest -f /etc/openldap/slapd.conf
會報三行錯誤,是因為沒有重新生成配置檔案並啟動slapd
先啟動slapd:
/etc/init.d/slapd restart
又報錯了,是因為沒有授權:
chown -R ldap.ldap /var/lib/ldap/
再啟動slapd:
/etc/init.d/slapd restart
啟動成功了再回來檢測配置檔案是否錯誤
slaptest -f /etc/openldap/slapd.conf
表示配置檔案沒有問題
2)生成配置檔案資訊檔案
先刪除原來的內容:
rm -rf /etc/openldap/slapd.d/*
slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/
成功後可以檢視/etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}bdb.ldif
這個檔案, 這個檔案中olcSuffix和olcRootDN項應該有你親切的x1、x2、x3
3)重啟服務(先授權再重啟)
chown -R ldap.ldap /etc/openldap/slapd.d/
/etc/init.d/slapd restart
出現兩個OK說明成功了
至此,OpenLDAP服務基本配置完成
四、安裝PhpLDAPAdmin來登陸OpenLDAP
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 -y install phpldapadmin
3.修改phpldapadmin的配置檔案,訪問控制權限,配置允許誰訪問
vi /etc/httpd/conf.d/phpldapadmin.conf
Allow from xx.xx.xx.xx
寫上個你的IP,後期使用這臺機器來訪問 save
如果允許所有人訪問,那就去掉“Deny from all”這行
4.修改配置檔案:
vi /etc/phpldapadmin/config.php
開啟397行"$servers->setValue('login','attr','dn')"的註釋
關閉下一行398行"$servers->setValue('login','attr','uid')"的註釋
5.重啟httpd服務
/etc/init.d/httpd restart
6.在你新增訪問許可權的那臺機子上輸入http://xx.xx.xx.xx/ldapadmin/ 應該可以看到登陸介面了,使用"cn=x1,dc=x2,dc=x3"作為使用者名稱,之前你自己定的密碼作為密碼登入, 雖然能登陸成功,但是還是有跟下圖是不一樣的,還是需要做點配置
7.匯入管理員賬號資訊隨便找個地方新建一個檔案,檔名就叫root.ldif
下面是檔案內容,每個屬性的空格與值之間有一個空格,其中換成你搭建OpenLDAP伺服器的時候的那個名字
dn: dc=
x2
,dc=x3
objectclass: dcObject
objectclass: organization
o: x2
dc:x2
dn: cn=
x1
,dc=x2
,dc=x3
objectclass: organizationalRole
cn:x1
ldapadd -x -D "cn=x1,dc=x2,dc=x3" -W -f root.ldif
輸入密碼,看到兩條adding new ....則成功
你可能碰到這個問題:
解決:檢查【root.ldif】檔案每行最後有沒有空格,如果有就刪掉就行了
再去登陸,則出現下圖登陸成功的樣子
至此PhpLDAPAdmin搭建完成
五、開啟OpenLDAP的日誌
1.修改配置檔案
vi /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
在大約61行下面加上
local7.* /var/log/boot.log
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.重啟OpenLDAP服務
/etc/init.d/slapd restart
就可以在那個日誌檔案中看到日誌了
六、主從伺服器搭建
1.在主伺服器上的操作:
1)複製一份配置檔案:
cp /etc/openldap/slapd.conf /etc/openldap/slapd.bak
2)停掉服務:
/etc/init.d/slapd stop
3)修改配置檔案
vi /etc/openldap/slapd.conf
將135行後面新增,注意對齊
index nisMapName,nisMapEntry eq,pres,sub
index entryCSN,entryUUID eq
將57行(# moduleload symcprov.la)註釋去掉
將34(# modulepath /usr/lib/openldap)、35(# modulepath /usr/lib64/openldap)行註釋去掉
在檔案末尾新增,後面的漢語解析不要加上
overlay syncprov 後端工作再overlay模式
syncprov-checkpoint 100 10 當滿足修改100個條目或者10分鐘的條件時主動以推的方式執行
syncprov-sessionlog 100 會話日誌條目的最大數量
4)重新生成配置檔案資訊檔案
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
5)拷貝一份配置檔案到從伺服器上
scp /etc/openldap/slapd.conf [email protected][ip]:/etc/openldap/slapd.conf
輸上密碼就可以了,最好先刪除掉從伺服器上的那個配置檔案
2.在從伺服器上操作
1)去掉配置檔案內容:
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 管理員密碼
2)重新生成配置檔案資訊檔案
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
主從伺服器配置完成
七、SVN與LDAP伺服器整合驗證
說明:
- svn的訪問是以svn://協議訪問的,一般都是用http協議訪問,所以要使用apache的httpd伺服器
- apache已經添加了對ldap伺服器的支援,所以svn的認證過程是使用apache代理OpenLDAP來完成的
- svn的許可權控制還是要放在其svn服務上(authz檔案)
操作:
以下為環境安裝,如果你的svn伺服器和ldap伺服器都已經安裝好了可以直接從第三步開始
1.安裝httpd
因為我們在安裝PhpLdapAdmin的時候已經安裝了httpd,所以此項可以跳過
2.安裝Subversion服務
yum -y in