[转]aix 密码设置基础知识

 

aix 密码设置基础知识

密码
猜测密码是系统最常遇到的攻击方法之一。因此,控制和监视您的密码限制策略是不可缺少的。
AIX 提供机制以帮助您实施更强的密码策略,例如为以下的条目建立值:
•密码可被更改之前和之后可经过的最小和最大星期数
•密码的最小长度
•选择密码时,最小可使用的字母字符个数

1.设定良好的密码
良好的密码是抵御未授权进入系统的第一道有效防线。

2.使用 /etc/passwd 文件
传统上,/etc/passwd 文件是用来记录每个拥有系统访问权的注册用户。

3.使用 /etc/passwd 文件和网络环境
在传统的网络环境中,用户必须在每个系统中有一个帐户才能获得对该系统的访问权。

4.隐藏用户名和密码
为了达到更高级别的安全性,请确保用户标识和密码在系统内是不可见的。

5.设置建议的密码选项
恰当的密码管理只有通过用户教育来实现。为提供某些额外的安全性,操作系统提供了可配置的密码限制。它们允许管理员限制用户选择的密码,并强制定期更改密码。

6.扩展密码限制
密码程序接受或拒绝密码所使用的规则(密码构成限制)可由系统管理员进行扩展,以提供特定于站点的限制。

设定良好的密码
良好的密码是抵御未授权进入系统的第一道有效防线。
符合以下条件的密码有效:
•大小写字母的混合
•字母、数字或标点符号的组合。此外,它们可以包含特殊字符,如 ~!@#$%^&*()-_=+[]{}|\;:'",.<>?/<space>
•未写在任何地方
•如果使用 /etc/security/passwd 文件,那么长度最少为 7 个字符最大 8 个字符(像 LDAP 那样使用注册表实施的认证,可以使用超出此最大长度的密码)。
•不是在字典中可查到的真实单词
•不是键盘上字母的排列模式,例如 qwerty
•不是真实单词或已知排列模式的反向拼写
•不包含任何与您自己、家庭或朋友有关的个人信息
•不与从前一个密码的模式相同
•可以较快输入,这样边上的人就不能确定您的密码
除了这些机制外,您还可以通过限定密码不可以包含可能猜测到的标准 UNIX 单词,从而进一步实施更严格的规则。该功能使用dictionlist,它要求您首先安装 bos.data 和 bos.txt 文件集。
要实现前面定义的 dictionlist,请编辑 /etc/security/users 文件中的以下行:
dictionlist = /usr/share/dict/words
/usr/share/dict/words 文件使用 dictionlist 来防止使用标准的 UNIX 单词作为密码。


使用 /etc/passwd 文件
传统上,/etc/passwd 文件是用来记录每个拥有系统访问权的注册用户。
/etc/passwd 文件以冒号分隔,它包含以下信息:
•用户名
•已加密密码
•用户标识号(UID)
•用户的组标识号(GID)
•用户全名(GECOS)
•用户主目录
•登录 shell
以下是一个 /etc/passwd 文件的示例:
root:!:0:0::/:/usr/bin/ksh
daemon:!:1:1::/etc:
bin:!:2:2::/bin:
sys:!:3:3::/usr/sys:
adm:!:4:4::/var/adm:
uucp:!:5:5::/usr/lib/uucp:
guest:!:100:100::/home/guest:
nobody:!:4294967294:4294967294::/:
lpd:!:9:4294967294::/:
lp:*:11:11::/var/spool/lp:/bin/false
invscout:*:200:1::/var/adm/invscout:/usr/bin/ksh
nuucp:*:6:5:uucp login user:/var/spool/uucppublic:/usr/sbin/uucp/uucico
paul:!:201:1::/home/paul:/usr/bin/ksh
jdoe:*:202:1:John Doe:/home/jdoe:/usr/bin/ksh
缺 省情况下,AIX&reg; 没有像 UNIX&reg; 系统那样将加密密码存储在 /etc/password 文件中,而是存储在仅 root 用户可读的 1 文件中。AIX 使用 /etc/passwd 中归档的密码来表示密码是否存在或帐户是否被阻塞。
/etc/passwd 文件由 root 用户拥有,且必须对所有用户都是可读的,但只有 root 用户有写许可权,显示为 -rw-r--r--。如果用户标识具有密码,则该密码字段中会有一个 !(感叹号)。如果用户标识没有密码,则该密码字段中有一个 *(星号)。加密的密码存储在 /etc/security/passwd 文件中。以下示例包含 /etc/security/passwd 文件(基于以上所示的 /etc/passwd 文件的条目)中的最后四个条目。
guest:
            password = *
                                       
