ldap学习资料
 
https://wiki.shileizcc.com/confluence/pages/viewpage.action?pageId=39223517
ldap卸载
systemctl stop slapd
 apt-get remove --purge slapd ldap-utils
 apt-get remove --purge phpldapadmin
 apt-get remove slapd ldap-utils
 rm -rf /etc/ldap
 rm -rf /var/lib/ldap
 userdel openldap
ubuntu ldap安装
1. apt-get install -y slapd ldap-utils

设置确认密码
2. 执行dpkg-reconfigure slapd
3.是否需要创建初始配置和数据库,选择no

4.设置dnc,我们设置ldap.test

5.设置组织名称,可以和上一步一样

6.配置管理员密码
7.卸载ldap时是否删除数据库,选择no

8.这里我们推荐使用最新的数据库,因此需要移走老的库,选择yes

注解:ubuntu1~18.0版本安装ldap时会有选择数据库类型选项,老的ldap使用hdb,所以我们直接选择hdb好做迁移,但是本次是ubuntu1~20.04,默认就是mdb。

 安装相关资料
 https://blog.csdn.net/beeworkshop/article/details/114390125
 https://www.cnblogs.com/storyawine/p/15322876.html
 https://ubuntu.com/server/docs/service-ldap
  
schema添加
schema在ldap中相当于mysql的主键,字段类型的配置,在/etc/ldap/schema/下,可以加默认的所有的schema,执行所有的ldif文件
 sudo ldapadd -Q -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/ppolicy.ldif adding new entry "cn=ppolicy,cn=schema,cn=config"  | 
 phpldapadmin安装
 
https://github.com/leenooks/phpLDAPadmin
 github下载:git clone https://github.com/leenooks/phpLDAPadmin.git
 mv /data/ldap/phpLDAPadmin /data/ldap/phpldapadmin
 软连接到Apache2
 ln -s /data/ldap/phpldapadmin /var/www/html/phpldapadmin
 两种方式配置文件
 1. 直接copy老的ldap的:cp /var/www/html/phpldapadmin/conf/config.php
 2. 修改/data/ldap/phpldapadmin/conf/config.php
mv /data/ldap/phpldapadmin/conf/config.php.example  /data/ldap/phpldapadmin/conf/config.php
 添加
 $servers->newServer('ldap_pla');
 $servers->setValue('server','name','LDAP Server');
 $servers->setValue('server','host','127.0.0.1');
 $servers->setValue('server','port',389);
 $servers->setValue('server','base',array('dc=uhome-app,dc=haier'));
 $servers->setValue('login','auth_type','cookie');
 $servers->setValue('login','bind_id','cn=admin,dc=uhome-app,dc=haier');
 $servers->setValue('login','bind_pass','Ldap2016^');
 $servers->setValue('server','tls',false);
 重启apache2
 systemctl restart apache2
 访问phpldapadmin
 http://ip/phpldapadmin
 phpldapadmin相关资料
 https://cloud.tencent.com/developer/article/1349446
密码策略设置
加载模块ppolicy:
cat << EOF | ldapadd -Y EXTERNAL -H ldapi:///
 dn: cn=module{0},cn=config
 changetype: modify
 add: olcModuleLoad
 olcModuleLoad: {0}ppolicy
 EOF
添加 objectClass 对象,增加额外属性和值
cat << EOF | ldapadd -Y EXTERNAL -H ldapi:///
 dn: olcOverlay=ppolicy,olcDatabase={1}mdb,cn=config
 changetype: add
 objectClass: olcConfig
 objectClass: olcOverlayConfig
 objectClass: olcPPolicyConfig
 olcOverlay: ppolicy
 olcPPolicyDefault: cn=default,ou=policies,dc=uhome-app,dc=haier
 olcPPolicyHashCleartext: TRUE
 olcPPolicyUseLockout: TRUE
 EOF
 创建policies组
 cat << EOF | ldapadd -x -D cn=admin,dc=uhome-app,dc=haier -W
 dn: ou=policies,dc=uhome-app,dc=haier
 objectClass: top
 objectClass: organizationalUnit
 ou: policies
 EOF
 定义密码规则
 cat << EOF | ldapadd -x -D cn=admin,dc=uhome-app,dc=haier -W
 dn: cn=default,ou=policies,dc=uhome-app,dc=haier
 cn: default
 objectClass: top
 objectClass: device
 objectClass: pwdPolicy
 pwdAttribute: userPassword
 pwdAllowUserChange: TRUE
 pwdInHistory: 5
 pwdMinLength: 5
 pwdMaxFailure: 5
 pwdFailureCountInterval: 30
 pwdCheckQuality: 0
 pwdMustChange: TRUE
 pwdSafeModify: FALSE
 pwdGraceAuthNLimit: 5
 pwdMaxAge: 7776000
 pwdMinAge: 0
 pwdExpireWarning: 1209600
 pwdLockoutDuration: 900
 pwdLockout: TRUE
 EOF
数据恢复
由于原ldap是centos 使用hdb,且版本低,导出的数据使用命令导入一直失败,所以最后采用phpldapadmin页面导入
 从之前的ldap服务器页面导出,再新ldap页面导入即可
发送邮件sendEmail命令
安装:
 wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
 tar -zxvf sendEmail-v1.56.tar.gz
 cd sendEmail-v1.56
 把里面的主要程序复制到环境变量目录下,即可使用
 cp sendEmail /usr/bin/
 参数解释
 -f root@yunwei.com 发件人邮箱
 -t 123@qq.com 收件人邮箱
 -s mail.yunwei.com 发件人邮箱smtp服务器
 -u "testsubject" 邮件标题
 -o message-content-type=html 邮件内容的格式
 -o message-charset=utf8 邮件内容编码
 -xu admin@yunwei.com 发件人邮箱用户名
 -xp root 发件人邮箱密码
 -m "test" 邮件具体内容
 sendEmail -o tls=no -s "smtp.mxhichina.com:587" -xu "hitest@cihome.top" -xp 'Uhome@2016' -f "hitest@cihome.top" -t "likunkun@haier.com" -u "myfrebds" -o message-content-type=html -o message-charset=utf8 -o message-file=mailmsg
