1. 程式人生 > >OpenLDAP伺服器搭建以及整合SVN、Linux登陸等應用實現

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伺服器整合驗證

說明:

  1. svn的訪問是以svn://協議訪問的,一般都是用http協議訪問,所以要使用apache的httpd伺服器
  2. apache已經添加了對ldap伺服器的支援,所以svn的認證過程是使用apache代理OpenLDAP來完成的
  3. svn的許可權控制還是要放在其svn服務上(authz檔案)

操作:
以下為環境安裝,如果你的svn伺服器和ldap伺服器都已經安裝好了可以直接從第三步開始

1.安裝httpd
因為我們在安裝PhpLdapAdmin的時候已經安裝了httpd,所以此項可以跳過

2.安裝Subversion服務

yum -y in