你好,游客 登录 注册 搜索
背景:
阅读新闻

OpenLDAP安装及设置普通用户修改自己密码

[日期:2017-07-05] 来源:Linux社区  作者:Linux [字体: ]

前言:
 在安装使用、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

linux
相关资讯       OpenLDAP安装 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款