久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

OpenLDAP如何安裝配置

145次閱讀
沒有評論

共計 8081 個字符,預計需要花費 21 分鐘才能閱讀完成。

丸趣 TV 小編給大家分享一下 OpenLDAP 如何安裝配置,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

一、OpenLDAP 簡介

  OpenLDAP 是輕型目錄訪問協議(Lightweight Directory Access Protocol,  LDAP)的自由和開源實現,在其 OpenLDAP 許可證下發行,并已經被包含在眾多流行的 Linux 發行版中。

  使用輕量級目錄訪問協議(LDAP)構建集中的身份驗證系統可以減少管理成本,增強安全性,避免數據復制的問題,并提高數據的一致性。

  通常,在實際工作環境中,都會通過 LDAP 來構建一個統一的賬號管理、身份驗證平臺,實現 SSO 單點登錄機制。

二、寫在前面

  LDAP 這個東西,是公司準備實現統一用戶身份認證所了解到的,之前完全沒有概念,網上搜索了一些基礎,理論知識,簡直蒙圈了,實在是太抽象了。后來一想,理論的知識先大概有個了解,先動手讓 ldap 跑起來再說其他,在動手做的時候,如果遇到問題在回頭過去查閱資料,說不定慢慢就會理解了。

  第一次搭建 OpenLDAP 的時候,查閱了很多論壇、博客的帖子,發現好多都是講的不夠完善,或者是點到即止,在安裝和配置遇到問題的時候,總要浪費很大一部分時間來游走于各大搜索引擎去尋根問藥,相當痛苦,下面就是結合網友以及自己嘗試摸索的過程,總結成文,希望能夠幫助到有需要的朋友。

配置環境:

服務器操作系統:CentOS 6.5 x86_64 ,  RHEL/Suse 應該都類似

OpenLDAP 版本:OpenLDAP 2.4

其實如果不是對 LDAP 各種參數要求都十分嚴格的情況下,比較建議采用 yum 的方式安裝。因為相關依賴環境,功能都十分全面,對于初學者,強烈建議第一次使用 yum 來安裝。

準備環境:

確保 SELinux 關閉:

# getenforce
1、臨時關閉
# setenforce 0
2、永久關閉
# vi /etc/selinux/config
將 SELINUX=enforcing  改為  SELINUX=disabled
重啟機器即可 

設定 iptables 防火墻規則:

# vim /etc/sysconfig/iptables
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 389 -j ACCEPT -s 192.168.1.0/16
-A INPUT -m state --state NEW -m tcp -p tcp --dport 636 -j ACCEPT -s 192.168.1.0/16
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
重新加載后如下: 
# iptables -L
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:http
ACCEPT tcp -- 192.168.1.0/16 anywhere state NEW tcp dpt:ldap
ACCEPT tcp -- 192.168.1.0/16 anywhere state NEW tcp dpt:ldaps

同步系統時間:

# ntpdate time.nist.gov

三、安裝 OpenLDAP 服務

1、yum 安裝所需軟件

# yum install -y openldap-*
# yum install -y compat-openldap #  這個包和主從配置有很大關系 

2、安裝完成后,準備配置文件

# cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf

OpenLDAP 相關配置文件:

/etc/openldap/slapd.conf  主配置文件,管理員 dn,密碼,日志配置,權限等設置

3、創建 LDAP 管理員密碼

LDAP 可以支持明文密碼,但是我們強烈建議使用加密密碼。通過 slappasswd 命令創建加密密碼,返回一串密文,先復制保存一下,下一步需要在 LDAP 配置文件中使用。

ps. 這里我輸入的密碼是:ldap

# slappasswd 
New password: 
Re-enter new password: 
{SSHA}5EkFHScR0hN0r3oRhd0aP4tyJ0ByopCd

4、進入 /etc/openldap 目錄下,編輯 slapd.conf 配置文件。

主要修改的地兒,suffix, rootdn, rootpw,rootdn 其實就是 openldap 的管理員。

優化:

checkpoint 2048  10  # 設置把內存中的數據寫回數據文件的操作,此處的設置表示每達到 2048K 或者 10 分鐘執行一次 checkpoint, 即寫入數據文件的操作。

cachesize 1000 # 設置 LDAP 可以緩存的記錄數  

# cp /etc/openldap/slapd.conf /etc/openldap/slapd.conf.ori
# vi /etc/openldap/slapd.conf
# enable server status monitoring (cn=monitor)
database monitor
access to *
 by dn.exact= gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth  read
 by dn.exact= cn=Manager,dc=test,dc=com  read
 by * none

