IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 麒麟KylinOS Server修改密码复杂度 -> 正文阅读

[系统运维]麒麟KylinOS Server修改密码复杂度

许多组织要求用户密码遵守一组非常特定的规则。比如有多少个角色,什么类型的角色,有多少个不同类型的角色等等。在KylinOS Linux上,我们可以通过PAM强制执行这些安全策略或推荐的实践需求。在前面的部分中,PAM type之一是password,当用户试图通过一个打开的应用程序会话更改password时,将使用password规则。下面是一些来自/etc/pam.d文件的密码类型规则示例:

[ root @demo -]# grep ^password /etc/pam.d/sshd #ssh远程登录

password????? include password-auth

[root @demo -]# grep ^password /etc/pam.d/login? #本地登录

password ??? include system-auth

[ root@demo - ] # grep ^password /etc/pam.d/gdm #图形化登录

password ??? include system-auth

从上面的示例中可以注意到,这三种类型的登录会话PAM条目都包含对system-authpassword-auth的调用,用于控制这些类型会话中的密码更改行为。

如果我们看一下password-authsystem-auth中的密码规则,我们可以看到它们是相同的。

[root @demo -]# grep ^password /etc/pam.d/system-auth

# requisite必要条件,通过pam_cracklib.so模块校验密码复杂度,密码复杂度校验通过,继续往后执行。

password????? requisite ???? pam_cracklib.so try_first_pass retry=3 type=

# 密码复杂度验证通过后,以pam_unix.so模块验证密码的加密以及是否写入到/etc/shadow文件中

password ??? sufficient?????? pam_unix.so sha512 shadow nullok try_first_pass use_authok

# 直接无条件拒绝,与之对应的是pam_permit.so

password????? required??????? pam_deny.so

Note

system-authpassword-auth是两个不同的文件,这意味着对其中一个文件所做的更改不会传播或自动填充到另一个文件中。这些文件是单独存在的,因此如果管理员的更改影响了使用其中一个或另一个文件的应用程序,他们可以将更改限制为只影响他们希望的应用程序。如果管理员希望所有应用程序使用相同的更改,则必须更新这两个文件。

回想一下,PAM规则是自上而下地解析和执行的。在用户试图更改密码时,调用的第一个PAM模块是必要的pam_cracklib.so条目,pam_cracklib.so模块将接受用户提供的请求的新密码,并根据字典(其中包括一个实际的字典,还有用于检查模式和容易猜到的组合的项目)。默认情况下,该模块将期望密码长于6个字符,以及大小写字母、数字和其他字符的组合。因为这个模块是用一个requisite控制器调用的,如果认为密码不符合要求,则密码更改将立即停止,并将控制返回给发起PAM调用的应用程序;不再检查任何PAM规则。

因为pam_unix.so调用是用一个sufficient控制器编写的,如果它成功地更新了用户的密码,PAM将关闭并将控制权传递回调用它的应用程序。

还有最后一条规则,required pam_deny.so条目。只有当sufficient pam_unix.so规则由于某种原因未能更新用户的密码时,才会检查该规则,pam_deny.so总是返回一个失败的结果,运行此模块不可能实现成功返回。其思想是,我们需要有一个规则,它将导致PAM在出现故障时关闭,以便应用程序知道在对PAM的调用中出现了错误。由于pam_deny.so规则是required,因此该规则失败将向试图更改用户密码的应用程序返回一个整体PAM失败。

既然我们已经讨论了用户试图更改密码时的整个过程,那么让我们特别关注通过PAM对这些库的调用设置密码要求的任务。具体来说,PAMpam_cracklib.so的调用。

pam_cracklib.so驻留在password-authsystem-auth中,它使用几个参数try_first_pass编写,这允许pam_cracklib.so使用调用PAM的应用程序从用户那里收集的密码;Retry =3,用户有三次机会提供密码,使其能够在pam_cracklib.so返回失败结果之前通过库的检查;以及type=,这将导致在新密码提示符中显示的类型字符串为空。在此配置中,请求将新密码尝试显示为new password的提示符。设置type=department将导致提示符显示为New department Password

