生成 IBM® AIX® 安全报告能够反映出系统当前的安全模型概况,然后可以将这些报告呈现给有关的经理或审计人员,向他们展示您的 AIX 系统的安全管理情况。在本文中,我们将演示哪些属性类型可以收集以及收集它们的原因。

David Tansley, UNIX 管理员, 自由职业者

David Tansley 是一位自由作家。他有 15 年 UNIX 系统管理经验,最近 8 年一直在使用 AIX。他喜欢打羽毛球和观看一级方程式赛车,但是最喜欢与妻子一起开着 GSA 摩托车旅行。



2012 年 10 月 18 日

为您的系统生成审计安全快照将能够使系统管理员实现有效的安全控制,从而确保能够恰当地管理您的 AIX 服务器的安全性。它还展示了当前采用的标准安全策略。在了解每月安全报告和审计报告应当包括哪些内容之前,让我们先来看一下如何呈现它们。虽然这里只讨论了一个安全报告,但是请记住,这种报告将由大量 AIX 服务器生成,因此,务必以准确、中肯的方式呈现信息,并且各个小节都要有明确的标题。您可能决定使用一个机器一个报告 (one box one report) 的方法呈现报告,或者将所有报告整合到一个报告中,您可以自由选择。这两种方法我以前都用过,但我更倾向于生成大型报告的方法。您可以考虑使用 HTML 格式呈现这些信息,信息中包含一些标记,因此您可以单击不同的部分并找到您感兴趣的信息。HTML 可以嵌入到电子邮件中或直接生成到 Web 页面。显然,具体方式取决于您自己的报告标准。

在生成报告时,您可能决定只生关于成生产服务器的报告,而不准备生产关于任何开发、研发或验收测试服务器的报告。我认为显示给管理者的安全报告应当只包括生产服务器,因为其他服务器通常没有生产服务器那么封闭和保守。

在合并为一个报告时,您应当假设服务器已经采用了某些相关的安全工具。其中一些标准工具包括:

  • SSH
  • TCP 包装器
  • AIX Audit 服务
  • Sudo

报告哪些内容?

我认为报告应当侧重于与用户有关的生产信息、登录属性和有效的 IBM 安全建议。在进一步了解这些之前,让我们先来查看应当包括在通用安全报告的一些内容:

  • IBM 安全建议
  • 有关密码策略的报告(设置和过期)
  • 有关设置用户 ID/组 ID(UID/GID)文件(非 IBM 生成的文件)的报告
  • 符合应用程序策略的正确的组成员关系
  • 系统流程所有者的锁定帐户,比如 lpd 和 bin
  • 在执行非登录活动的指定天数后锁定帐户
  • 任何新用户或已删除的用户
  • 任何新组或已删除的组
  • 删除或增加了替代用户 (su) 权限的用户
  • 允许的用户组成员
  • 允许访问特权帐户(如 root 用户和应用程序所有者)的 su 访问
  • 登录属性,其中 admin 被设置为 true
  • 状态表示,指出是否对远程登录活动禁用 root 访问
  • 得到许可的用户能够使用 File Transfer Protocol (FTP)、Secure Shell (SSH) 和 Secure Copy Protocol (SCP) 访问 AIX 服务器
  • 报告是否在 /etc/ineted.conf 中禁用 rexec
  • 报告找到的所有 .rhosts 文件

现在,我们将详细了解上面提到的各项内容。

注意

IBM 建议包括 IBM 通过详细的电子邮件发送的安全漏洞说明,告知您在特定操作条件下某个流程或服务存在的潜在缺陷、补丁或解决方案。您需要自己判断这一缺陷是否会影响到您,以及您是否希望解决这个问题。这些电子邮件应当记录在单独的表格或数据库中,这样就可以生成这些建议的历史记录(提供详细信息、出现问题的时间和采取了哪些操作,如果有的话)。关于这些建议的说明应当包含在报告中。

密码策略

拥有良好的密码策略(密码过期和密码规则)非常重要。您在生产环境中使用的密码策略应当是一项严格的标准。例如,对于普通支持用户,他们的密码可能会在一段时间(比如 35 天)后过期。然而,对于应用程序或批处理用户,这会带来一些问题。没人希望半夜运行批处理程序时密码过期,因此可能会将这些密码设置为永不过期。然而,所有用户都应当使用相同的规则来选择密码,比如可重复字符和密码的最小长度。使用 /etc/security 中的默认值时,您应当针对当前采用的标准策略检查默认设置,您会注意到所有不一致的地方。如果这些不一致的地方是已知的异常,那么应当使用一个排除列表,随报告一起提供。如果使用的是网络认证,如 Lightweight Directory Access Protocol (LDAP) 或 Kerberos,那么应当检查这些扩展的属性。

