如何防止用户扩展其有效登录窗口


14

一直在为RedHat盒制定一些安全性强化程序,我想知道一旦密码过期,是否可以防止用户更改密码。

对于我们的一位客户,要求是他们只能通过临时帐户访问服务器,这意味着一旦创建了用户凭据,密码必须在4小时内过期,并且一旦密码过期,则只有root用户才能更改它。

对于第一个要求(密码在4小时后过期),我想可以通过设置passwordMaxAge = 144000来实现。但是我仍然找不到防止用户更改过期密码而不关闭密码过期的方法。

有人可以帮忙吗?


4
如果用户在4小时窗口之后保持现有的登录会话打开,可以吗?如果用户的密码已过期,则该密码将不会被踢出去。我可以将SSH会话保持打开状态数周。
Wyzard

不必依靠at / cronjobs和系统二进制文件的修改,您可能可以编写一个简单的pam模块,或者甚至那里都没有(或者您可以派生pam_time以包括更多选项)
PlasmaHH 2015年

Answers:


21

通常,密码过期用于强制用户更改其密码。听起来您想要做的就是锁定帐户,从而阻止所有登录。

我建议您做的是,在创建帐户时,还要设置一个at作业,该作业将在四个小时后锁定该帐户。

例如:

useradd temp8143
echo chage -E 0 temp8143 | at now + 4 hours

chage -E期望有效期以天为单位,因此我们通过at工作解决此问题。)


3
那是一个很好的解决方案。向我+1。
珍妮·D

2
啊,爆炸-我喜欢这个想法,以及 ; 也+1。您甚至可以执行atted操作userdel,这将具有整理所有这些临时帐户的优势,因此它们不会永远闲逛。
MadHatter

2
实际上,我认为这比我的建议要好。
珍妮·D

我认为passwd -l temp813将实现与相同的目的chage -E 0 temp8143
Nate Eldredge

5
@NateEldredge不完全是。passwd -l不会阻止ssh密钥登录或指纹登录,例如chage -E 0
迈克尔·汉普顿

24

如果从passwd命令中删除setuid位,则只有root才能使用它。这也将使用户无法在密码到期之前更改密码-否则,这可能是用户将帐户再延长四个小时的一种方式。

[jenny@finch ~] sudo chmod -s /usr/bin/passwd
[jenny@finch ~]$ passwd
Changing password for user jenny.
Changing password for jenny.
(current) UNIX password: 
New password: 
Retype new password: 
passwd: Authentication token manipulation error

根仍然可以更改任何密码:

[jenny@finch ~]$ sudo passwd jenny
Changing password for user jenny.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.

5
优雅,并且非常UNIX。向我+1。@borntohula,如果您对此感到满意,请不要忘记单击“滴答”大纲来接受此答案。
MadHatter

6
几乎可行。问题是如果passwd系统更新过,您对setuid位的删除将被撤消。
迈克尔·汉普顿

3
@MichaelHampton是的。修复例如木偶的目的。另外,不是每个人都在每次更新后检查系统中是否有新的setuid / setgid位吗?
珍妮·D

1
@JennyD-他们可能应该检查setuid / setgid位的更改,但很少这样做
沃伦(

2
@warren-该句中可能有轻微的讽刺痕迹。很小的痕迹。微小的。
珍妮·D
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.