2021-05-12 14:32:11
OpenLDAP安裝及設定普通使用者修改自己密碼
前言:
在安裝使用、openldap的過程中踩過很多坑,有的是自己沒理解明白,有的是別人表述不明確,此次就從安裝開始,簡單許可權設定、以及雙主,後面包括與confluence、jira,gitlab的關聯~
一、安裝openldap
此前編譯安裝過,踩過不少坑,最後還是選擇用yum安裝來的方便。
`yum install openldap openldap-servers openldap-clients openldap-devel compat-openldap`
openldap後端的資料庫是Berkeley DB,所以這個也得安裝,當時編譯安裝時,對這個資料庫的版本有恨嚴格的要求,坑很大。。
`yum install db4 db4-utils`
雖說openldap已經提供了足夠的命令來建立,搜尋,修改資料,但是依然不及web頁面顯示來的直觀,此處我們使用phpldapadmin。
```
wget http://sourceforge.net/projects/phpldapadmin/files/phpldapadmin-php5/1.2.3/phpldapadmin-1.2.3.zip/download
unzip phpldapadmin-1.2.3.zip
cp -R phpldapadmin-1.2.3 /var/www/html/phpldapadmin
cd /cd/www/html/phpldapadmin/config
cp config.php.example config.php
```
和大多數php應用一樣,得自己複製出一個組態檔。記得修改php的timezone喲。這也算是一個小坑。
`
yum install php php-ldap php-fpm nginx
sed -i '/; date.timezone/a date.timezone =Asia/Shanghai' /etc/php.ini `
下面是我使用的nginx的組態檔
```
vim /etc/nginx/conf/phpldapadmin.conf
server{
listen 80;
server_name ldap.xxx.com;
location / {
index index.html index.php;
root /var/www/html/phpldapadmin;
if (!-e $request_filename) {
rewrite ^/(.*) /index.php?$1 last;
}
}
location ~ .php$ {
root /var/www/html/phpldapadmin;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
```
接下來就啟動nginx、啟動php-fpm
```
service nginx start
service php-fpm start
```
繼續設定openldap。網上有好多教學都是設定slapd.conf 檔案但是,yum安裝的預設/etc/openldap/下是沒有這個檔案的,因為新版的吧一個檔案分成了多個。不習慣的可以繼續設定原來的slapd.conf檔案,然後通過命令將其變成slapd.d/目錄下的多個組態檔。
首先生成管理員密碼。
slappasswd
輸入兩次得到一個密碼,我的這個密碼是1234
{SSHA}7Wi/7NzFL/b6y+a7jZsDos5ax3HK0gUZ
修改資料庫組態檔,設定域名,密碼等
```
vim /etc/openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
olcSuffix: dc=xxx,dc=com
#這個主要設定目錄樹根的域名。
oclRootDN: cn=admin,dc=xxx,dc=com
#這個是設定管理員dn,xxx可以換成自己的域名~
#然後在這歌組態檔的最後一行加入設定管理員密碼的條目~
olcRootPW: {SSHA}7Wi/7NzFL/b6y+a7jZsDos5ax3HK0gUZ
```
2、指定監控許可權
```
vim /etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif
dn.base="cn=admin,dc=xxx,dc=com"
#修改其末日域名
```
3、設定資料庫快取
```
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown -R ldap:ldap /var/lib/ldap
#測試組態檔是否有錯,得到`testing succeeded`表示沒問題
slaptest -u
```
4、啟動openldap
`service slapd start`
此時就可以存取phpldapadmin。web頁面了
使用者名稱:cn=admin,dc=ldap,dc=com
密碼:1234
不過此處還有一坑,web頁面會有一個提示,然後沒有目錄樹的根,原因是根節點還沒有被建立。操作如下:
```
vim base.ldif
#以下為base.ldif內的內容
dn: dc=xxx,dc=com
o: ldap
objectclass: dcObject
objectclass: organization
```
然後加入使用者
`ldapmodify -x -D "cn=admin,dc=luojilab,dc=com" -W -f base.ldif`
如果提示`adding new entry "dc=xxx,dc=com"`就表示成功了~
再存取web頁面就沒問題啦~~
openldap設定普通使用者修改自己密碼
當我們接入jira或者wiki等等,普通使用者肯定有修改密碼的需求,為了實現此功能,就得在openldap組態檔中加入許可權,允許普通使用者自己修改密碼。
前面已經做過的操作,此處不再說明。
修改slapd.conf檔案
```
#找到下面幾條,去掉前面的井號
modulepath /usr/lib/openldap
modulepath /usr/lib64/openldap
modeleloda ppolicy.la
```
在database config前面加上兩個欄位
```
access to attrs=userPassword
by self write
by anonymous auth
by dn="cn=admin,dc=xxx,dc=com" write
by * node
access to *
by self write
by dn="cn=admin,dc=xxx,dc=com" write
```
再組態檔末尾新增:
```
overlay ppolicy
ppolicy_default cn=Captain,ou=pwpolicies,dc=le,dc=com
```
然後重新生成資料庫組態檔
```
rm -rf /etc/openldap/slapd.d/*
[root@ll ~]# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
config file testing succeeded
[root@ll ~]# chown -R ldap.ldap /etc/openldap/*
[root@ll ~]# chown -R ldap.ldap /var/lib/ldap
[root@ll ~]# /etc/init.d/slapd restart
```
本文永久更新連結地址:http://www.linuxidc.com/Linux/2017-07/145436.htm
相關文章