清单 1 演示的方法中,可以对帐户属性的报告进行比较和显示。将包含标准属性策略的模板文件与远程 AIX 服务器上 /etc/security/user 中的默认属性进行比较,就会发现所有不一致的地方。清单 1 还列出了此检查中发现的所有例外用户。

清单 1. 帐户属性
Standard attributes: 	   Current attributes:	

admin  =	 	         admin 	=	 false	
login  =	 true            login 	=	 true	
su 	   =	 true	         su 	    =	 true	
daemon 	=	 true	 	 daemon 	=	 true	
rlogin 	=	 true	 	 rlogin 	=	 true	
sugroups 	=	         sugroups	  =	 ALL	
admgroups 	=	 	 admgroups =	 	
ttys 	=	 		 ttys 	=	 ALL	
auth1 	=	 		 auth1 	=	 SYSTEM	
auth2 	=	 		 auth2 	=	 NONE	
umask 	=	 022	         umask 	=	 022	
expires 	=	 	 expires 	=	 0	
SYSTEM 	=	 		 SYSTEM 	=	 "compat"	
pwdwarntime 	= 5	 	 pwdwarntime 	=	 5	
account_locked  =	false    account_locked =	 false	
loginretries 	=  3	         loginretries 	=	 3	
histexpire 	= 26	 	 histexpire 	=	 26	
histsize 	  =	 15	 histsize 	=	 15	
minage 	  =	 1	 	 minage 	=	 1	
maxage 	  =	 5	 	 maxage 	=	 5	
maxexpired =	 -1	 	 maxexpired 	=	 -1	
minalpha 	=	 1	 minalpha 	=	 1	
minother 	=	 1	 minother 	=	 1	
minlen 	=	 8	 	 minlen 	=	 8	
mindiff 	=	 2	 mindiff 	=	 2	
maxrepeats =	 2	 	 maxrepeats =	 2	

Excluded users for this host: ukpen01dd
user1,user2,..

我拥有哪些用户 set-uID

所有非 IBM set-uID 程序都应当进行报告,通过与以前的运行或日志文件比较,您就可以知道是否有新的 set-uID 或修改过的 set-uID 发生了变化。所有显示的 set-uID 程序都应当列出在安全报告中。您可以考虑结合使用 fpm 命令。

组成员关系

拥有正确的组成员关系可以确保非特权用户不会对特权文件进行组访问。应当创建一个用于所有组应用程序成员的模板。如果有任何不应属于这些组的用户,则需要进行报告。

锁定的系统帐户

系统进程帐户的所有者,如 bin 和 lpd 等,应当锁定他们的帐户。即使 login/rlogin 属性为 false,也不应该公开这些帐户,这是无需置疑的。报告应当列出这些未锁定帐户的进程帐户所有者的所有违规行为。

非活动帐户

有必要找出长期未登录 AIX 系统的用户,并检查他们是否需要帐户。经过一段时间后(建议 40 天),应当锁定(而不是删除)这些帐户。当用户导致产生一个事件处理过程票据 (incident process ticket),且应用程序栈持有者准许时,可以解锁帐户。经过一个比较长的非活动期后,可以删除用户。但是,执行此操作时必须小心谨慎,因为如果用户与应用程序支持有关,那么他们可能通过 GUI 与应用程序相连。因此,AIX 会无法更新该用户的登录属性,在这种情况下,需要采用其他机制进行检查,或者使用用户的排除列表。

用户和组填充

报告有关任何新用户或已删除用户的信息可以展示您管理系统的方式,方法就是始终保持用户群处于最新状态。任何新的用户或组都可以通过一个变更控制请求来创建,并记录这个事件。删除用户很有可能通过发出请求来完成,或者根据不断更新的离职员工列表来删除用户,甚至有可能根据休眠帐户 (dormant account) 来删除用户。维护用户的过程会确保系统不会充满非活动用户。

su 和 sudo

在 sudoers 文件中查找 su 访问和 sugroup,特权访问能够够确保只有已授权用户才能够转换用户权限。经常发生的情况是会留下临时的 su 访问授权,因此该授权变为永久性的授权。通过对 su 组进行报告,您可以快速确定应当为哪些用户取消 su 访问。您至少应当向以下用户报告 su 访问:root 用户、应用程序所有者、批处理调度程序的所有者。

下面显示了主机 ukpen01dd 上 IBM DB2® 组(db2grp)成员的一个典型条目,无需密码即可将用户权限转换为 DB2 实例用户 db2inst1

%db2grp  ukpen01dd  = NOPASSWD:/usr/bin/su - db2inst1

管理员帐户

您应当创建一个报告,其中包含所有在帐户属性中将 admin 设置为 true 的用户的列表。这通常包括系统帐户。其中一些用户为:root 用户、daemon、bin、sys 和 lpd。然而,您可以将这一权限委托给特定用户,因此还应当报告这些用户。

