文章目录
- 一、初始化环境
- 二、安装OpenLDAP
- 三、配置openldap
- 3.1 配置OpenLDAP管理员密码
- 3.2 修改olcDatabase={2}hdb.ldif文件
- 3.3 修改olcDatabase={1}monitor.ldif文件
- 3.4 验证OpenLDAP的基本配置及启动openldap
- 3.5 配置_OpenLDAP数据库
- 4.7 修改migrate_common.ph文件
- 4.8 配置openldap基础数据
- 四、开启OpenLDAP日志访问功能
- 五、使用phpldapadmin工具管理OpenLDAP
- 六、查询OpenLDAP相关信息
- 七、修改OpenLDAP 默认监听端口为1389
- 八、Openldap禁止匿名登录
- 九、 CentOS主机使用ldap用户认证配置
- 十、 Ubuntu主机使用ldap用户认证配置
- 十一、 LDAP数据的备份与恢复
PS:系统CentOS 7.7、slapd 2.4.44
一、初始化环境
- 主机时间同步、关闭selinux以及firewalld
yum install ntp* -y
systemctl start ntpd && systemctl enable ntpd
setenforce 0
systemctl disable firewalld.service && systemctl stop firewalld.service
二、安装OpenLDAP
yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel migrationtools
三、配置openldap
注意:从OpenLDAP2.4.23版本开始所有配置数据都保存在/etc/openldap/slapd.d/中,建议不再使用slapd.conf作为配置文件
3.1 配置OpenLDAP管理员密码
- 使用slappasswd 命令生成一串加密后的密码、后面配置文件中需要使用
slappasswd -s 123456
{SSHA}+SwVrC910PpWz58wjvaOe0u+tKdHamVp
3.2 修改olcDatabase={2}hdb.ldif文件
文件路径:/etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif
- 修改olcDatabase={2}hdb.ldif文件,对于该文件增加一行
olcRootPW: {SSHA}+SwVrC910PpWz58wjvaOe0u+tKdHamVp
- 然后修改域信息:
olcSuffix: dc=neoclub,dc=cn
olcRootDN: cn=admin,dc=neoclub,dc=cn
3.3 修改olcDatabase={1}monitor.ldif文件
文件路径: /etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif
- 修改中的dn.base是修改OpenLDAP的管理员的相关信息的
olcAccess: {0}to * by dn.base=“gidNumber=0+uidNumber=0,cn=peercred,cn=extern
al,cn=auth” read by dn.base=“cn=admin,dc=neoclub,dc=cn” read by * none
3.4 验证OpenLDAP的基本配置及启动openldap
- 验证配置命令:
slaptest -u 最后一行出现config file testing succeeded 就说明配置文件无问题
- 启动OpenLDAP服务
systemctl enable slapd
systemctl start slapd
systemctl status slapd
3.5 配置_OpenLDAP数据库
- OpenLDAP默认使用的数据库是BerkeleyDB,/var/lib/ldap/就是BerkeleyDB数据库默认存储的路径,开始配置OpenLDAP数据库,使用如下命令:
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown ldap:ldap -R /var/lib/ldap
3.6 导入基本的Schema
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
4.7 修改migrate_common.ph文件
- migrate_common.ph文件主要是用于生成ldif文件使用,修改migrate_common.ph文件
vim /usr/share/migrationtools/migrate_common.ph +71
$DEFAULT_MAIL_DOMAIN = "neoclub.cn";
$DEFAULT_BASE = "dc=neoclub,dc=cn";
$EXTENDED_SCHEMA = 1;
4.8 配置openldap基础数据
- 使用migrate_base.pl 生产base.ldif
/usr/share/migrationtools/migrate_base.pl > /tmp/base.ldif
cat /tmp/base.ldif (可以只保留最上面这个行)
dn: dc=neoclub,dc=cn
dc: neoclub
objectClass: top
objectClass: domain
导入数据基
ldapadd -x -D "cn=admin,dc=neoclub,dc=cn" -h 172.16.11.10:389 -W -f /tmp/base.ldif
若无此步,则不能创建组织、组、用户通过web 管理页面会报错
四、开启OpenLDAP日志访问功能
- 默认情况下OpenLDAP是没有启用日志记录功能的,但是在实际使用过程中,我们为了定位问题需要使用到OpenLDAP日志。
cat > /tmp/loglevel.ldif << EOF
dn: cn=config
changetype: modify
replace: olcLogLevel
olcLogLevel: stats
EOF
- 导入到OpenLDAP中,并重启OpenLDAP服务,如下:
ldapmodify -Y EXTERNAL -H ldapi:/// -f /root/loglevel.ldif
systemctl restart slapd
- 修改rsyslog配置文件,并重启rsyslog服务,如下:
cat >> /etc/rsyslog.conf << “EOF”
local4.* /var/log/slapd.log
EOF
- 查看OpenLDAP日志,如下
tail -f /var/log/slapd.log
五、使用phpldapadmin工具管理OpenLDAP
docker run --restart=always -d --privileged \
-p 80:80 --name ldapadmin \
--env PHPLDAPADMIN_HTTPS=false \
--env PHPLDAPADMIN_LDAP_HOSTS="#PYTHON2BASH:[{'172.16.11.10': [{'server': [{'tls': False}]},{'login': [{'bind_id': 'cn=admin,dc=neoclub,dc=cn'},{'bind_pass': '123456'}]}]}, ]" \
--detach osixia/phpldapadmin:stable
- 浏览器访问:http://172.16.11.10 登录后,可以根据自己需求创建组织、组、用户等等
六、查询OpenLDAP相关信息
- 查询OpenLDAP全部信息,使用如下命令:
ldapsearch -x -b “dc=neoclub,dc=cn” -H ldap://172.16.11.10
- 查询某一个特定用户test的信息
ldapsearch -LLL -x -D “cn=admin,dc=neoclub,dc=cn” -w “123456” -b “dc=neoclub,dc=cn” ‘uid=test’
- 查询某一个特定用户组test的信息
ldapsearch -LLL -x -D “cn=admin,dc=neoclub,dc=cn” -w “123456” -b “dc=neoclub,dc=cn”
‘cn=test’
七、修改OpenLDAP 默认监听端口为1389
- 修改/etc/sysconfig/slapd文件
SLAPD_URLS=”ldapi://0.0.0.0:1389/ ldap://0.0.0.0:1389/”
重启slapd 服务即可。
八、Openldap禁止匿名登录
/etc/openldap/cn=config/cn=config.ldif
添加:
olcDisallows: bind_anon
olcRequires: authc
/etc/openldap/cn=config/olcDatabase={-1}frontend.ldif
添加:
olcRequires: authc
重启slapd 服务即可。
九、 CentOS主机使用ldap用户认证配置
- 安装nss-pam-ldapd 客户端认证使用模块
yum install -y nss-pam-ldapd
- 可以使用图形化界面配置
执行authconfig-tui -->选择ldap 认证–> next --> 填写ldap 的地址和域信息–>保存
- 修改/etc/nslcd.conf 文件,解决匿名不能登录认证
binddn cn=admin,dc=neoclub,dc=cn
bindpw 123456
重启nslcd 服务:systemctl restart nslcd
- 解决ldap用户登录后不能创建家目录报错
authconfig --enableldap --enableldapauth --enablemkhomedir --ldapserver=ldap://172.16.11.10:389 --ldapbasedn=“dc=neoclub,dc=cn” --update
十、 Ubuntu主机使用ldap用户认证配置
- 软件安装:
apt-get install ldap-utils libpam-ldap libnss-ldap nslcd -y
安装过程中提示填写ldap相关信息:ldap server 地址,base dc等,信息保存在/etc/ldap.conf中,可通过dpkg-reconfigure ldap-auth-config重新配置
- 认证方式中添加ldap:
root@ldapclient:~# auth-client-config -t nss -p lac_ldap
- 使认证通过后自动创建用户家目录:
vi /etc/pam.d/common-session,追加内容:
session required pam_mkhomedir.so skel=/etc/skel umask=0077
- 配置开启ldap认证方式
root@ldapclient:~# pam-auth-update
- 配置可在本机通过passwd更改用户密码:
vi /etc/pam.d/common-password,除去其中的use_authtok参数(第26行)
- 重启相关服务:
systemctl restart nslcd
十一、 LDAP数据的备份与恢复