####################################################################### # database definitions #######################################################################
rootdn  cn=Manager,dc=test,dc=com # Cleartext passwords, especially for the rootdn, should # be avoided. See slappasswd(8) and slapd.conf(5) for details. # Use of strong authentication encouraged. # rootpw secret # rootpw {crypt}ijFYNcSNctBYg rootpw {SSHA}5EkFHScR0hN0r3oRhd0aP4tyJ0ByopCd ....... 保存退出。

當然,也可以如下設置明文密碼:

5、BerkeleyDB 配置。拷貝 DB_CONFIG 文件到指定目錄,否則后續會報錯:warning – no DB_CONFIG file found in directory /var/lib/ldap

PS: OpenLDAP 默認使用的是伯克利數據庫作為后臺數據存儲介質,在 OpenLDAP-Servers 包中已經包含了,直接把配置文件復制到相關目錄即可。

# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

6、刪除 /etc/openldap/slapd.d 目錄下所有的文件,否則后續在使用 ldapadd 命令的時候會報錯

PS: 默認情況下,/etc/openldap/slapd.d 目錄下有一些默認的配置文件,必須刪除,然后重新建議,這一步很重要

這是因為 2.4 和 2.3 配置文件兼容性問題導致,參考:http://www.openldap.org/doc/admin24/appendix-common-errors.html

# rm -rf /etc/openldap/slapd.d/*

7、配置相應目錄權限

# chown -R ldap:ldap /var/lib/ldap/
# chown -R ldap:ldap /etc/openldap/

8、啟動 LDAP 的 slapd 服務,并設置開機啟動

# chkconfig slapd on
# service slapd start

9、重新生成   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

10、重新啟動 LDAP 的 slapd 服務

# service slapd restart

使用 netstat -tulpn 查看服務是否正常啟動

11、開啟 SSL

# vim /etc/sysconfig/ldap
SLAPD_LDAPS=yes

我們可以看到,OpenLDAP 監聽端口:

默認監聽端口:389(明文數據傳輸)

加密監聽端口:636(加密數據傳輸)

四、給 OpenLDAP 添加日志功能,添加如下內容

1、編輯 /etc/openldap/slapd.conf

# vim /etc/openldap/slapd.conf
loglevel 296

2、編輯 /etc/rsyslog.conf

# vim /etc/rsyslog.conf
local4.* /var/log/ldap.log

3、重啟服務

# service rsyslog restart
# service slapd restart

五、遷移用戶數據到 OpenLDAP

系統用戶通常保存在 /etc/passwd, /etc/shadow 文件內,所以我們需要遷移用戶數據到 openldap 數據庫。但是 LDAP 只能識別特定格式的文件,即后綴為 ldif 的文件(也是文本文件),所以不能直接使用 /etc/passwd, /etc/shadow 直接導入。最簡單的方法是使用 padl 提供的遷移工具包,是一系列 perl 編寫的腳本,migrationtools 工具,之前的 openldap 包中已經包含了這些腳本,但是在 redhat6.5 中已經沒有了,要單獨下載。

1、安裝配置 migrationtools

# yum install -y migrationtools

2、切換到 migrationtool 目錄下,進行基本配置

# cd /usr/share/migrationtools/
編輯 migrate_common.ph
# vi migrate_common.ph
# Default DNS domain
$DEFAULT_MAIL_DOMAIN =  test.com 

....... 保存退出。:-)

3、生成 ldif 文件

a、在目錄 MigrationTools 里面使用 migrate_base.pl 腳本生成基本的數據結構

# ./migrate_base.pl   /tmp/base.ldif
導入數據:## -w  指定你在 slapd.conf 中設置的管理員密碼,也可以使用  -W,交互式輸入密碼
## -f  指定數據文件的路徑
##  我們之前設定的密碼: ldap
# ldapadd -x -D  cn=Manager,dc=test,dc=com  -w ldap -f /tmp/base.ldif
查詢已經導入數據庫的數據:# ldapsearch -h -H ldap://192.168.1.35 -b  dc=test,dc=com

b、在目錄 MigrationTools 里面使用 migrate_passwd.pl 和 migrate_group.pl 腳本將 /etc/passwd, /etc/group 文件中的用戶轉化為 ldap 可以識別的數據結構 ldif 格式的文件

# ./migrate_passwd.pl /etc/passwd /tmp/passwd.ldif
# ./migrate_group.pl /etc/group /tmp/group.ldif
導入數據:# ldapadd -x -D  cn=Manager,dc=test,dc=com  -w ldap -f /tmp/passwd.ldif
# ldapadd -x -D  cn=Manager,dc=test,dc=com  -w ldap -f /tmp/group.ldif

c、在實際生產環境中,并不會把 /etc/passwd 和 /etc/group 中的用戶全部用 ldap 管理起來,我們只需要讓實際用戶被 ldap 管理即可,所以生產中按照如下規則操作:

