一、环境准备
1、Centos系统:CentOS7系统安装
2、LDAP系统: LDAP安装调试
各系统统一认证管理,密码如果不能重设有很大的信息安全隐患,但是全靠管理员设置密码,也不现实。所以增加self-service-password模块,使用用户自行修改密码。软件使用前提,安装LDAP,Apache,PHP,由于仅在内部使用,就不使用短信修改密码了,邮件方式以后再介绍。
二、 安装Apache、Php
centos的yum install 安装,会自动查找关联程序,并安装。如下,安装php时会自动查找安装apache。
yum install php
安装结果

启动, 添加自启动
systemctl start httpd
systemctl enable httpd
添加防火墙规则
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload

三、 安装self-service-password
以下采用官方安装方式https://ltb-project.org/documentation/self-service-password/latest/install_rpm
3.1 添加软件源
1、添加yum
源文件
vi /etc/yum.repos.d/ltb-project.repo
[ltb-project-noarch]
name=LTB project packages (noarch)
baseurl=<http://ltb-project.org/rpm/$releasever/noarch>
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-LTB-projec
2、更新yum
源( 此步骤可选,请慎重操作 )
yum update
#此步骤可不操作,操作后系统内核也会相应升级,请谨慎处理。
3、导入reporepository key
rpm --import http://ltb-project.org/wiki/lib/RPM-GPG-KEY-LTB-project
3.2 安装软件及相关插件
因 self-service-password
需要使用mcrypt
加密,这个需要安装扩展源。
软件会安装在 /usr/share/self-service-password/
目录下,
1、安装软件self-service-password
yum install self-service-password
2、安装扩展源
yum install epel-release
yum update
#此命令请谨慎操作
3、安装php-mcrypt
yum install php-mcrypt
这个系统通过apache\php运行,需要修改两个地方的配置。
Apache运行配置文件/etc/httpd/conf.d/self-service-password.conf
。
是密码管理系统配置文件 /usr/share/self-service-password/conf/config.inc.php
。
3.3 修改self-service-password.conf
原文件配置的是NameVirtualHost,对虚拟路径不太熟悉,这里改为子路径模式。具体说明还是百度说得清楚,这里能用就行了。
vi /etc/httpd/conf.d/self-service-password.conf
#/pwd 是访问目录,/usr/share/self-service-password是实际文件路径
Alias /pwd /usr/share/self-service-password
<Directory /usr/share/self-service-password>
DirectoryIndex index.php
AddDefaultCharset UTF-8
<IfModule mod_authz_core.c>
# Apache 2.4
Require local
Require all granted
</IfModule>
</Directory>
重启apache服务
systemctl restart httpd
3.4 修改config.inc.php配置文件
# vi /usr/share/self-service-password/conf/config.inc.php
# 这里是LDAP配置信息,修改31-39行为你的项目内容
# LDAP
$ldap_url = "ldap://172.17.1.12:389";
$ldap_starttls = false;
$ldap_binddn = "cn=root,dc=cafintech,dc=ad";
#$ldap_bindpw = "{SSHA}E6YP1EhkyCl0IO09jfCHtnozChNQ+CYm";
$ldap_bindpw = "cafintech";
$ldap_base = "ou=People,dc=cafintech,dc=ad";
$ldap_login_attribute = "uid";
$ldap_fullname_attribute = "cn";
$ldap_filter = "(&(objectClass=person)($ldap_login_attribute={login}))";
#修改121行 ,配置用户修改权限,使用user则需要在ldap中开启用户修改权限,使用manager,则给予用户在此服使用的权限 。
# Who changes the password?
# Also applicable for question/answer save
# user: the user itself
# manager: the above binddn
$who_change_password = "manager";
#修改231行 $keyphrase = "secret";中 secret 为其它字符,最好超过6个不常用字符。
$keyphrase = "hgfrtygfhfgtb";
在83-115行,设置密码复杂度,可以不修改。
# Local password policy
# This is applied before directory password policy
# Minimal length
$pwd_min_length = 6;
# Maximal length
$pwd_max_length = 30;
# Minimal lower characters
$pwd_min_lower = 2;
# Minimal upper characters
$pwd_min_upper = 1;
# Minimal digit characters
$pwd_min_digit = 1;
# Minimal special characters
$pwd_min_special = 0;
# Definition of special characters
$pwd_special_chars = "^a-zA-Z0-9";
# Forbidden characters
#$pwd_forbidden_chars = "@%";
# Don't reuse the same password as currently
$pwd_no_reuse = true;
# Check that password is different than login
$pwd_diff_login = true;
# Complexity: number of different class of character required
$pwd_complexity = 0;
# Show policy constraints message:
# always
# never
# onerror
$pwd_show_policy = "never";
# Position of password policy constraints message:
# above - the form
# below - the form
$pwd_show_policy_pos = "above";
# 保存退出
四、 使用方法
4.1 修改密码
有原密码的情况下修改成新密码(打开网页就是密码修改)
输入用户名如:admin
输入用户旧密码:admin
输入用户新密码:admin123
点击提交,就成功修改了密码。
4.2 密码找回(密码答案方式)
设置密码问题,点击页面中设置答案
链接。
在此页面输入你的用户名、密码,选择你的问题,输入你的答案,点击提交.
点击页面Question链接打开新网页(前提是你已经设置密码问题、答案)
输入用户名,选择问题,输入答案、输入新密码,点击提交,你的密码就被重置为新密码了。
五、 文章引用
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 long@longger.xin