open***基於openldap驗證,並安裝openldap web管理軟件

在本章實驗以前須要提早搭建好,用戶基於證書認證的open***而且可以正常連接,我是按照我以前發的第一篇關於open***的帖子作的。php

1)提早準備 :用戶基於證書訪問open***html

2)安裝 ldap ,ldap web 並建立用戶,可以在經過 ldap 找到建立的用戶web

3)配置 open*** 基於openldap  驗證數據庫

 

環境介紹apache

cat /etc/redhat-releasevim

uname -r瀏覽器

Image2_thumb1

 

須要有如下組件,缺一不可緩存

yum grouplist   #查看安裝了那些包組bash

   Base服務器

   Compatibility libraries

   Debugging Tools

   Development tools

   Dial-up Networking Support

   Hardware monitoring utilities

   Performance Tools

 

時間同步並添加定時任務(這一步在以前搭建open***基於證書認證時已經建立了)

 

修改 /etc/hosts 文件,指定本機地址和將要設定的域名。修改後經過 ping 命令進行測試

echo 「192.168.6.28 yuci.com」 >> /etc/hosts

ping yuci.com

Image_thumb

 

安裝各類依賴包

yum -y install openldap openldap-*

yum -y install nscd nss-pam-ldapd pcre pcre-*

yum -y update nss-softokn-freebl

yum -y install nss-*

 

複製並備份 ldap 的配置文件 slapd.conf

cd /etc/openldap/

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

slappasswd -s 123456 | sed -e "s#{SSHA}#rootpw\t{SSHA}#g" >> slapd.conf

tail -1 slapd.conf

cp slapd.conf slapd.conf.bak

 

編輯 slapd.conf 文件,註釋 114-117 行,注意不要有空格

vim slapd.conf

database        bdb

suffix             "dc=yuci,dc=com"

rootdn           "cn=damin,dc=yuci,dc=com"

Image3_thumb

文件最後添加如下選項

loglevel          296     #日誌級別

cachesize       1000   # ldap 緩存的記錄數

checkpoint     2048 10     #把內存中的數據寫回數據文件,每2048kb或者10分鐘執行一次

Image4_thumb

刪除配置文件中的默認權限,並添加如下新的權限

access to *

by self write

by anonymous auth

by * read

Image5_thumb

Image6_thumb

 

編輯日誌log,作好備份

cp /etc/rsyslog.conf /etc/rsyslog.conf.bak

echo '#record ldap.log by yuci 2017-01-06' >> /etc/rsyslog.conf

echo 'local4.*             /var/log/ldap.log' >> /etc/rsyslog.conf

tail -1 /etc/rsyslog.conf

/etc/init.d/rsyslog restart

 

LDAP數據庫格式爲bdb,存儲路徑爲/var/lib.ldap

grep directory slapd.conf

Image7_thumb

 

從模板中拷貝數據庫的配置文件,而且受權修改權限

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

ll /var/lib/ldap/DB_CONFIG

chown ldap:ldap /var/lib/ldap/DB_CONFIG

chmod 700 /var/lib/ldap/

 

測試文件配置成功

slaptest -u

Image8_thumb

啓動 openldap 服務

/etc/init.d/slapd start

Image9_thumb

 

Image_thumb1

 

查看端口

lsof -i :389

Image10_thumb

檢查進程

ps -ef | grep ldap | grep -v grep

Image11_thumb

添加開機自啓動,並查看

chkconfig slapd on

chkconfig --list slapd

Image12_thumb

查看啓動日誌,若是日誌爲空,說明沒有配好

cat /var/log/ldap.log

Image13_thumb

 

查看 ldap 數據庫中的用戶

經過如下命令查詢 ldap 數據庫,報錯以下

ldapsearch -LLL -W -x -H ldap://yuci.com -D "cn=admin,dc=yuci,dc=com" -b "dc=yuci,dc=com" "(uid=*)"

Image14_thumb

解決報錯

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/

/etc/init.d/slapd restart

lsof -i :389