对 root 用户禁用 rlogin

我认为应当对 root 用户禁用所有 rlogin。您应当只能从 su/sudo 进程或通过指定服务器上的直接 SSH 连接进行 root 访问。这种方法可以有效地锁定 root 访问。对 root 执行的惟一的登录访问应当通过系统控制台或 Hardware Management Console (HMC) 来实现。

FTP/SCP 访问

需要谨慎考虑是否允许从远程服务器进行 SCP/FTP 访问,因为您不希望限制需要传输文件的用户。整理好用户列表后,您可以使用该列表填充 /etc/ssh/sshd.conf 文件中允许使用的用户条目。另外,不要忘记 ftpaccess.ctl 文件,可以通过该文件了解允许使用 FTP 的用户和 FTP 限制。还可以生成禁用 FTP 访问的用户的列表,这些内容包含在 /etc/ftpusers 中。我认为应当只允许 root 用户进行 SCP 访问,并且只能从指定的(首推)服务器访问。

不安全的命令

还应该进行一项检查,确定 /etc/inetd.conf 中是否没有注释掉 rexec。我不会解释这样做的安全原因,因为所有 Linux®、UNIX® 或 AIX 安全文档对此都有详细的解释。我认为如今仍然使用不安全命令的惟一原因可能是因为 Network Installation Management (NIM) 的推出,并且应当只允许临时使用它们。还应该运行一个查找命令,识别用户的 HOME 目录中的所有 .rhosts 文件。除非有特殊的原因要求在不安全的连接中使用 .rhosts 文件,否者应当报告这些内容,并实现一个流程,将用户移动到 SCP。

检查密码和组文件的有效性

作为每月报告的一部分,您可以使用 grpchkpwdck 命令来确定您的组和密码文件是正确的,不存在任何格式问题或无效的用户或组。


将所有环节衔接起来

从一个中央服务器运行安全报告脚本,或者,将脚本推向每个必要的远程主机,然后运行它。通过这种方式,如果脚本需要进行修改,那么只需要在一台主机上进行修改即可。

在比较只在特定组中才准许使用的用户时,我认为最好创建一个用户模板文件,用它来进行比较。这个模板文件会在运行报告之前从一个中央服务器推出,因为您每个月都要定期更新这个中央文件,指定用户或用户所属的组或子组。该文件的格式可以与 /etc/group 的格式相同。

groupname1: usera,userb,..
groupname2: usera,userb,..

之后的流程就简单了很多,遍历这个文件,将它与 AIX 服务器上现有的组进行比较,然后报告不匹配的用户。


结束语

生成每月安全报告允许系统管理员查看所有 AIX 服务器上使用的最新安全策略。然后能够很轻松地发现任何与安全策略有关的不一致的地方。报告还应该提交给 IT 安全官员,以便进行审核和保存。

参考资料

学习

  • 订阅 IBM AIX 安全 建议邮件列表。
  • IBM AIX 安全
  • 阅读 Password expiry用 sugroup 控制 su 访问
  • AIX and UNIX 专区:developerWorks 的“AIX and UNIX 专区”提供了大量与 AIX 系统管理的所有方面相关的信息,您可以利用它们来扩展自己的 UNIX 技能。
  • AIX and UNIX 新手入门:访问“AIX and UNIX 新手入门”页面可了解更多关于 AIX 和 UNIX 的内容。
  • AIX and UNIX 专题汇总:AIX and UNIX 专区已经为您推出了很多的技术专题,为您总结了很多热门的知识点。我们在后面还会继续推出很多相关的热门专题给您,为了方便您的访问,我们在这里为您把本专区的所有专题进行汇总,让您更方便的找到您需要的内容。
  • AIX and UNIX 下载中心:在这里你可以下载到可以运行在 AIX 或者是 UNIX 系统上的 IBM 服务器软件以及工具,让您可以提前免费试用他们的强大功能。
  • IBM Systems Magazine for AIX 中文版:本杂志的内容更加关注于趋势和企业级架构应用方面的内容,同时对于新兴的技术、产品、应用方式等也有很深入的探讨。IBM Systems Magazine 的内容都是由十分资深的业内人士撰写的,包括 IBM 的合作伙伴、IBM 的主机工程师以及高级管理人员。所以,从这些内容中,您可以了解到更高层次的应用理念,让您在选择和应用 IBM 系统时有一个更好的认识。

获得产品和技术

  • 免费试用 IBM 软件。下载试用版,登录到在线试用版,在沙箱环境中使用产品,或者通过云环境访问。超过 100 多种 IBM 产品试用版可供选择。

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=AIX and UNIX
ArticleID=841091
ArticleTitle= AIX 安全报告
publish-date=10182012