OpenLDAP 禁止匿名访问

一、使用匿名访问openldap

openldap默认都是可以进行匿名访问的,这个我们可以通过ldapadmin或者phpldapadmin等工具来进行查看。在这我们使用ldapadmin工具进行查看,如下:

图片1

通过上图,我们可以很明显的看出,openldap在匿名情况下是可以被访问的。而且openldap的相关信息,除了用户的密码信息之外,其他openldap的信息完全被呈现出来。

二、禁止openldap匿名访问

从安全的角度考虑,这种情况是不被允许的,所以我们要取消openldap的匿名访问功能。

要取消openldap的匿名访问功能,操作方法也比较简单。我们只需要把以下openldap信息导入openldap中即可,而且是无需重启openldap服务即时生效的。

2.1 编辑ldif文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[admin@localhost openldap]$ vim disable_anon.ldif
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

2.2 使用ldapadd命令导入到openldap

1
2
3
4
5
6
[admin@localhost openldap]$ ldapadd -Y EXTERNAL -H ldapi:/// -f disable_anon.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=1000+uidNumber=1000,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=config"
ldap_modify: Insufficient access (50)

可以通过openldap服务器上的文件查看做了哪些发动:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
[admin@localhost openldap]$ sudo cat /etc/openldap/slapd.d/cn\=config.ldif
[sudo] password for admin:
# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
# CRC32 2848f698
dn: cn=config
objectClass: olcGlobal
cn: config
olcArgsFile: /var/run/openldap/slapd.args
olcPidFile: /var/run/openldap/slapd.pid
olcTLSCACertificatePath: /etc/openldap/certs
olcTLSCertificateFile: "OpenLDAP Server"
olcTLSCertificateKeyFile: /etc/openldap/certs/password
structuralObjectClass: olcGlobal
entryUUID: b4bd6c2e-b215-103a-90af-1f89b5f560bc
creatorsName: cn=config
createTimestamp: 20201103114442Z
olcDisallows: bind_anon
olcRequires: authc
entryCSN: 20201103141650.871705Z#000000#000#000000
modifiersName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
modifyTimestamp: 20201103141650Z

[admin@localhost openldap]$ sudo cat /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{-1\}frontend.ldif
# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
# CRC32 7eeb2ffa
dn: olcDatabase={-1}frontend
objectClass: olcDatabaseConfig
objectClass: olcFrontendConfig
olcDatabase: {-1}frontend
structuralObjectClass: olcDatabaseConfig
entryUUID: b4bdf64e-b215-103a-90b2-1f89b5f560bc
creatorsName: cn=config
createTimestamp: 20201103114442Z
olcRequires: authc
entryCSN: 20201103141650.873590Z#000000#000#000000
modifiersName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
modifyTimestamp: 20201103141650Z

三、验证openldap匿名访问

通过上面配置后,现在我们再来通过ldapadmin工具,验证openldap是否还可以被匿名访问。

图片2

-------------本文结束感谢您的阅读-------------