• 如何在 Linux 上设置密码策略


    对于用户账户的管理是系统管理员最重要的工作之一。尤其是,对于任何自称安全的linux系统,最受关心的应该是密码安全问题。在本教程中,我将介绍如何在linux上设置严密的密码策略。
     
    我假设你的linux系统是最近的linux发行版,那么你正在使用的应该是PAM(可插拔认证模块)。
     
    1.准备
    安装一个PAM模块来启用cracklib支持,这可以提供额外的密码检查功能。
    在Debin,Ubuntu或者Linux Mint使用命令:
    sudo apt-get install libpam-cracklib  
    这个模块在CentOS,Fedora或者RHEL默认安装了。所以在这些系统上就没有必要安装了。
     
    如要强制执行密码策略,我们需要修改/etc/pam.d这个与身份验证相关的文件。这个文件会在修改后立即生效。
     
    请注意,本教程中的密码规则只有在非root用户更改密码时强制执行。
     
    2.避免重复使用旧密码
    寻找同时包含“password”和"pam_unix.so"的行,然后再这行后面加上“remember=5”。这将防止5个最近使用过的密码被用来设置为新密码(通过将它们存放在/etc/security/opasswd文件中)。
    在Debin,Ubuntu或者Linux Mint使用命令:
     
    sudo  vi  /etc/pam.d/common-password  

    修改内容:

        password    [success=1 default=ignore]    pam_unix.so obscure sha512 remember=5  

    在Fedora,CentOS或RHEL使用命令:

    sudo  vi  /etc/pam.d/system-auth  

    修改内容:

    password   sufficient   pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=5  
    3.设置最小密码长度
    寻找同时包含“password”和“pam_cracklib.so”的一行,并在后面加上“minlen=10”。这将强行设置密码的最小密码长度为10位,其中<# of types>多少个不同类型的字符在密码中使用。有四种符号类型(大写、小写、数字和符号)。所以如果使用所有四种类型的组合,并指定最小长度为10,所允许的简单密码部分将是6位。
    在Debin,Ubuntu或者Linux Mint使用命令:
     
     
    sudo  vi  /etc/pam.d/common-password  
    修改内容:
    password   requisite    pam_cracklib.so retry=3 minlen=10 difok=3  

    在Fedora,CentOS或RHEL使用命令:

    sudo  vi  /etc/pam.d/system-auth  
    修改内容:
     
     
    password   requisite   pam_cracklib.so retry=3 difok=3 minlen=10  
    4.设置密码复杂度
    寻找同时包含“password”和“pam_cracklib.so”的一行,并在后面加上“ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1”。这将迫使你在密码中至少包括一个大写字母、两个小写字母、一个数字和一个符号。
    在Debin,Ubuntu或者Linux Mint使用命令:
     
    sudo  vi  /etc/pam.d/common-password  

    修改内容:

    password   requisite    pam_cracklib.so retry=3 minlen=10 difok=3 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1  
    在Fedora,CentOS或RHEL使用命令:
     
    sudo  vi  /etc/pam.d/system-auth  

    修改内容:

    password   requisite   pam_cracklib.so retry=3 difok=3 minlen=10 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1 
    5.设置密码的有效期
    要设置当前密码的最大有效期,就修改/etc/login.defs文件的下列变量:
     
     
    sudo  vi  /etc/login.def  
    修改内容:
     
        PASS_MAX_DAYS     150  
        PASS_MIN_DAYS     0  
        PASS_WARN_AGE     7  

    这将迫使每一位用户每半年更改一次他们的密码,并且在密码过期之前七天发送密码过期还有几天到等等的警告信息给用户(到最后甚至在用户开机登录时强制用户更改密码,不然无法进入系统(个人在linux程序设计中看到的知识,非原作者观点))。如果你想基于不同的用户使用密码期限功能,那就使用chage命令。要查看针对特别用户的密码过期策略使用的命令如下:

    sudo  chage -l  xmodulo  

    注意:xmodule是原作者在linux系统中使用的用户名。

    显示如下:
        Last password change                                    : Dec 30, 2013  
        Password expires                                        : never  
        Password inactive                                       : never  
        Account expires                                         : never  
        Minimum number of days between password change          : 0  
        Maximum number of days between password change          : 99999  
        Number of days of warning before password expires       : 7  
    默认设置中,用户的密码是不会过期的。
    为用户的xmodulo更改有限期限的命令如下:
     
    $ sudo chage -E 6/30/2014 -m 5 -M 90 -I 30 -W 14 xmodulo  

    以上命令将密码设置为在2014年6月30日过期。并且,密码更改时间间隔的最大/最小数量分别为5和90。在一个密码过期后,这个账号将被锁30天。在密码过期前14天,警告信息就会发送到对应的账户。

    下面是例子:

     转自:http://blog.csdn.net/persistvonyao/article/details/18464089

    原址:xmodulo.com/set-password-policy-linux.html

  • 相关阅读:
    nginx日志
    silverlight 双击事件
    Silverlight button 图片切换样式
    Caliburn.Micro学习笔记(一)----引导类和命名匹配规则
    关闭Outlook时最小化 dll
    wpf键盘记录器
    WPF之TreeList的实现方法(一)
    精典算法之详解 河内之塔
    精典算法之二分查找法
    指针数组和数组指针
  • 原文地址:https://www.cnblogs.com/zhongguiyao/p/8258559.html
Copyright © 2020-2023  润新知