再次嘗試鏈接數據庫,仍是出現如下報錯,沒有項目,能夠進行下一步了

ldapsearch -LLL -W -x -H ldap://yuci.com -D "cn=admin,dc=yuci,dc=com" -b "dc=yuci,dc=com" "(uid=*)"

Image15_thumb

 

爲 ldap master 配置 web 管理接口

安裝依賴的軟件服務,並檢查

yum -y install httpd php php-ldap php-gd -y

rpm -qa httpd php php-ldap php-gd

 

下載地址:3.7版本

https://www.ldap-account-manager.org/lamcms/

 

切換目錄,將剛纔下載的文件上傳到此目錄。解壓,重命名這個軟件

cd /var/www/html/

tar zxf ldap-account-manager-3.7.tar.gz

mv ldap-account-manager-3.7/ ldap

Image16_thumb

 

備份,重命名,並修改文件內容

cd ldap/config

cp config.cfg_sample config.cfg_sample.bak

cp lam.conf_sample lam.conf_sample.bak

mv config.cfg_sample config.cfg

mv lam.conf_sample lam.conf

sed -i 's#cn=Manager#cn=admin#g' lam.conf

sed -i 's#dc=my-domain#dc=yuci#g' lam.conf

sed -i 's#dc=com#dc=com#g' lam.conf     #由於個人域名是 yuci.com 因此並不須要這項

chown -R apache:apache /var/www/html/ldap

 

重啓 httpd 服務

/etc/init.d/httpd start

 

經過瀏覽器訪問 192.168.6.29/ldap , 能夠正常訪問,準備配置

Image17_thumb6

Image18_thumb1

Image19_thumb1

Image20_thumb1

Image21_thumb1

Image22_thumb

Image23_thumb1

添加一個用戶,一個組

Image24_thumb1

Image25_thumb1

Image26_thumb1

服務器端查看數據,找到剛纔建立的 yuciuser01 用戶

ldapsearch -LLL -W -x -H ldap://yuci.com -D "cn=admin,dc=yuci,dc=com" -b "dc=yuci,dc=com" "(uid=*)"

Image27_thumb

 

開始配置 open***基於openldap 的驗證。

要保證用戶能夠經過證書連接 open***,openldap 中有用戶

 

更改yum源並yum安裝 open***-auth-ldap。須要經過這個插件來進行open***與openldap之間的連接。

rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

sed -i 's@#b@b@g' /etc/yum.repos.d/epel.repo

sed -i 's@mirrorlist@#mirrorlist@g' /etc/yum.repos.d/epel.repo

yum -y install open***-auth-ldap

 

備份並修改 open***-auth-ldap 的配置文件

cp /etc/open***/auth/ldap.conf /etc/open***/auth/ldap.conf.bak

vim /etc/open***/auth/ldap.conf
[root@open*** ~]# diff /etc/open***/auth/ldap.conf.bak /etc/open***/auth/ldap.conf 
  
3c3 

  
< URL ldap://ldap1.example.org 

  
--- 

  
> URL 
ldap://192.168.6.28:389
 

  
6c6 

  
< # BindDN uid=Manager,ou=People,dc=example,dc=com 

  
--- 

  
> BindDN cn=admin,dc=yuci,dc=com 

  
9c9 

  
< # Password SecretPassword 

  
--- 

  
> Password 123456 

  
15c15 

  
< TLSEnable yes 

  
--- 

  
> TLSEnable no 

  
18c18 

  
< FollowReferrals yes 

  
--- 

  
> FollowReferrals no 

  
38c38 

  
< BaseDN "ou=People,dc=example,dc=com" 

  
--- 

  
> BaseDN "dc=yuci,dc=com" 

  
41c41 

  
< SearchFilter "(&(uid=%u)(accountStatus=active))" 

  
--- 

  
> SearchFilter "(uid=%u)"

cp /usr/share/doc/open***-auth-ldap-2.0.3/auth-ldap.conf /usr/share/doc/open***-auth-ldap-2.0.3/auth-ldap.conf.bak