nobody:
            password = *
                                       
lpd:
            password = *

paul:
            password = eacVScDKri4s6
            lastupdate = 1026394230
            flags = ADMCHG               
用户标识 jdoe 在 /etc/security/passwd 文件中没有条目,因为它在 /etc/passwd 文件中没有设置密码。
可使用 pwdck 命令来检查 /etc/passwd 文件的一致性。pwdck 命令通过检查全部用户或指定用户的定义来验证用户数据库文件中密码信息的正确性。

使用 /etc/passwd 文件和网络环境
在传统的网络环境中,用户必须在每个系统中有一个帐户才能获得对该系统的访问权。
这 通常意味着用户要在每个系统上的每个 /etc/passwd 文件中有一个条目。然而,在分布式环境中,要确保每个系统都有相同的 /etc/passwd 文件不是件容易的事情。要解决这个问题,有若干种方法(包括网络信息系统(NIS)和 NIS+)可以使 /etc/passwd 文件中的信息在整个网络中可用。

隐藏用户名和密码
为了达到更高级别的安全性,请确保用户标识和密码在系统内是不可见的。
.netrc 文件包含用户标识和密码。该文件未进行加密或编码保护,这样它的内容像纯文本一样清楚显示。要查找这些文件,运行以下命令:
# find `awk -F: '{print $6}' /etc/passwd` -name .netrc -ls
找到这些文件后,请删除它们。保存密码的一个更有效的方法是设置 Kerberos。

设置建议的密码选项
恰当的密码管理只有通过用户教育来实现。为提供某些额外的安全性,操作系统提供了可配置的密码限制。它们允许管理员限制用户选择的密码,并强制定期更改密码。
密 码选项和扩展用户属性位于 /etc/security/user 文件中,此文件是包含用户属性节的 ASCII 文件。每当为用户定义新密码时,这些限制就会执行。所有密码限制都是按照用户来定义的。通过在 /etc/security/user 文件的缺省节中保存限制,对所有用户执行相同限制。为了维持密码安全性,所有密码必须受到相似的保护。
管理员还可以扩展密码限制。通过使用 /etc/security/user 文件的 pwdchecks 属性,管理员可以将新的子例程(称为方法)添加到密码限制代码中。这样,本地站点策略可添加到操作系统,并由操作系统执行该策略。有关更多信息,请参阅扩 展密码限制。
应用密码限制要切合实际。过于限制的尝试,例如限制密码空间(这将使猜测密码更容易),或强制用户选择难以记忆的密码(用户可能选择 会写下密码),都会危及密码安全性。密码安全性最终要依靠用户。简单的密码限制与明智的指南和偶尔的审计(以验证当前密码是否唯一)相结合,将是最好的策 略。
下表列出与 /etc/security/user 文件中用户密码相关的一些安全属性的推荐值。---见附图