对于pam_cracklib.so,我们还可以使用许多其他参数,其中一些参数可以用来规定用户的密码需要多大的长度和复杂度。

pam_cracklib.so控制密码长度和复杂度的参数

pam_cracklib.so参数

Description

minlen

密码所需的最小长度。默认情况下,所有字符的总长度分数为1。然而,通过?credit调整,管理员可以给某些字符类型更多的值,从而需要更少的字符来满足相同的长度。

lcredit

密码长度由小写字母组成。如果将该值设置为负数,则它表示可接受密码中小写字符的数量。

ucredit

大写字母是密码长度的一部分。

如果将该值设置为负数,则它表示可接受密码中需要的大写字符的数量。

dcredit

数字字符的数量决定了密码的长度。如果将该值设置为负数,则它表示可接受密码中所需的数字字符数。

ocredit

其他字符对密码长度的要求。其他字符是符号和所有不包括小写、大写和数字的字符。如果将该值设置为负数,则它表示可接受密码中所需的其他字符的数量。

minclass

在建议的密码中必须存在的不同类的最小数量。类有:小写、大写、数字和其他。

有许多不同的方法可以将不同的长度和复杂性要求与pam_cracklib.so组合在一起,其中大部分取决于您的计算机需要遵守的安全策略或密码策略。例如,如果策略要求密码包含一个非alpha数字,一个数字,并且长度不少于8个字符,pam_cracklib.so可以读为:

ocreditdcredit值要求在密码中出现这两种字符中的一种。minlen设置要求至少提供8个字符(每个值1)

如果密码要求不是那么严格,可以通过提供更多的积分来鼓励用户使用非字母字符。

在本例中,要求用户输入最小分数为12的密码,但是大写和小写字符只为所需分数贡献1分,而使用其他字符或数字将为分数贡献2分。

pam_cracklib的替代方案。pam_passwdqc.so是由pam_passwdqc RPM包提供的,pam_passwdqc.so将取代PAM配置文件中的pam_cracklib.so。它还可以设置密码的最小长度,以及需要多少个不同类别的字符。然而,与pam_cracklib.so不同的是,pam_passwdqc.so不提供“dictionary”检查,以根据字典或各种容易被认为是可猜的模式验证所请求的新密码。使用pam_passwdqc.so的一个示例将使用如下规则替换现有的pam_cracklib.so规则:

在上面的示例中,retry=3允许用户尝试三次设置符合策略的密码,然后pam_passwdqc.so无法通过requisite?检查并向调用PAM的应用程序返回失败。

enforce =users表示此模块的需求应该应用于非root用户。如果没有指定enforce,默认的策略将应用到每个人,包括root

min =disabled, disabled,disabled,12,8可能是最有趣的参数。它表明,在密码只包含一个不同字符类的情况下,禁止强制设置密码长度(例如,这意味着不能设置所有小写字符的密码)。包含两个不同字符类的密码被禁用(大写和小写的密码,或者只有小写和数字的密码)。基于最少字数的密码短语的密码也被禁用。然而,密码允许包含三个不同的字符类,并要求长度至少为12个字符(1twothreefour! 符合此策略,因为它是数字、其他字符、小写字母的组合,长度小于或等于12个字符)。最后,使用所有四类字符的密码必须至少为8个字符(@1Foo@1Foo是符合此策略的密码)。值得注意的是,上面两个可接受的密码示例在pam_cracklib.so中是不允许的,因为它们使用了容易猜到的模式,或者重复了太多相同的字符,即字典检查会失败。

举例:

1. 将系统上的密码要求设置为至少需要一个符号和一个数字。另外,密码长度至少为12个字符。这些要求应该会影响在计算机的控制台上以及通过网络会话(ssh连接)执行的密码更改。

调整/etc/pam.d/system-auth/etc/pam.d/password-auth中现有的pam_cracklib.so行,使其读取:

2. 通过将student用户的密码设置为:

i<3mylittleponies - should work

Llb3r8yourself - should not work

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-05-11 16:45:38  更:2022-05-11 16:47:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 15:51:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码