zoukankan      html  css  js  c++  java
  • Linux 系统用户密码长度以及复杂度进行限制 PAM

    1.修改用户复杂度的2个文件

    wKiom1NOP66SThebAAAvdwO9mqQ944.jpg

    wKioL1NOP4XRuZymAAPW4JlUPAg181.jpg

    wKiom1NOP67yaMgzAAAvs_1aflk759.jpg

    wKioL1NOP4agm5dHAAOvqaLacK0183.jpg
     

    PAM服务文件

    1、# more /etc/pam.d/login 
    auth       required     pam_securetty.so
    auth       required     pam_stack.so service=system-auth
    auth       required     pam_nologin.so
    account    required     pam_stack.so service=system-auth
    password   required     pam_stack.so service=system-auth
    session    required     pam_stack.so service=system-auth
    session    optional     pam_console.so

    PAM服务文件的格式(四部分)

    Module-type control-flag module-path arguments
    Module-type: auth、account、session、password
    Control-flag:required、requisite、sufficient、optional
    eg: 
       auth         required     pam_securety.so
    auth required pam_stack.so   service=system_auth
    Module-type(属于认证里面的第一部分,主要是分配权限)
    auth:认证、授权(检查用户的名字、密码正确与否);
    account:检查用户的帐户是否到期、禁用等。
    session:控制会话
    password:控制用户修改密码过程
    Control-flag (属于认证里面的第二部分,控制标识位)
    required:必须通过此认证,否则不再往下认证下去,直接退出;
    requisite:必须通过认证,但以后还有机会,可以往下认证;
    sufficient:一经通过,后面的不再认证(只要通过这个条件则直接通过);
    optional:可选的,通不通过均可。
     
                                              常用的PAM服务文件
     
    1)、login ----    /etc/pam.d/login    2)、ipop3d ---  /etc/pam.d/pop
    3)、ftp  ----  /etc/pam.d/ftp   或   vsftpd -- /etc/pam.d/vsftpd
    4)、sshd--- /etc/pam.d/sshd   5)、su --- /etc/pam.d/su   6)、imap--- /etc/pam.d/imcp
                                               
                                                            认证堆栈
     

    ①、auth              required        pam_securety.so
    ②、auth              required        pam_stack.so         service=system-auth
    ③、auth              required        pam_nologin.so

    认证堆栈
    如果号认证结束,则在后面有个结束标志,转到下一个认证即号认证,依次类推,相同类型的认证会放在一起进行。
    其中pam_stack.so调用一个子模块服务,通过这个服务再调用一个第三方的模块进行认证授权。
                                                    常用PAM模块
    1)、pam_access.so    控制访问者的地址与帐号的名称
    2)、pam_listfile.so     控制访问者的帐号名称或登陆位置
    3)、pam_limits.so      控制为用户分配的资源
    4)、pam_rootok.so   对管理员(uid=0)无条件通过
    5)、pam_userdb.so   设定独立用户帐号数据库认证
    如下:

    [root@localhost root]# cd /etc/pam.d/
    [root@localhost pam.d]# more login
    #%PAM-1.0
    auth       required     pam_securetty.so
    auth       required     pam_stack.so service=system-auth
    auth       required     pam_nologin.so
    account    required     pam_stack.so service=system-auth
    password   required     pam_stack.so service=system-auth
    session    required     pam_stack.so service=system-auth
    session    optional     pam_console.so
    [root@localhost pam.d]# cd /usr/share/doc/pam-0.75/txts/
    [root@localhost txts]# ls
    pam_appl.txt               README.pam_ftp          README.pam_shells
    pam_modules.txt          README.pam_limits       README.pam_stack
    pam.txt                      README.pam_listfile      README.pam_stress
    README                     README.pam_localuser   README.pam_tally
    README.pam_access    README.pam_mail         README.pam_time
    README.pam_chroot    README.pam_nologin     README.pam_timestamp
    README.pam_console   README.pam_permit      README.pam_unix
    README.pam_cracklib   README.pam_pwdb       README.pam_userdb
    README.pam_deny      README.pam_rhosts      README.pam_warn
    README.pam_env        README.pam_rootok     README.pam_wheel
    README.pam_filter      README.pam_securetty  README.pam_xauth
    [root@localhost txts]# more README.pam_securetty
    pam_securetty:
            Allows root logins only if the user is logging in on a
            "secure" tty, as defined by the listing in /etc/securetty

            Also checks to make sure that /etc/securetty is a plain
            file and not world writable.

            - Elliot Lee , Red Hat Software.
                    July 25, 1996.
    [root@localhost txts]# more /etc/securetty
    console
    vc/1
    vc/2
    vc/3
    vc/4
    vc/5
    vc/6
    vc/7
    vc/8
    vc/9
    vc/10
    vc/11
    tty1
    tty2
    tty3
    tty4
    tty5
    tty6
    tty7
    tty8
    tty9
    tty10
    tty11
    [root@localhost txts]# more /etc/pam.d/system-auth
    #%PAM-1.0
    # This file is auto-generated.
    # User changes will be destroyed the next time authconfig is run.
    auth        required      /lib/security/$ISA/pam_env.so
    auth        sufficient    /lib/security/$ISA/pam_unix.so likeauth nullok
    auth        required      /lib/security/$ISA/pam_deny.so

    account     required      /lib/security/$ISA/pam_unix.so

    password    required      /lib/security/$ISA/pam_cracklib.so retry=3 type=
    password    sufficient    /lib/security/$ISA/pam_unix.so nullok use_authtok md5 shadow
    password    required      /lib/security/$ISA/pam_deny.so

    session     required      /lib/security/$ISA/pam_limits.so
    session     required      /lib/security/$ISA/pam_unix.so
    [root@localhost txts]# pwd
    /usr/share/doc/pam-0.75/txts
    [root@localhost txts]# more README.pam_nologin
    # $Id: README,v 1.1.1.1 2000/06/20 22:11:46 agmorgan Exp $
    #

    This module always lets root in; it lets other users in only if the file
    /etc/nologin doesn't exist.  In any case, if /etc/nologin exists, it's
    contents are displayed to the user.

    module services provided:

            auth            _authentication and _setcred (blank)

    Michael K. Johnson
    [root@localhost txts]# touch /etc/nologin
    [root@localhost txts]# useradd leekwen
    [root@localhost txts]# passwd leekwen
    Changing password for user leekwen.
    New password:
    Retype new password:
    passwd: all authentication tokens updated successfully.
    [root@localhost txts]# ssh leekwen@192.168.0.188
    leekwen@192.168.0.188's password:
    Permission denied, please try again.
    leekwen@192.168.0.188's password:
    Permission denied, please try again.
    leekwen@192.168.0.188's password:
    Permission denied (publickey,password,keyboard-interactive).
    [root@localhost txts]# rm /etc/nologin
    rm: remove regular empty file `/etc/nologin'? y
    [root@localhost txts]# ssh leekwen@192.168.0.188
    leekwen@192.168.0.188's password:
    [leekwen@localhost leekwen]$ pwd
    /home/leekwen
    [leekwen@localhost leekwen]$ exit
    logout
    Connection to 192.168.0.188 closed.
    [root@localhost txts]# cd /etc/pam.d/
    [root@localhost pam.d]# more login
    #%PAM-1.0
    auth       required     pam_securetty.so
    auth       required     pam_stack.so service=system-auth
    auth       required     pam_nologin.so
    account    required     pam_stack.so service=system-auth
    password   required     pam_stack.so service=system-auth
    session    required     pam_stack.so service=system-auth
    session    optional     pam_console.so 
    [root@localhost pam.d]# tty
    /dev/pts/2
    [root@localhost pam.d]# ls /dev/tty1
    /dev/tty1

     

  • 相关阅读:
    TLS1.3 认证和秘钥建立握手环节的分析
    使用华为云+GitHub搭建自己的博客
    TLS1.3 握手协议的分析
    Formal Analysis of the TLS Handshake Protocol -----论文整理
    TLS1.3 握手过程特性的整理
    TLS1.3 PPT 整理
    SSL/TLS 握手协议简述
    TLS握手秘钥套件分析
    Scyther-Compromise 协议形式化安全分析如何改进协议
    HTTP 协议部分常识简介
  • 原文地址:https://www.cnblogs.com/qyy349609115/p/9066868.html
Copyright © 2011-2022 走看看