| |
|
开发:
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-auth或password-auth的调用,用于控制这些类型会话中的密码更改行为。 如果我们看一下password-auth或system-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
回想一下,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对这些库的调用设置密码要求的任务。具体来说,PAM对pam_cracklib.so的调用。 pam_cracklib.so驻留在password-auth和system-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组合在一起,其中大部分取决于您的计算机需要遵守的安全策略或密码策略。例如,如果策略要求密码包含一个非alpha数字,一个数字,并且长度不少于8个字符,pam_cracklib.so可以读为: ocredit和dcredit值要求在密码中出现这两种字符中的一种。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 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |