centos7 环境下yum安装openldap

发布时间 2023-09-20 18:04:49作者: 非专业编程

1.安装相关openldap的软件

yum -y install openldap openldap-servers openldap-clients openldap-devel compat-openldap

2.openldap相关的文件配置

/etc/openldap/slapd.conf:OpenLDAP的主配置文件,记录根域信息,管理员名称,密码,日志,权限等
/etc/openldap/slapd.d/:这下面是/etc/openldap/slapd.conf配置信息生成的文件,每修改一次配置信息,这里的东西就要重新生成
/etc/openldap/schema/:OpenLDAP的schema存放的地方
/var/lib/ldap/*:OpenLDAP的数据文件
/usr/share/openldap-servers/slapd.conf.obsolete 模板配置文件
/usr/share/openldap-servers/DB_CONFIG.example 模板数据库配置文件
OpenLDAP监听的端口:
默认监听端口:389(明文数据传输)
加密监听端口:636(密文数据传输)

3.初始化openldap配置

cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown ldap:ldap /var/lib/ldap/DB_CONFIG

4.启动openldap服务

systemctl start slapd 
systemctl enable slapd
systemctl status slapd

5.为openldap生成管理员密码

slappasswd -s 123456
#这里会生成一串{SSHA}***的东西,这个东西就是SSHA加密的密码,后面操作需要这串密码,这里的123456就是为加密前的密码

6.新建一个名为rootpwd.ldif的文件夹,将下方写入该文件

#gvim rootpwd.ldif

dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}***
#这里的olcRoolPW后面对应的{SSHA}就是第6步生成的加密密码

7.读取rootpwd.ldif文件信息

ldapadd -Y EXTERNAL -H ldapi:/// -f rootpwd.ldif

8.导入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

9.(1)设定默认域,新建一个根节点

slappasswd -s 123456

(2)先想好一个域名,然后再创建一个名为domain.ldif的文件

#我这里的域名为openldap.com,这里的加密密码使用第10步生成的密码
dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.base="cn=admin,dc=openldap,dc=com" read by * none

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=openldap,dc=com

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=admin,dc=openldap,dc=com

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}此处填写上一步生成的密码

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by dn="cn=admin,dc=openldap,dc=com" write by anonymous auth by self write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=admin,dc=openldap,dc=com" write by * read

(3)执行domain.ldif文件

ldapmodify -Y EXTERNAL -H ldapi:/// -f domain.ldif

(4)创建一个名为base.ldif的文件,将以下命令写入

dn: dc=openldap,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: com
dc: openldap

dn: cn=admin,dc=openldap,dc=com
objectClass: organizationRole
cn: admin
description: Directory Manager

dn: ou=People,dc=openldap,dc=com
objectClass: organizationlUnit
ou: People

dn: ou=Group,dc=openldap,dc=com
objectClass: organizationlUnit
ou: Group
执行base.ldif文件,根据提示输入第10步生成未加密的密码
ldapadd -x -D cn=admin,dc=openldap,dc=com -W -f base.ldif

10.禁止匿名登录

cat > /root/disable_anon.ldif << EOF
dn: cn=config
changetype: modify
add: olcDisallows
olcDisallows: bind_anon

dn: cn=config
changetype: modify
add: olcRequires
olcRequires: authc

dn: olcDatabase={-1}frontend,cn=config
changetype: modify
add: olcRequires
olcRequires: authc
EOF
ldapadd -Y EXTERNAL -H ldapi:/// -f /root/disable_anon.ldif

11.加载日志模块: 2.4.4 版本系统默认有

cat > /root/loglevel.ldif << EOF
dn: cn=config
changetype: modify
replace: olcLogLevel
olcLogLevel: stats
EOF

ldapmodify -Y EXTERNAL -H ldapi:/// -f /root/loglevel.ldif

systemctl restart slapd

12.配置rsyslog.conf

cat >> /etc/rsyslog.conf << EOF

local4.* /var/log/slapd.log

EOF

systemctl restart rsyslog

13.使用LDAP Admin 登录

 14.新建用户

密码使用明文存储,使用别的加密方式freeradius会认证失败