一、安裝步驟
1:配置yum源
掛著盤鏡像時用到: 這里不做解釋;(yum clean all && yum makecache)
2:安裝OpenLDAP組件
1)安裝OpenLDAP組件命令如下:
[root@gitea ~]# yum install openldap openldap-servers openldap-clients openldap-devel compat-openldap -y
compat-openldap-2.3.43-2.el6.x86_64
openldap-clients-2.4.40-16.el6.x86_64
openldap-2.4.40-16.el6.x86_64
openldap-devel-2.4.40-16.el6.x86_64
openldap-servers-2.4.40-16.el6.x86_64
2)初始化OpenLDAP配置
[root@gitea ~]# cp /usr/share/openldap-servers/DB_CONFIG.example? /var/lib/ldap/DB_CONFIG
[root@gitea ~]# cp /usr/share/openldap-servers/slapd.conf.obsolete? /etc/openldap/slapd.conf
[root@gitea ~]# chown -R ldap.ldap /etc/openldap/
[root@gitea ~]# chown -R ldap.ldap /var/lib/ldap
3)啟動LDAP進程slapd(調試程序)
[root@gitea ~]# service slapd restart
Stopping slapd:??????????????????????????????????????????? [FAILED]
Starting slapd:??????????????????????????????????????????? [? OK? ]
4) 查看OpenLDAP默認監督
[root@gitea ~]# netstat -ntplu|grep -i :389
tcp??????? 0????? 0 0.0.0.0:389???????????????? 0.0.0.0:*?????????????????? LISTEN????? 28137/slapd
tcp??????? 0????? 0 :::389????????????????????? :::*??????????????????????? LISTEN????? 28137/slapd
5) 查看OpenLDAP進程狀態
[root@gitea ~]# ps aux|grep slapd |grep -v grep
ldap???? 28137? 0.0? 1.5 536828 62924 ???????? Ssl? 11:33?? 0:00 /usr/sbin/slapd -h? ldap:/// ldapi:/// -u ldap
二、OpenLDAP配置
1.配置文件關鍵路徑:
/etc/openldap/slapd.conf(OpenLDAP住配置文件、記錄根域名名稱、管理員名稱、密碼、日志、權限等相關信息)
/var/lib/ldap/* (OpenLDAP? 數據文件存儲位置,可以根據需求進行調整)
/usr/share/openldap-servers/slapd.conf.obsolete (模板配置文件)
/usr/share/openldap-servers/DB_CONFIG.example (模板數據配置文件schema路徑)
/etc/openldap/schema/* (OpenLDAP schema規范存放位置)
OpenLDAP監聽的端口有以下兩個.
默認監聽端口:389 (明文數據傳輸)
加密監聽端口:636 (密文數據傳輸)
2.slapd.conf配置文件
OpendLDAP 主配置文件為/etc/openldap/slapd.conf.此文件默認不存在,需要負責安裝OpenLDAP軟件包安裝所產生的配置文件模板并重命名為slapd.conf文件;
1)獲取openldap-servers軟件包生產的文件
[root@gitea ~]# rpm -ql openldap-servers |egrep -i '(slapd\.conf\.*|DB_CONFIG.example)'
/etc/openldap/slapd.conf
/etc/openldap/slapd.conf.bak
/usr/share/man/man5/slapd.conf.5.gz
/usr/share/openldap-servers/DB_CONFIG.example
/usr/share/openldap-servers/slapd.conf.obsolete
2)軟件包所產生的文件的用途
/usr/share/openldap-servers/slapd.conf.obsolete 為OpenLDAP配置文件模板
/usr/share/openldap-servers/DB_CONFIG.example 為OpenLDAP數據庫配置文件模板
要配置OpendLDAP服務端,需要將如上配置文件模板負責到/etc/openldap/目錄下并命名為slapd.conf,同時將數據庫配置文件模板復制到/var/lib/ldap/目錄中并將其命名為DB_CONFIG,且/var/lib/ldap/目錄權限所有主(owner),所屬組(group)必須為ladp用戶可讀寫,否則會在加載slapd進程時顯示權限警告
3) slapd.conf配置文件參數
/etc/openldap/slapd.conf 為OpenLDAP主配置文件,以#號開頭的為注釋說明
include???????? /etc/openldap/schema/corba.schema
include???????? /etc/openldap/schema/core.schema
include???????? /etc/openldap/schema/cosine.schema
include???????? /etc/openldap/schema/duaconf.schema
include???????? /etc/openldap/schema/dyngroup.schema
OpenLDAP服務允許連接的客戶端版本。
allow? bind_v2
OpenLDAP進程啟動時,pid文件存放路徑
pidfile /var/run/openldap/slapd.pid
OpenLDAP 參數文件存放的路徑
argsfile /var/run/openldap/slapd.args
OpenLDAP 指定需要加載額外的模塊
moduleload ppolicy.la
OpenLDAP模塊文件存放的路徑
modulepath? /usr/lib/openldap?????????????? //32bit的模塊文件路徑
modulepath? /usr/lib64/openldap?????????? //64bit的模塊文件路徑
指定OpenLDAP數據庫類型
OpendLDAP服務后端存儲數據庫引擎支持的數據庫類型有mysql? db2 oracle等關系數據庫,默認為bdb數據庫。
database? dbd
指定OpenLDAP服務器域名(DN)
指定要搜索或查詢OpenLDAP目錄樹的后綴名稱等同于AD域名
suffix???? "dc=example,dc=com"
指定OpenLDAP服務器管理信息
rootdn? "cn=Manager,dc=example,dc=com"
指定OpenLDAP服務管理員密碼
root? gdy@123???? #文明添加,不建議使用
rootpw???????? {crypt}ijFYNcSNctBYg
指定OpenLDAP數據庫文件的存放目錄
directory??? /var/lib/ldap
創建OpendLDAP索引
index?? objectClass??????????????????????????????????? eq,pres
index?? ou,cn,mail,surname,givename??????? eq,pres,sub
index?? uidNumber,gidNumber,loginShell?? eq,pres
三、修改OpenLDAP配置
1:備份默認數據庫文件
[root@gitea openldap]# \cp /etc/openldap/slapd.d?? /tmp/slapd.d.bak/ -fr
2: 查看OpendLDAP是否開啟SSL加密功能
[root@gitea openldap]# cat /etc/sysconfig/ldap |grep -v -E "^$|^#"
SLAPD_LDAP=yes
SLAPD_LDAPI=yes
SLAPD_LDAPS=no
此處未開啟SSL,如果開啟SSL功能,可以再使用SLAPD_LDAPS=yes,或者使用SLAPD_URLS進行指導即可
例如:SLAPD_URLS=ldaps://ldap.deppon.com
3: OpenLDAP主配置文件配置
1) schema文件的引入
include??????????????? /etc/openldap/schema/samba.schema
2)? 創建OpenLDAP的管理員密碼
通過slappasswd命令創建密碼串,然后將密碼串負責到rootpw即可
4: slaptest 檢測、生成數據庫
[root@gitea openldap]# slaptest -f /etc/openldap/slapd.conf
如果配置文件存在語法錯誤,通過slaptest -u 命令有相應的提示,根據提示對slapd.conf配置文件進行調整即可;
通過slapd.conf配置文件生成數據庫
[root@gitea openldap]# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
5:OpenLDAP日志配置
1)查看日志級別
slapd -d ?
2)? OpenLDAP服務日志設置
通過修改rsyslog配置文件, 在文件中添加:local4*?? /var/log/slapd.log
[root@gitea openldap]# touch /var/log/slapd.log
[root@gitea openldap]# chown ldap.ldap /var/log/slapd.log
[root@gitea openldap]# chmod 755 /var/log/slapd
root@gitea openldap]# chown ldap:ldap /var/log/slapd/
修改日志文件,使其加載OpenLDAP參數
[root@gitea openldap]# sed -i "/local4.*/d"? /etc/rsyslog.conf
[root@gitea openldap]# cat >> /etc/rsyslog.conf? << EOF
> local4.*????????????????? /var/log/slapd/slapd.log
> EOF
[root@gitea openldap]# cat /etc/openldap/slapd.conf? |grep -i loglevel
重新加載rsyslog使其配置生效
[root@gitea openldap]# service rsyslog restart
Shutting down system logger:?????????????????????????????? [? OK? ]
Starting system logger:??????????????????????????????????? [? OK? ]
6:通過cn=config配置OpenLDAP日志
1)查看數據庫配合文件日志級別信息
[root@gitea slapd.d]# cat cn\=config.ldif? |grep olcLogLevel
olcLogLevel: 0
四、啟動slapd服務
service slapd restart
五、yum安裝migrationtools
1)yum install migrationtools -y
vim? /usr/share/migrationtools/migrate_common.ph
$DEFAULT_MAIL_DOMAIN = "ouldap.com";
# Default base
$DEFAULT_BASE = "dc=ouldap,dc=com";
2)生成base.ldif
/usr/share/migrationtools/migrate_base.pl >base.ldif
3)添加base.ldif到ldap
ldapadd -x -D "cn=Manager,dc=ouldap,dc=com" -W -f ./base.ldif
4)檢查ldapadd是否成功
ldapsearch -x -D "cn=Manager,dc=ouldap,dc=com" -b "ou=Aliases,dc=ouldap,dc=com"? -W? 'uid=zhijie'
五、yum安裝httpd,php及PhpLdapAdmin
1)yum install httpd phpldapadmin -y
yum install?? php php-mbstring php-pear
2)配置/etc/httpd/conf.d/phpldapadmin.conf允許從遠程訪問
Alias /phpldapadmin /usr/share/phpldapadmin/htdocs
Alias /ldapadmin /usr/share/phpldapadmin/htdocs
Order Deny,Allow
Allow from all
3)修改/etc/phpldapadmin/config.php
$servers->setValue('login','attr','dn');
// $servers->setValue('login','attr','uid');
4)httpd.conf配置 使Apache支持php開發環境
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
5)在DirectoryIndex 后面添加PHP類型的頁面
DirectoryIndex index.php index.html index.html.var
6)虛擬主機配置
vim? /etc/httpd/conf/httpd.conf
ServerAdmin myldap.ouldap.com
DocumentRoot /usr/share/phpldapadmin/htdocs
ServerName myldap.ouldap.com
service httpd status
問題:
1:如果出現php程序無法調用OpenLDAP相關的模塊,造成所安裝的PHP程序錯誤,不支持連接OpenLDAP接口
安裝yum install? php-ldap? 重新apache