* 最多保留 50 个密码。
对于受控访问保护概要文件和评定保证级别 4+(CAPP/EAL4+)系统,请使用用户和端口配置中推荐的值。
如 果在系统上安装了文本处理程序,管理员可以使用 /usr/share/dict/words 文件作为 dictionlist 字典文件。在这种情况下,管理员可以设置 minother 属性为 0。这是因为字典文件中的大多数单词不包含属于 minother 属性类别中的字符,把 minother 属性设置为 1 或更大将消除对这个字典文件中绝大多数单词的需要。
系统中密码的最小长度由 minlen 属性的值或 minalpha 属性的值中的较大者加上 minother 属性来设置。密码的最大长度是八个字符。minalpha 属性的值加上 minother 属性的值决不能大于 8。如果 minalpha 的值加上 minother 属性的值大于 8,则 minother 属性的值会减少为 8 减去 minalpha 属性的值。
如果 histexpire 属性的值和 histsize 属性的值都设置了,则系统保留适用于两种情况所需的密码个数,最多达系统所限制的每个用户 50 个密码。不保留空密码。
您可以编辑 /etc/security/user 文件,使之包含您要用来管理用户密码的任何缺省值。或者,您也可以通过使用 chuser 命令更改属性值。
其 他可以与该文件一起使用的命令有 mkuser、lsuser 和 rmuser 命令。mkuser 命令在 /etc/security/user 文件中为每个新用户创建一个条目,并用 /usr/lib/security/mkuser.default 文件中定义的属性初始化其属性。要显示属性和它们的值,请使用 lsuser 命令。要除去一个用户,请使用 rmuser 命令。

扩展密码限制
密码程序接受或拒绝密码所使用的规则(密码构成限制)可由系统管理员进行扩展,以提供特定于站点的限制。
通过添加方法(在更改密码过程中调用)来扩展限制。/etc/security/user 文件中的 pwdchecks 属性指定调用的方法。
AIX 5L™ Version 5.3 Technical Reference 包含对 pwdrestrict_method 的描述,它是指定的密码限制方法必须符合的子例程接口。要正确扩展密码构成限制,则系统管理员必须在编写密码限制方法时对该接口编程。请谨慎对待扩展密码 设置限制。这些扩展将直接影响 login 命令、passwd 命令、su 命令以及其他程序。系统安全性可能被恶意的或有缺陷的代码轻易破坏。

用户和端口配置
用户和端口的 AIX&reg; 配置选项必须设置为满足评估的需求。实际的需要是正确猜测到密码的概率应该至少为一百万分之一,并且在一分钟内通过反复尝试而正确猜测到密码的概率应该至少为十万分之一。
以 下示例中所显示的 /etc/security/user 文件使用 /usr/share/dict/words 字典列表。/usr/share/dict/words 文件包含在 bos.data 文件集中。在配置 /etc/security/user 文件之前,您必须安装 bos.data 文件集。/etc/security/user 文件的推荐值如下:
default:
admin = false
login = true
su = true
daemon = true
rlogin = true
sugroups = ALL
ttys = ALL
auth1 = SYSTEM
auth2 = NONE
tpath = nosak
umask = 077
expires = 0
SYSTEM = "compat"
logintimes =
logintimes =      
pwdwarntime = 5
account_locked = false
loginretries = 3
histexpire = 52
histsize = 20
minage = 0
maxage = 8
maxexpired = 1
minalpha = 2
minother = 2
minlen = 8
mindiff = 4
maxrepeats = 2
dictionlist = /usr/share/dict/words
pwdchecks =
dce_export = false

root:
rlogin = false
login = false
不应该用单个用户的特定设置覆盖 /etc/security/user 文件中的缺省设置。
注: 在 root 节设置 login = false 阻止直接的 root 用户登录。只有对于该 root 帐户有 su 特权的用户帐户才能以 root 帐户登录。如果启动“拒绝服务”攻击对发送错误密码给用户帐户的系统发动攻击,它能锁定所有的用户帐户。此攻击可能阻止任何用户(包括管理用户)登录到该 系统。一旦锁定某用户的帐户,该用户将不能登录,直到系统管理员在 /etc/security/lastlog 文件中重新设置该用户的 unsuccessful_login_count 属性小于loginretries 用户属性的值。如果锁定了所有的管理帐户,可能需要重新启动系统到维护方式并运行 chsec 命令。
/etc/security/login.cfg 文件的建议值如下所示:
default:
sak_enabled = false      
logintimes =      
logindisable = 4      
logininterval = 60      
loginreenable = 30      
logindelay = 5
 
评论

posted on 2012-11-20 11:01  知也无涯  阅读(2022)  评论(0编辑  收藏  举报