刪除 ldap 數據庫中的所有數據:

# ldapdelete -x -D  cn=Manager,dc=test,dc=com  -w ldap -r  dc=test,dc=com

建立測試用戶 ldapuser01, ldapuser02,把這兩個用戶導入 ldap 數據庫中

# useradd ldapuser01
# useradd ldapuser02
# passwd ldapuser01
# passwd ldapuser02
我們只把需要的用戶導入  ldap  數據庫中
# grep ldap* /etc/passwd   /tmp/passwd
# grep ldap* /etc/group   /tmp/group
# ./migrate_base.pl   /tmp/base.ldif 
# ./migrate_passwd.pl /tmp/passwd   /tmp/passwd.ldif
# ./migrate_group.pl /tmp/group   /tmp/group.ldif
# ldapadd -x -D  cn=Manager,dc=test,dc=com  -w ldap -f /tmp/base.ldif
# ldapadd -x -D  cn=Manager,dc=test,dc=com  -w ldap -f /tmp/passwd.ldif
# ldapadd -x -D  cn=Manager,dc=test,dc=com  -w ldap -f /tmp/group.ldif

至此,我們就把用戶導入到 OpenLDAP 數據庫中了。

六、安裝 phpLDAPadmin

安裝 EPEL 倉庫

# rpm -ivh http://mirrors.ukfast.co.uk/sites/dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rp

安裝 phpLDAPadmin

# yum install -y phpldapadmin

修改 phpldapadmin 配置文件(該文件會自動創建),添加訪問權限

# vim /etc/httpd/conf.d/phpldapadmin.conf
在這行后面添加
Allow from ::1
Allow from 192.168.1 // 這里修改為你自己的 ip 段 

修改 php 配置文件,禁止自動登錄和 php 登錄配置

# vim /etc/phpldapadmin/config.php
#(line 398)
//$servers- setValue( login , attr , uid 
#(line 530)
$servers- newServer( ldap_pla 
$servers- setValue( server , name , LDAP Server 
$servers- setValue( server , host , 127.0.0.1 
$servers- setValue(server , port ,389);
$servers- setValue( server , base ,array( dc=test,dc=com 
$servers- setValue( login , auth_type , session 
$servers- setValue( login , bind_id , dc=test,dc=com 
$servers- setValue( login , bind_pass , ldap 
$servers- setValue(server , tls ,false);

配置完成后,啟動 apache

# chkconfig httpd on
# service httpd start

然后通過瀏覽器進行訪問:http://192.168.1.35/ldapadmin/ (這個 ip 換成你自己的實際 ip)

這里需要注意的是:Login DN:  一定要是完整的 DN,而不是 RDN。

密碼就是我們前面 slappasswd 命令設置的密碼,也就是 ldap 管理員 rootdn(Manager)的密碼,然后就登錄成功了。

七、安裝 LAM(和 phpLDAPadmin 功能相似的 GUI 工具,可選)

下載 ldap-account-manager 包,我這里下載的是較老的版本 4.6,(最新版應該 6.0 了 )。

 如果沒有 lamp 環境
# yum install -y httpd php php-ldap php-gd

# unzip ldap-account-manager-4.6.RC1.zip # mv ldap-account-manager-4.6.RC1 /var/www/html/lam # chown -R apache:apache /var/www/html/lam 順便編輯之前的  /etc/phpldapadmin/conf.php  中增加一行 # vim /etc/httpd/conf.d/phpldapadmin.conf Alias /lam /var/www/html/lam

配置

# cd /var/www/html/lam/config
# cp config.cfg_sample config.cfg
# cp lam.conf_sample lam.conf
# vim lam.conf
serverURL: ldap://192.168.1.35:389
admins: cn=Manager,dc=test,dc=com
treesuffix: dc=test,dc=org
其他  dc=my-domain  全部更換為: dc=yourdomain

重啟 httpd 服務

# service httpd restart

然后通過瀏覽器訪問即可,http://192.168.1.35/lam,更改為你自己的 ip

然后通過 Manager 賬號以及密碼就可以登錄成功了。

以上是“OpenLDAP 如何安裝配置”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-19發表,共計8081字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 汉川市| 怀化市| 达尔| 陕西省| 双江| 封丘县| 南开区| 永胜县| 富阳市| 南部县| 昌江| 陈巴尔虎旗| 神池县| 会昌县| 堆龙德庆县| 韶山市| 长丰县| 锦州市| 色达县| 社旗县| 广灵县| 尖扎县| 霞浦县| 铁岭县| 宁海县| 曲靖市| 湘阴县| 高安市| 钦州市| 荥经县| 四川省| 桑日县| 上思县| 海安县| 渝中区| 汝南县| 千阳县| 永靖县| 固阳县| 樟树市| 博罗县|