vim /usr/share/doc/open***-auth-ldap-2.0.3/auth-ldap.conf
[root@open*** ~]# diff /usr/share/doc/open***-auth-ldap-2.0.3/auth-ldap.conf.bak /usr/share/doc/open***-auth-ldap-2.0.3/auth-ldap.conf 
  
3c3 

  
< URL ldap://ldap1.example.org 

  
--- 

  
> URL 
ldap://192.168.6.28:389
 

  
6c6 

  
< # BindDN uid=Manager,ou=People,dc=example,dc=com 

  
--- 

  
> BindDN cn=admin,dc=yuci,dc=com 

  
9c9 

  
< # Password SecretPassword 

  
--- 

  
> Password 123456 

  
15c15 

  
< TLSEnable yes 

  
--- 

  
> TLSEnable no 

  
18c18 

  
< FollowReferrals yes 

  
--- 

  
> FollowReferrals no 

  
21c21 

  
< TLSCACertFile /usr/local/etc/ssl/ca.pem 

  
--- 

  
> # TLSCACertFile /usr/local/etc/ssl/ca.pem 

  
24c24 

  
< TLSCACertDir /etc/ssl/certs 

  
--- 

  
> # TLSCACertDir /etc/ssl/certs 

  
28,29c28,29 

  
< TLSCertFile /usr/local/etc/ssl/client-cert.pem 

  
< TLSKeyFile /usr/local/etc/ssl/client-key.pem 

  
--- 

  
> # TLSCertFile /usr/local/etc/ssl/client-cert.pem 

  
> # TLSKeyFile /usr/local/etc/ssl/client-key.pem 

  
38c38 

  
< BaseDN "ou=People,dc=example,dc=com" 

  
--- 

  
> BaseDN "dc=yuci,dc=com" 

  
41c41 

  
< SearchFilter "(&(uid=%u)(accountStatus=active))" 

  
--- 

  
> SearchFilter "(uid=%u)" 

  
50,52c50,52 

  
< BaseDN "ou=Groups,dc=example,dc=com" 

  
< SearchFilter "(|(cn=developers)(cn=artists))" 

  
< MemberAttribute uniqueMember 

  
--- 

  
> BaseDN "ou=Group,dc=yuci,dc=com" 

  
> SearchFilter "(|(cn=*)(cn=artists))" 

  
> #MemberAttribute uniqueMember

 

修改 open*** 的配置文件 server.conf,添加以下內容

plugin /usr/lib64/open***/plugin/lib/open***-auth-ldap.so "/etc/open***/auth/ldap.conf cn=%u"

client-cert-not-required

username-as-common-name

 

修改後 server.conf 文件內容以下

port 1194 
  proto tcp 

  dev tun 

  ca /etc/open***/keys/ca.crt 

  cert /etc/open***/keys/server.crt 

  key /etc/open***/keys/server.key  # This file should be kept secret 

  dh /etc/open***/keys/dh1024.pem 

  log /var/log/open***.log 

  server 10.8.0.0 255.255.255.0 

  ifconfig-pool-persist ipp.txt 

  keepalive 10 120 

  comp-lzo 

  persist-key 

  persist-tun 

  status open***-status.log 

  verb 3
plugin /usr/lib64/open***/plugin/lib/open***-auth-ldap.so "/etc/open***/auth/ldap.conf cn=%u" 
  client-cert-not-required 

  username-as-common-name

 

還須要更改客戶端的配置文件 user1.o*** 文件,添加以下內容

auth-user-pass

client      
dev tun       
proto tcp       
remote 192.168.6.45 1194       
resolv-retry infinite       
nobind       
persist-key       
persist-tun       
ca ca.crt       
;cert user1.crt       
;key user1.key       
ns-cert-type server       
auth-user-pass 

  
comp-lzo       
verb 3

 

到此位置配置完成,經過 user1用戶能夠驗證連接 open*** ,在 openldap web 上建立的用戶均可以經過驗證並連接。

相關文章
相關標籤/搜索