精华内容
下载资源
问答
  • linux中/etc/pam.d/system-auth文件详解

    万次阅读 2019-07-01 13:41:20
    密码设置及登陆控制文件位置:/etc/pam.d/system-auth, 示例文件内容如下: auth required pam_securetty.so auth required pam_unix.so shadow nullok auth required pam_nologin.so account required pam_unix....

    密码设置及登陆控制文件位置:/etc/pam.d/system-auth,
    示例文件内容如下:

    auth      required  pam_securetty.so
    auth      required  pam_unix.so shadow nullok
    auth      required  pam_nologin.so
    account   required  pam_unix.so
    password  required  pam_cracklib.so retry=3
    password  required  pam_unix.so shadow nullok use_authtok
    session   required  pam_unix.so
    

    三个auth都会用来进行登陆检查,即使第一个模块失败,用来防止用户知道在哪个过程失败,主要目的是防止攻击。
    auth 组件:认证接口,要求并验证密码
    account组件:检测是否允许访问。检测账户是否过期或则在末端时间内能否登陆。
    password组件:设置并验证密码
    session组件:配置和管理用户sesison。


    required:该模块必须success才能进行继续。即使失败用户也不会立刻获知,直到所有相关模块完成。
    requisite:该模块必须success才能使认证继续进行。
    suffifient:如果失败则忽略。
    optinal:忽略结果,不管是否失败。

    auth      required  pam_securetty.so
    

    确保如果用户尝试以 root 身份登录, 则用户登录的 tty 将列在/etc/securetty 文件中, 如果该文件存在的话。

    auth      required  pam_unix.so shadow nullok
    

    提示登陆用户输入密码然后根据/etc/passwd中保存的对应密码进行验证,如果/etc/shadow存在的话。pam_unis.so模块会自动检测并使用密码验证用户。

    auth      required  pam_nologin.so
    

    认证最后的步骤,验证/etc/nologin文件是否存在,如果nologin存在并且用户身份不是root,则认证失败。

    account   required  pam_unix.so
    

    该模块执行必要的账户检验。如果enable shadow passwords,pam_unix.so模块会检验账号是否已经过期或则在宽限的时间内改过密码。

    password  required  pam_cracklib.so retry=3
    

    如果密码过期,pam_cracklib.so要求一个新密码,如果新密码复杂度不满足不要,会在给用户两次机会重新输入密码强度够的密码。一共三次。pam_cracklib.so支持的选项如下:
    minlen=N:新密码的最小长度
    dcredit=N:当N>0时表示新密码中数字出现的最多次数;当N<0时表示新密码中数字出现最少次数;
    ucredit=N: 当N>0时表示新密码中大写字母出现的最多次数;当N<0时表示新密码中大写字母出现最少次数;
    lcredit=N: 当N>0时表示新密码中小写字母出现的最多次数;当N<0时表示新密码中小写字母出现最少次数;
    ocredit=N:当N>0时表示新密码中特殊字符出现的最多次数;当N<0时表示新密码中特殊字符出现最少次数;
    maxrepeat=N:拒绝包含多于N个相同连续字符的密码。 默认值为0表示禁用此检查
    maxsequence=N:拒绝包含长于N的单调字符序列的密码。默认值为0表示禁用此检查。实例是'12345'或'fedcb'。除非序列只是密码的一小部分,否则大多数此类密码都不会通过简单检查。
    enforce_for_root: 如果用户更改密码是root,则模块将在失败检查时返回错误。默认情况下,此选项处于关闭状态,只打印有关失败检查的消息,但root仍可以更改密码。不要求root用户输入旧密码,因此不会执行比较旧密码和新密码的检查。

    password  required  pam_unix.so shadow nullok use_authtok
    

    如果需要更改用户的密码,则必须由pam_unix.so模块来操作。
    shadow标识:当更新用户密码的时候创建shadow passwords
    nullok标识:用户可以从空密码更改他们的密码否则空密码视为账户锁定。
    user_authok标识:禁用请求新密码。接受任何由前一个功能模块创建的密码,但是改密码必须交由pam_cracklib.so检测。

    session required pam_unix.so
    

    pam_unix.so session组件,在/var/log/messages当中记录用户名和服务类型

    展开全文
  • 前言 对passwd做了些完善,给同事测试,说...去看了下passwd检查口令安全性的实现,果真没有读取/etc/pam.d/system-auth的内容…,只读取了etc/login.defs. 具体检查在obscure.c::simple()函数中, 看名字就知道ob...

    前言

    对passwd做了些完善,给同事测试,说不好使。原因是/etc/pam.d/system-auth中配置的策略项不好使。
    这不是埋汰gnu那帮大神么 ?

    去看了下passwd检查口令安全性的实现,果真没有读取/etc/pam.d/system-auth的内容…,只读取了etc/login.defs.
    具体检查在obscure.c::simple()函数中, 看名字就知道obscure.c是检查对象安全的。
    simple()函数里面写死的判断,大神们还加了注释,说如果口令如果小于8位,必须有2种类型(数字,大写,小写,特殊字符)的字符.

    /*
    	 * The scam is this - a password of only one character type
    	 * must be 8 letters long.  Two types, 7, and so on.
    	 */
    

    其实口令至少要有多长,已经在etc/login.defs做了限制,已经检查了.
    进行了修正, 要满足至少3种类型(数字,大写,小写,特殊字符)的字符才算合规。

    修正后的代码

    /*
     * a nice mix of characters.
     */
    
    static bool simple (unused const char *old, const char *new)
    {
    	bool digits = false;
    	bool uppers = false;
    	bool lowers = false;
    	bool others = false;
    	int size;
    	int i;
    
    	for (i = 0; '\0' != new[i]; i++) {
    		if (isdigit (new[i])) {
    			digits = true;
    		} else if (isupper (new[i])) {
    			uppers = true;
    		} else if (islower (new[i])) {
    			lowers = true;
    		} else {
    			others = true;
    		}
    	}
    
    	// 至少有3种情况才合格
    	size = 0;
    	if (digits) {
    		size++;
    	}
    
    	if (uppers) {
    		size++;
    	}
    
    	if (lowers) {
    		size++;
    	}
    
    	if (others) {
    		size++;
    	}
    
    	return (size < 3); // return true is password too simple
    
    	/*
    	 * The scam is this - a password of only one character type
    	 * must be 8 letters long.  Two types, 7, and so on.
    	 */
    
    	/*
    	size = 9;
    	if (digits) {
    		size--;
    	}
    	if (uppers) {
    		size--;
    	}
    	if (lowers) {
    		size--;
    	}
    	if (others) {
    		size--;
    	}
    
    	if (size <= i) {
    		return false;
    	}
    	*/
    
    	// return true;
    }
    
    
    展开全文
  • Linux下/etc/pam.d/system-auth文件内容

    千次阅读 2019-04-25 12:22:16
    [root@server1 ~]# vim /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 pam_env.so auth ...
    [root@server1 ~]# vim /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      pam_env.so   
    auth        sufficient    pam_unix.so nullok try_first_pass   
    auth        requisite     pam_succeed_if.so uid >= 1000 quiet_success
    auth        required      pam_deny.so
    
    account     required      pam_unix.so
    account     sufficient    pam_localuser.so
    account     sufficient    pam_succeed_if.so uid < 1000 quiet
    account     required      pam_permit.so
    
    password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
    password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
    password    required      pam_deny.so
    
    session     optional      pam_keyinit.so revoke
    session     required      pam_limits.so
    -session     optional      pam_systemd.so
    session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
    session     required      pam_unix.so
    
    
    上面文件中内容的相应解释:
    1、第一组内容:
    
    (1)auth        required      pam_env.so        
    //登录后的环境变量。required表示一个错误则全返回错误,只不过最后返回错误
    
    (2)auth        sufficient    pam_unix.so nullok try_first_pass   
    //验证用户密码的有效性。如果使用nullok参数,用户不输入密码就可以获得系统提供的服务。同时,也允许用户密码为空时更改用户密码。
    try_first_pass尝试在提示用户输入密码前,使用前面一个堆叠的auth模块提供的密码认证用户。sufficient表示如果该模块执行成功则跳过其他所有模块返回结果。
    
    (3)auth        requisite     pam_succeed_if.so uid >= 1000 quiet_success   
    //允许uid大于1000的用户在通过密码验证的情况下登录。requisite表示执行错误则立即返回
    
    (4)auth        required      pam_deny.so
     //对所有不满足上述任意条件的登录请求直接拒绝。required表示一个错误则全返回错误,只不过最后返回错误
    
    2、第二组内容:
    
    (1)account     required      pam_unix.so
     //主要执行建立用户帐号和密码状态的任务,然后执行提示用户修改密码,用户采用新密码后才提供服务之类的任务。required表示一个错误则全返回错误,只不过最后返回错误
    
    (2)account     sufficient    pam_localuser.so
    //要求将用户列于 /etc/passwd 中。sufficient表示如果该模块执行成功则跳过其他所有模块返回结果。
    
    (3)account     sufficient    pam_succeed_if.so uid < 1000 quiet
     //对用户的登录条件做一些限制,表示允许uid大于1000的用户在通过密码验证的情况下登录。sufficient表示如果该模块执行成功则跳过其他所有模块返回结果。
    
    (4)account     required      pam_permit.so
     //required表示一个错误则全返回错误,只不过最后返回错误
    
    3、第三组内容:
    
    (1)password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
     //对用户密码提供强健性检测。requisite表示执行错误则立即返回
    
    (2)password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
    //让用户更改密码的任务。sufficient表示如果该模块执行成功则跳过其他所有模块返回结果。
    
    (3)password    required      pam_deny.so
     //对所有不满足上述任意条件的登录请求直接拒绝。required表示一个错误则全返回错误
    
    4、第四组内容:
    
    (1)session     optional      pam_keyinit.so revoke
    //表示当用户登录的时候为其建立相应的密钥环,并在用户登出的时候予以撤销。optional表示即便该行所涉及的模块验证失败用户仍能通过认证
    
    (2)session     required      pam_limits.so
     //限制用户登录时的会话连接资源,相关pam_limit.so配置文件是/etc/security/limits.conf,默认情况下对每个登录用户都没有限制。required表示一个错误则全返回错误,只不过最后返回错误
    
    (3)-session     optional      pam_systemd.so
    
    
    (4)session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
     //success=1时执行本行。default=ignore用来设置上面的返回值是无法达的行为时,那么这个模块的返回值将被忽略,不会被应用程序知道。对用户的登录条件做一些限制
    
    (5)session     required      pam_unix.so
    //记录用户名和服务名到日志文件的工作,只不过最后返回错误

     

    展开全文
  • 修改/etc/pam.d/system-auth后无法登录ssh

    千次阅读 2016-04-29 09:20:00
    1、等保加固/etc/pam.d/system-auth后...应在/etc/pam.d/system-auth文件中配置:auth required /lib/security/pam_tally.so onerr=fail no_magic_root account required /lib/security/pam_tally.so deny=5 no...

     

    1、等保加固/etc/pam.d/system-auth后无法登录ssh 
    应在/etc/pam.d/system-auth文件中配置:auth required /lib/security/pam_tally.so onerr=fail no_magic_root account required /lib/security/pam_tally.so deny=5 no_magic_root reset(建议普通用户设置为5次,root用户设置为30次)
     
     
    原因:在redhat版本中添加该配置参数
    account required /lib/security/pam_tally.so deny=5 no_magic_root reset导致的;





    展开全文
  • 修改配置文件:/etc/pam.d/system-auth auth required pam_env.so 登陆后的环境变量 auth sufficient pam_fprintd.so 指纹认证 auth sufficient pam_unix.so nullok try_first...
  • 密码设置及登陆控制文件位置:/etc/pam.d/system-auth 1. Linux中pam模块 Linux-PAM(linux可插入认证模块)是一套共享库,使本地系统管理员可以随意选择程序的认证方式。换句话说,不用重新编译一个包含PAM功能的应用...
  • auth required pam_env.so //登录后的环境变量。required表示一个错误则全返回错误,只不过最后返回错误 auth sufficient pam_fprintd.so //指纹认证。sufficient表示如果该模块执行成功则跳过其他所有模块...
  • 该模块执行必要的账户检验。如果enable shadow passwords,pam_unix.so模块会检验账号是否已经过期或则在宽限的时间内改过密码。 password required pam_cracklib.so retry=3 ...
  • auth required pam_env.so 登陆后的环境变量 auth sufficient pam_fprintd.so 指纹认证 auth sufficient pam_unix.so nullok try_first_pass 验证用户密码有效性 auth ...
  •  在linux操作系统中, /etc/passwd文件中的每个用户都有一个对应的记录行,记录着这个用户的一下基本属性。该文件对所有用户可读。   而/etc/shadow文件正如他的名字一样,他是passwd文件的一个影子,/etc/shadow...
  • PAM(Pluggable Authentication Modules)是由Sun提出的一种认证机制。它通过提供一些动态链接库和一套统一的API,将系统提供的服务 和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配置不同的...
  • 五、修改/etc/security/limits.conf和 /etc/pam.d/login和/etc/profile   这个在OCM环境已经配置好。 参考官方文档:http://docs.oracle.com/cd/B19306_01/install.102/b14203/prelinux.htm To ...
  • PAM(Pluggable Authentication Modules )是由Sun提出的一种认证机制。它通过提供一些动态链接库和一套统一的API,将系统提供的服务 和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配置不同...
  • auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so被删除。 官方不再限制用户安全登陆模式,但是出于安全考虑,同样可以继续使用 例如: #%PAM-1.0 auth [user_unknown=ignore ...
  • 昨天有台服务器scrt死活登录不上,今天去机房一看,连tty也登不进,无奈只好用单用户模式了,进系统一看/etc/pam.d/login和sshd俩文件都不见了!唉……被搞了,而且很明显。。 转载于:...
  • PAM(Pluggable Authentication Modules )是由Sun提出的一种认证机制。它通过提供一些动态链接库和一套统一的API,将系统提供的服务 和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配置...
  • /etc/pam.d 与 /etc/security

    千次阅读 2013-11-24 21:55:14
    PAM(Pluggable Authentication Modules )是由Sun提出的一种认证机制。它通过提供一些动态链接库和一套统一的API,将系统提供的服务 和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配置...
  • 参考一下 https://www.cnblogs.com/qtong1992/p/5920177.html
  • ELK环境搭建时,发现需要修改ulimit 设置,否则就会报错。 而修改/etc/security/limits.conf 时却一直不能生效 总结下来发现要使limits.conf生效,需要设置 .../etc/pam.d/system-auth /etc/pam.d/sshd 需要有以...
  • These tests require a suitable file /etc/pam.d/other; if necessary, create such a file containing, e.g., these five lines (not indented) #%PAM-1.0 auth required pam_deny.so account required pam_...
  • Linux文件-/etc/login.defs

    2020-03-26 11:41:07
    /etc/login.defs 文件用于在Linux创建用户时,对用户的一些基本属性做默认设置,例如指定用户 UID 和 GID 的范围,用户的过期时间,密码的最大长度,等等。 需要注意的是,该文件的用户默认配置对 root 用户无效...
  • 1、系统范围内限定资源使用 通常只需要修改/etc/security/limits.conf,增加相应数据行,重新登录下用户即可解决,具体如下所...如需更细粒度的限定资源使用,可在/etc/security/limits.d/*-nproc.conf对指定用户(以t
  • 我们使用CentOS系统,在部署新的服务经常会遇到 打开最大文件数限制 too many open files的警告,通常我们只需要修改/etc/security/limits.conf该文件,但是在CentOS 6中会遇到麻烦。 当/etc/security/limits.conf...
  • /etc/security/limits.conf的相关说明 通过ulimit-n命令可以查看Linux系统里打开文件描述符的最大值,一般缺省值是1024,对一台繁忙的服务器来说,这个值偏小,所以有必要重新设置linux系统里打开文件描述符的...
  • /etc/login.defs 是设置用户帐号限制的文件。该文件里的配置对root用户无效。/etc/login.defs 文件用于在Linux创建用户时,对用户的一些基本属性做默认设置,例如指定用户 UID 和 GID 的范围,用户的过期时间,密码...
  • /etc/vsftpd/vsftpd.conf文件详解

    千次阅读 2018-09-02 23:51:51
    /etc/vsftpd/vsftpd.conf文件详解,分好类,方便大家查找与学习 #################匿名权限控制############### anonymous_enable=YES #是否启用匿名用户 no_anon_password=YES #匿名用户...
  • VSFTPD全攻略(/etc/vsftpd/vsftpd.conf文件详解) 版权所有:http://blog.itpub.net/10201716/viewspace-742712/ #################匿名权限控制############### anonymous_enable=YES #是否启用匿名用户...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,900
精华内容 3,560
关键字:

/etc/pam.d/system-auth