Kerberos如何配置弱口令字典

举报
小菜鸟2016 发表于 2021/06/26 14:23:39 2021/06/26
【摘要】 1      弱口令字典FusionInsight Manager提供统一的弱口令校验功能和弱口令字典维护功能,在用户设置密码时进行弱口令校验,禁止使用弱口令字典中的字符串。当使用了弱口令密码,系统会提示如下图所示的错误。2      Kerberos配置关于kerberos弱口令字典如何配置,需...

1      弱口令字典

FusionInsight Manager提供统一的弱口令校验功能和弱口令字典维护功能,在用户设置密码时进行弱口令校验,禁止使用弱口令字典中的字符串。

当使用了弱口令密码,系统会提示如下图所示的错误。


2      Kerberos配置

关于kerberos弱口令字典如何配置,需要先了解kerberos配置文件kdc.conf和krb5.conf。

kerberos服务端配置主要在 kdc.conf 文件中。该文件在 Red Hat/CentOS 系统中的默认位置/var/kerberos/krb5kdc/。默认的kerberos客户端配置文件通常被命名为krb5.conf,在UNIX/Linux系统的 /etc/ 目录下,也可以通过设置环境变量KRB5_CONFIG修改krb5.conf默认路径。客户端应用(包括 kinit 工具)需要使用 Kerberos 时,随时读取krb5.conf。

当前华为云未使用开源kerberos,所以,kerberos组件未存放于默认路径,且初始krb5.conf和kdc.conf共用模板。在此文中重点介绍krb.conf。

krb5.conf文件包含kerberos配置信息,包括KDC和admin服务器位置,当前领域和kerberos应用的默认值,以及主机名到kerberos领域的映射。

华为云当前krb5.conf配置文件如下:


该例中有几个不同的节。第一节是kdcdefaults,包含的配置适用于下面列出的所有域,除非某个域的配置包含同样配置项的值。配置项 kdc_ports和kdc_tcp_ports 分别指定了 KDC 监听的 UDP 和 TCP 端口;第二节是libdefaults,包括通用的默认配置信息。第三节是realms,包含了使用该KDC作为服务器的所有域。一个 KDC 可以支持多个域;第四节是 logging,其含义不言而喻。它定义了会产生日志的各种 Kerberos 组件的日志文件存放位置。

[libdefaults]

default_realm

该字段定义了没有提供任何域的情况下应该使用什么Kerberos域。若是没有设置该值,在调用程序,比如kint时,必须为每个kerberos对象都指定一个域。

udp_preference_limit

该项指定了UDP包的最大值,超过该值后将切换为TCP。要想强制使用 TCP,应将该值设为 1。

dns_lookup_kdc

可以用DNS寻找KDC的位置。

dns_lookup_realm

可以用DNS指定使用哪个Kerberos域。

[realms]

kdc

为该领域运行KDC的主机的名称或地址。可以包括一个可选的端口号,与主机名用冒号分隔。如果名称或地址包含冒号(例如,如果它是IPv6地址),请将其括在方括号中,以将冒号与端口分隔符区分开来。要使您的计算机能够与每个域的KDC通信,必须在配置文件的每个领域子节中指定此标记的值,或者必须有DNS SRV记录指定KDC。

admin_server

标识正在运行管理服务器的主机。通常,这是主Kerberos服务器。必须为此标记指定一个值,才能与领域的kadmind服务器通信。

kpasswd_server

指向执行所有密码更改的服务器。如果没有这样的条目,将查询DNS(除非dns_lookup_kdc禁止)。最后,将尝试admin_server主机上的端口464。

kpasswd_port

指定kadmind守护程序侦听此领域的密码更改请求的端口。kpasswd_listen条目中指定的端口号将覆盖此端口号。密码更改请求默认分配的端口为464。

database_module

此关系指示在[dbmodules]下可加载数据库使用的数据库特定参数的配置节的名称。默认值为域名。如果此配置节不存在,则所有数据库参数都将使用默认值。

kadmind_port

指定kadmind守护程序要侦听此领域的端口。kadmind_listen条目中指定的端口号将覆盖此端口号。kadmind默认分配的端口为749。

kadmind_listen

指定kadmind程序的kadmin RPC监听地址或者端口。每个条目可以是接口地址、端口号或由冒号分隔的地址和端口号。如果地址包含冒号,请将其括在方括号中。如果未指定地址,则使用通配符地址。如果kadmind无法绑定到任何指定的地址,它将无法启动。默认值是绑定到kadmind_port中指定的端口或标准kadmin端口(749)。

supported_enctypes

该项指定了 KDC 支持的所有加密类型。与 KDC 交互时,客户端必须支持该项列出的加密类型中的至少一种。谨慎使用 DES 等弱加密类型,因为这种加密很容易被攻破。

acl_file

该项指定了管理服务用于进行访问控制的文件位置。acl_file所在位置(通常是 kadm5.acl 文件)用于控制哪些用户具有管理kerberos数据库的权限。kerberos数据库管理员由两条不同但相关的组件控制:kadmin.local和kadmin。前者是允许KDC服务器的root用户修改kerberos数据库的实用工具,顾名思义,它只能够由Kerberos 数据库所在机器的root用户执行。想要远程管理kerberos数据库的管理员必须使用kadmin服务器。kadmin服务器是一个允许远程连接并管理kerberos数据库的守护进程,这也是 kadm5.acl 文件发挥作用的地方。kadmin工具使用kerberos认证,而kadm5.acl文件则指定了哪些UPN被允许执行特权功能。

dict_file

该项指定了包含不允许用作密码的单词的文件,这些密码是容易被破解/猜解的。文件要求每一行只有一个字符串,无额外空格。若principal没有指定密码策略,则不会执行密码字典校验。

key_stash_file

指定主密钥存储的位置(通过kdb5_util stash)。默认值为LOCALSTATEDIR/krb5kdc/.k5.REALM,其中REALM是Kerberos领域。

3      弱口令字典配置

kdc.conf和krb5.conf文件中指定dict_file路径,并将易破解密码按照文件要求存放于dict_file中,修改密码时就会校验,是否是常用密码。

Password quality interface (pwqual)接口允许模块控制用户更改密码时允许的密码。有关pwqual接口的详细说明,请参见头文件<krb5/pwqual_plugin.h>。主要的pwqual方法是check,它接收密码作为输入,并返回成功(0)或KADM5_PASS_Q_失败代码,具体取决于是否满足密码策略。常见的错误码有:KADM5_PASS_Q_TOOSHORT(密码长度太短),KADM5_PASS_REUSE(密码重复使用次数校验),KADM5_PASS_Q_CLASS(密码组成字符类型校验),KADM5_PASS_Q_DICT(弱口令字典密码)KADM5_PASS_TOOSOON

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。