167
HP-UX 系统管理员指南:安全管理 *5991-6498* HP 部件号:5991-6498 出版日期:2007 2 1

HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

  • Upload
    others

  • View
    13

  • Download
    0

Embed Size (px)

Citation preview

Page 1: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

HP-UX 系统管理员指南:安全管理

*5991-6498*HP 部件号:5991-6498出版日期:2007 年 2 月第 1 版

Page 2: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

© 版权所有 2007 Hewlett-Packard Development Company L.P.

法律声明

本文档所包含的信息如有更改,恕不另行通知。

HP 对本文档不作任何担保,包括但不限于适销性及特定用途适用性的隐含担保。 HP 对本手册中包含的错误以及与其结构、性能或使用有关的直接、间接、特殊、偶发或继发性损失不承担任何责任。

保修 请向当地的销售与服务办事处索取适用于您所购买的 HP 产品及备件的特定保修条款的副本。

美国政府许可 专用计算机软件。必须有 HP 授予的有效许可证,方可拥有、使用或复制本软件。根据供应商的标准商业许可证的规定,美国政府应遵守 FAR 12.211 和 12.212 中有关“商业计算机软件”、“计算机软件文档”与“商业货物技术数据”条款的规定。

商标声明 UNIX® 是在美国和其他国家(地区)的注册商标,由 The Open Group 专门许可。VERITAS® 是 Symantec Corporation的注册商标。

声明 本产品包含由 Apache Software Foundation 开发的软件。本文档基于 Apache Software Foundation(http://www.apache.org) 提供的信息。

本产品包含由 OpenSSL Project 开发的、在 OpenSSL Toolkit (http://www.openssl.org) 中使用的软件。

Page 3: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

目录

前言.......................................................................................................................................13

1 简介....................................................................................................................................171.1 安全概念.......................................................................................................................171.2 功能和优点...................................................................................................................18

2 安全安装 HP-UX 操作环境......................................................................................................212.1 有关安装的安全问题......................................................................................................212.2 防止在引导过程中发生安全违例.....................................................................................212.3 为超级用户启用安全登录功能........................................................................................222.4 使用引导身份验证功能防止未经授权的访问.....................................................................222.5 设置安装时安全选项.....................................................................................................222.6 安装安全修补软件.........................................................................................................23

2.6.1 Security Patch Check 文档资料................................................................................232.6.2 预订 HP-UX 安全公告............................................................................................232.6.3 使用 security_patch_check 命令的示例.....................................................................24

2.7 用于备份和恢复的安装后安全建议..................................................................................24

3 管理用户和系统安全性..........................................................................................................273.1 管理用户访问权限.........................................................................................................27

3.1.1 监视用户帐户.........................................................................................................273.1.2 监视 guest 帐户.....................................................................................................283.1.3 创建应用程序用户帐户...........................................................................................283.1.4 管理组帐户...........................................................................................................29

3.2 登录时验证用户身份.....................................................................................................293.2.1 登录过程说明........................................................................................................293.2.2 检查登录跟踪文件(btmp 和 wtmp)......................................................................30

3.2.2.1 last 命令示例................................................................................................313.2.3 检查已登录用户....................................................................................................31

3.3 使用 PAM 验证用户身份................................................................................................313.3.1 概述.....................................................................................................................323.3.2 PAM 库................................................................................................................333.3.3 使用 /etc/pam.conf 进行系统范围配置...................................................................343.3.4 示例 /etc/pam.conf 文件.......................................................................................343.3.5 /etc/pam_user.conf 用户配置文件..........................................................................353.3.6 示例:PAM 的登录工作原理...................................................................................36

3.4 管理口令......................................................................................................................373.4.1 系统管理员职责....................................................................................................373.4.2 用户职责.............................................................................................................38

目录 3

Page 4: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

3.4.3 好口令的标准.......................................................................................................383.4.4 更改 /etc/passwd 口令文件...................................................................................38

3.4.4.1 passwd 命令示例..........................................................................................383.4.4.2 /etc/passwd 文件格式..................................................................................39

3.4.5 /etc/shadow 影子口令文件...................................................................................393.4.6 在 /etc/passwd 中消除伪帐户并保护密钥子系统......................................................413.4.7 使用 HP-UX Secure Shell 进行安全登录....................................................................413.4.8 保护存储在 NIS 中的口令......................................................................................423.4.9 保护存储在 LDAP 目录服务器中的口令....................................................................42

3.5 定义系统安全属性.........................................................................................................423.5.1 配置系统范围属性.................................................................................................433.5.2 配置针对单个用户的属性.......................................................................................43

3.5.2.1 使用 userdbset 定义用户特定属性的示例..........................................................443.5.2.2 INACTIVITY_MAXDAYS 和影子口令文件..........................................................44

3.5.3 用户数据库故障排除.............................................................................................443.6 处理 setuid 和 setgid 程序..............................................................................................45

3.6.1 为什么 setuid 和 setgid 程序存在隐患......................................................................453.6.2 如何设置 ID.........................................................................................................463.6.3 限制 Setuid 功能指导............................................................................................46

3.7 防止堆栈缓冲区溢出攻击...............................................................................................473.8 保护无人照管的终端和工作站........................................................................................47

3.8.1 使用 /etc/inittab 和运行级别进行访问控制..............................................................473.8.2 保护终端设备文件................................................................................................483.8.3 配置屏幕锁定.......................................................................................................48

3.8.3.1 配置 TMOUT 变量.........................................................................................483.8.3.2 配置 CDE 锁定管理器...................................................................................49

3.9 防止远程设备对系统的访问............................................................................................493.9.1 使用 /etc/dialups 和 /etc/d_passwd 进行访问控制...................................................50

3.10 保护登录标题..............................................................................................................503.11 保护超级用户帐户........................................................................................................51

3.11.1 监视超级用户帐户访问..........................................................................................523.11.2 将受限 SMH 生成器用于有限超级用户访问.............................................................523.11.3 检查超级用户访问权限..........................................................................................52

4 HP-UX 基于角色的访问控制....................................................................................................554.1 概述.............................................................................................................................554.2 访问控制基础...............................................................................................................56

4.2.1 使用角色简化访问控制...........................................................................................564.3 HP-UX RBAC 组件..........................................................................................................57

4.3.1 HP-UX RBAC 服务控制策略切换...............................................................................574.3.2 HP-UX RBAC 配置文件...........................................................................................584.3.3 HP-UX RBAC 命令..................................................................................................584.3.4 HP-UX RBAC 联机帮助页........................................................................................59

4 目录

Page 5: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

4.3.5 HP-UX RBAC 体系结构...........................................................................................594.3.6 HP-UX RBAC 示例使用与运行.................................................................................60

4.4 规划 HP-UX RBAC 部署..................................................................................................614.4.1 规划角色..............................................................................................................614.4.2 规划角色的授权...................................................................................................624.4.3 规划命令映射.......................................................................................................624.4.4 HP-UX RBAC 限制和约束........................................................................................63

4.5 配置 HP-UX RBAC..........................................................................................................634.5.1 配置角色..............................................................................................................64

4.5.1.1 创建角色.......................................................................................................644.5.1.2 将角色分配给用户.........................................................................................654.5.1.3 将角色分配给组.............................................................................................66

4.5.2 配置授权.............................................................................................................664.5.3 配置其他命令授权和权限.......................................................................................674.5.4 使用精细划分的权限配置 HP-UX RBAC....................................................................684.5.5 使用隔离专区配置 HP-UX RBAC..............................................................................70

4.6 使用 HP-UX RBAC.........................................................................................................704.6.1 使用 privrun 命令运行具有权限的应用程序...............................................................70

4.6.1.1 Serviceguard 群集中的 HP-UX RBAC.................................................................724.6.2 使用 privedit 命令编辑受访问控制约束的文件..........................................................724.6.3 使用 ACPS 定制 privrun 和 privedit..........................................................................73

4.7 HP-UX RBAC 故障排除...................................................................................................734.7.1 rbacdbchk 数据库语法工具.....................................................................................734.7.2 privrun -v 信息.......................................................................................................74

5 隔离专区..............................................................................................................................755.1 概述.............................................................................................................................75

5.1.1 隔离专区体系结构..................................................................................................755.1.2 缺省隔离专区配置.................................................................................................77

5.2 规划隔离专区结构.........................................................................................................775.3 激活隔离专区...............................................................................................................785.4 修改隔离专区配置.........................................................................................................78

5.4.1 更改隔离专区规则.................................................................................................795.4.2 更改隔离专区名称................................................................................................79

5.5 隔离专区组件...............................................................................................................795.5.1 隔离专区配置文件.................................................................................................795.5.2 隔离专区命令.......................................................................................................805.5.3 隔离专区联机帮助页.............................................................................................80

5.6 隔离专区规则和语法.....................................................................................................815.6.1 隔离专区定义........................................................................................................815.6.2 文件系统规则.......................................................................................................825.6.3 IPC 规则..............................................................................................................835.6.4 网络规则.............................................................................................................84

目录 5

Page 6: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

5.6.5 其他规则..............................................................................................................855.6.6 示例规则文件.......................................................................................................87

5.7 配置隔离专区中的应用程序............................................................................................875.8 隔离专区故障排除.........................................................................................................875.9 使用发现模式来生成初始隔离专区配置...........................................................................885.10 HP Serviceguard 群集中的隔离专区...............................................................................88

6 精细划分的权限....................................................................................................................916.1 概述.............................................................................................................................916.2 精细划分的权限的组件..................................................................................................91

6.2.1 命令.....................................................................................................................916.2.2 联机帮助页..........................................................................................................92

6.3 可用权限......................................................................................................................926.4 为应用程序配置精细划分的权限.....................................................................................93

6.4.1 权限模型..............................................................................................................946.4.2 复合权限.............................................................................................................95

6.5 精细划分的权限的安全影响............................................................................................956.5.1 权限提升..............................................................................................................95

6.6 HP Serviceguard 群集中的精细划分的权限.......................................................................956.7 精细划分的权限的故障排除............................................................................................96

7 文件系统安全.......................................................................................................................977.1 控制对文件的访问..........................................................................................................97

7.1.1 设置文件访问权限..................................................................................................987.1.2 设置文件所有权.....................................................................................................987.1.3 保护目录...............................................................................................................997.1.4 保护与用户帐户相关的文件.....................................................................................997.1.5 使用 fsck 确定和纠正文件损坏.................................................................................99

7.2 设置访问控制列表.......................................................................................................1007.3 使用 HFS ACL.............................................................................................................100

7.3.1 HFS ACL 和 HP-UX 命令和调用..............................................................................1027.4 使用 JFS ACL...............................................................................................................104

7.4.1 JFS ACL 的定义....................................................................................................1047.4.2 系统如何生成 JFS ACL.........................................................................................1047.4.3 最小 JFS ACL......................................................................................................1047.4.4 附加 JFS ACL 用户和组条目..................................................................................1057.4.5 JFS ACL 组和类条目.............................................................................................1057.4.6 使用 setacl 和 getacl 命令....................................................................................1057.4.7 chmod 对类条目的影响........................................................................................1067.4.8 最小 JFS ACL 的更改示例.....................................................................................1067.4.9 缺省 JFS ACL......................................................................................................1087.4.10 通过 setacl 命令更改 JFS ACL...............................................................................108

7.4.10.1 使用修改和删除选项...................................................................................109

6 目录

Page 7: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

7.4.10.2 使用 -f 选项...............................................................................................1097.4.10.3 有效权限和 setacl -n...................................................................................109

7.5 JFS 和 HFS ACL 的比较.................................................................................................1107.5.1 JFS 和 HFS 的命令和功能对照................................................................................110

7.6 ACL和 NFS.................................................................................................................1117.7 关于 /dev 设备专用文件的安全性考虑...........................................................................1117.8 保护磁盘分区和逻辑卷................................................................................................1127.9 挂接和卸除文件系统的安全指南...................................................................................1127.10 控制网络上的文件安全...............................................................................................113

7.10.1 检查网络控制文件上的权限设置...........................................................................1147.10.2 在 NFS 环境中挂接的文件...................................................................................114

7.10.2.1 服务器弱点................................................................................................1147.10.2.2 客户端漏洞...............................................................................................1157.10.2.3 如何保护 NFS 安装的文件...........................................................................115

8 保护对系统的远程访问........................................................................................................1178.1 Internet Services 和远程访问服务概述............................................................................117

8.1.1 保护 ftp...............................................................................................................1188.1.2 保护匿名 ftp........................................................................................................1188.1.3 使用 /etc/ftpd/ftpusers 拒绝访问...........................................................................1198.1.4 针对欺骗的其他安全解决方案...............................................................................119

8.2 inetd 守护程序............................................................................................................1198.2.1 保护 inetd...........................................................................................................120

8.2.1.1 使用 /var/adm/inetd.sec 拒绝或允许访问......................................................1218.3 使用 TCP Wrappers 防止欺骗.......................................................................................121

8.3.1 TCP Wrappers 的其他功能....................................................................................1218.3.2 TCP Wrappers 不使用 RPC 服务...........................................................................122

8.4 Secure Internet Services................................................................................................1228.5 控制管理域................................................................................................................122

8.5.1 检验网络控制文件上的权限设置............................................................................1238.6 使用 HP-UX Secure Shell (SSH) 保护远程会话.................................................................123

8.6.1 HP-UX Secure Shell 的主要安全功能.......................................................................1248.6.2 HP-UX Secure Shell 的软件组件.............................................................................1248.6.3 运行 HP-UX Secure Shell......................................................................................125

8.6.3.1 运行 ssh 客户端..........................................................................................1258.6.3.2 运行sftp 客户端..........................................................................................1268.6.3.3 运行 scp 客户端.........................................................................................126

8.6.4 HP-UX Secure Shell 权限分离................................................................................1268.6.5 HP-UX Secure Shell 验证......................................................................................126

8.6.5.1 GSS-API.....................................................................................................1278.6.5.2 公用密钥验证.............................................................................................1278.6.5.3 基于主机的公用密钥验证.............................................................................1288.6.5.4 口令验证...................................................................................................128

目录 7

Page 8: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

8.6.6 通信协议...........................................................................................................1288.6.7 HP-UX Secure Shell 和 HP-UX 系统.........................................................................1288.6.8 相关技术...........................................................................................................1298.6.9 加强随机数生成器要求........................................................................................1298.6.10 TCP Wrappers 支持...........................................................................................1298.6.11 chroot 目录监管程序...........................................................................................129

9 审核管理............................................................................................................................1319.1 审核组件....................................................................................................................131

9.1.1 命令....................................................................................................................1319.1.2 审核配置文件......................................................................................................1329.1.3 审核联机帮助页...................................................................................................132

9.2 审核系统....................................................................................................................1329.2.1 计划审核实现......................................................................................................1339.2.2 启用审核............................................................................................................1339.2.3 禁用审核............................................................................................................1349.2.4 监视审核文件.....................................................................................................1349.2.5 性能因素............................................................................................................1359.2.6 管理审核系统准则...............................................................................................135

9.3 审核用户....................................................................................................................1359.4 审核事件....................................................................................................................1369.5 审核记录....................................................................................................................137

9.5.1 配置审核记录......................................................................................................1389.5.2 监视和管理审核记录............................................................................................138

9.6 查看审核日志.............................................................................................................1399.6.1 使用 audisp 命令的示例.......................................................................................140

9.7 自审核.......................................................................................................................1409.8 HP-UX RBAC 审核........................................................................................................141

9.8.1 根据 HP-UX RBAC 标准和 /etc/rbac/aud_filter 文件进行审核...................................1429.8.2 审核 HP-UX RBAC 标准的步骤..............................................................................142

A 受信任的系统.....................................................................................................................145A.1 设置受信任的系统.......................................................................................................145A.2 审核受信任的系统......................................................................................................146A.3 管理受信任的口令和系统访问......................................................................................146

A.3.1 口令文件............................................................................................................147A.3.1.1 /etc/passwd 文件........................................................................................147A.3.1.2 /tcb/files/auth/ 数据库...............................................................................147

A.3.2 口令选择和生成.................................................................................................148A.3.3 口令时限性........................................................................................................149A.3.4 口令历史记录和口令重新使用..............................................................................149A.3.5 基于时间的访问控制...........................................................................................149A.3.6 基于设备的访问控制...........................................................................................149

8 目录

Page 9: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

A.3.7 操作受信任的系统数据库....................................................................................150A.4 受信任的备份和恢复准则............................................................................................150

B 其他安全产品.....................................................................................................................153B.1 HP-UX Bastille..............................................................................................................153B.2 HP HIDS.....................................................................................................................153B.3 安全修补软件.............................................................................................................153B.4 HP-UX IPFilter..............................................................................................................153B.5 HP-UX Secure Shell .....................................................................................................154

词汇表..................................................................................................................................155

索引.....................................................................................................................................161

目录 9

Page 10: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

图列表

3-1 PAM 下的 HP-UX 验证模块.............................................................................................324-1 HP-UX RBAC 体系结构...................................................................................................604-2 调用 privrun 后的运行示例.............................................................................................615-1 隔离专区体系结构........................................................................................................767-1 文件与目录权限字段.....................................................................................................98

10 图列表

Page 11: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

表格清单

4-1 针对单个用户的授权示例...............................................................................................564-2 针对单个角色的授权示例...............................................................................................574-3 HP-UX RBAC 配置文件...................................................................................................584-4 HP-UX RBAC 命令.........................................................................................................584-5 HP-UX RBAC 联机帮助页................................................................................................594-6 规划结果示例...............................................................................................................645-1 隔离专区配置文件........................................................................................................805-2 隔离专区命令...............................................................................................................805-3 隔离专区联机帮助页.....................................................................................................806-1 精细划分的权限的命令..................................................................................................916-2 精细划分的权限的联机帮助页........................................................................................926-3 可用权限.....................................................................................................................927-1 文件和目录权限之间的区别...........................................................................................987-2 HFS ACL 命令.............................................................................................................1037-3 HFS ACL 系统调用......................................................................................................1037-4 影响 ACL 条目的命令和调用........................................................................................1037-5 HFS ACL 和 JFS ACL 的等价命令...................................................................................1118-1 Internet Services 组件和访问验证、授权和验证...............................................................1178-2 HP-UX Secure Shell 的软件组件.....................................................................................1249-1 审核命令...................................................................................................................1329-2 审核配置文件.............................................................................................................1329-3 审核联机帮助页..........................................................................................................1329-4 audevent 命令选项......................................................................................................136

11

Page 12: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

范例清单

3-1 伪帐户和特殊系统帐户........................................................................................................417-1 创建 HFS ACL...................................................................................................................1027-2 多个 HFS ACL 匹配...........................................................................................................102

12 范例清单

Page 13: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

前言

目标读者

《HP-UX 系统管理员指南》是为需要管理 HP-UX 11i v3 发行版以后的 HP-UX 系统的各个技术层次的 HP-UX 系统管理员编写的。虽然本系列中的许多主题适用于以前的发行版,但从 HP-UX 11i v3 开始,其中的许多内容已发生变化;因此,有关以前发行版的信息,请参阅文档《管理系统和工作组:系统管理员指南》。

关于本文档集

《HP-UX 系统管理员指南》介绍了管理 HP-UX 11i v3 发行版以后的基于 HP-UX 11i 的系统所需的核心任务集(以及相关概念),其中包含下列文档:

《概述》 概述 HP-UX 11i 及其组件,以及这些组件之间的关系。《逻辑卷管理》 介绍如何使用 HP LVM(Logical Volume Manager,逻辑卷管理器)配置物

理卷、卷组和逻辑卷。

《安全管理》 介绍 HP-UX 11i 的数据和系统安全特性。《配置管理》 可以配置许多子系统和系统设置,以便根据需要定制 HP-UX 的行为。《配

置管理》介绍用户需要执行的很多定制任务。例如:

• 添加外围设备

• 设置和调整系统时钟和时区

• 内核配置

• 配置用户和组

• 网络(初始配置)

《例行管理任务》 介绍为保持系统顺畅运行所需执行的许多日常任务。例如:

• 管理打印机和打印假脱机程序

• 管理软件(使用 HP Software Distributor 安装或删除应用程序)

• 启动和关闭系统

• 安装软件修补程序

• 监视系统性能

关于本文档:《安全管理》

本文档《安全管理》概述了 HP-UX 及其组件,以及这些组件之间的关系。本文档主要包括下列主题:

第 1 章 概述 HP-UX 安全。第 2 章 介绍与引导和安装过程相关的安全性考虑。

第 3 章 介绍在安装操作系统之后,应该如何管理用户和系统安全。

第 4 章 介绍 HP-UX 基于角色的访问控制的功能和组件。第 5 章 介绍隔离专区以及如何隔离系统中的组件。

第 6 章 介绍精细划分的权限,以及如何将超级用户权限划分为权限集。

目标读者 13

Page 14: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

第 7 章 介绍如何控制和保护文件系统。

第 8 章 介绍如何确保远程访问系统的安全。

第 9 章 介绍对审核系统的管理。

附录 A 介绍受信任的系统。

附录 B 介绍其他安全产品。

HP-UX 11i 发行版名称和发行版标识符通过 HP-UX 11i,HP 提供了高可用性、高安全性的可管理操作系统。HP-UX 11i 支持 Enterprise、Mission-Critical 和 Technical Computing 环境,并且它在 PA-RISC 系统和 HP Integrity 服务器上均可使用。

HP-UX 11i 的每个发行版都具有相关联的发行版名称和发行版标识符。使用带 -r 选项的 uname命令可返回发行版标识符。有关可用的 HP-UX 11i 发行版的列表,请参阅下表:

支持的处理器体系结构发行版名称发行版标识符

HP 9000HP-UX 11i v1B.11.11

Intel™ Itanium™HP-UX 11i v2B.11.23

HP 9000Itanium

HP-UX 11i v2(2004 年 9 月)B.11.23

HP 9000Itanium

HP-UX 11i v3B.11.31

有关各个 HP-UX 11i 版本支持的系统和处理器体系结构的信息,请参阅所运行的特定 HP-UX 版本的 HP-UX 11i 系统发行说明(例如,《HP-UX 11i v3 发行说明》)。

14 前言

Page 15: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

查找 HP-UX 信息下表概括说明了可从何处查找 HP-UX 常规系统管理信息。但是,此表中不包含特定产品的信息。

参考位置 . .请参阅. . .若需要.. .

• HP Instant Information 介质

• http://docs.hp.com

• /usr/share/doc/ 目录

/usr/share/doc 目录中只包含您所使用的 HP-UX 版本的最初发行说明。有关修订的发行说明,请参阅最新的HP Instant Information 介质,或访问http://docs.hp.com。

特定 HP-UX 版本的 HP-UX 11i 发行说明。例如,您可能需要参阅《HP-UX11i v3 发行说明》。

查找:

• HP-UX 发行版的变更内容

• 具体的操作环境

• 特定发行版的固件要求以及支持的系统

• 介质包(随操作环境提供)

• HP Instant Information 介质

• http://docs.hp.com

• 《安装或更新至 HP-UX 必读文档》

• 《HP-UX 11i 安装与更新指南》

(注意:请参阅您使用的特定 HP-UX版本的文档。)

安装或更新 HP-UX

• HP Instant Information CD-ROM

• http://docs.hp.com

• 可以从 http://docs.hp.com/hpux/onlinedocs/os/11i/superdome.pdf获取《Planning SuperdomeConfigurations》。

对于 HP-UX 11i v3 之前的发行版,请参阅:

• 《管理系统和工作组:HP-UX 系统管理员指南》

对于自 HP-UX 11i v3 开始的版本,请参阅:

• 《HP-UX 系统管理员指南》(由多个文档组成的文档集)

其他系统管理信息源:

• 《HP 系统分区指南:管理nPartition》

• “《Planning SuperdomeConfigurations》”(白皮书)

管理 HP-UX 系统

相关信息

可以从 http://docs.hp.com 获取有关安全和 HP-UX 的其他信息。具体而言,可获取下列文档:

• 《HP-UX AAA Server Administrator's Guide》

• 《HP-UX Host Intrusion Detection System Administrator's Guide》

• 《HP-UX IPFilter Administrator's Guide》

• 《HP-UX IPSec Administrator's Guide》

• 《HP-UX Secure Shell Release Notes》

版本说明

文档出版日期和部件号表示当前的版本。发行新版本时会更改出版日期。

为确保收到最新版本,您应该订阅适当的产品支持服务。有关详细信息,请与 HP 销售代表联系。

查找 HP-UX 信息 15

Page 16: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

第 1 版 2007 年 2 月, 部件号 5991-6498, HP-UX 11i v3印刷品,光学介质 (Instant Information) 和网站(http://docs.hp.com)

注释: 《HP-UX 系统管理员指南》中的各个文档可能会单独更新。因此,本文档集中的各个文档的最新版本可能会单独变化。可从 http://docs.hp.com 上获得各个文档的最新版本。

印刷字体约定

本文档使用下列印刷字体约定。

reboot(1M) 表示 HP-UX 联机帮助页。audit 是联机帮助页名称,5 是该帮助页在《HP-UX 参考手册》中的小节号。在网站和“Instant Information”DVD上,可能是指向该联机帮助页的热链接。在 HP-UX 命令行输入“manaudit”或“man 5 audit”可以查看该联机帮助页。详见 man(1)。

《书名》 表示文档中引用的书籍、手册的名称,以宋体表示。

键盘操作 键盘键名称。注意 Return 和 Enter 指的是同一个键。强调内容 第一次定义的名词和强调的内容用黑体表示。

术语 表示文档中引用的专用术语,以宋体表示。

系统字体 表示计算机显示的文本和系统项。

可替换变量 命令、功能中可以替换的变量名以仿宋表示。

[ ] 格式和命令说明中的内容是可选的。

{ } 格式和命令说明中的内容是必需的。如果内容以 | 分隔列出,必须选择其中一项。

. . . 前面的元素可以重复任意次。

| 在选项列表中分隔项目。

16 前言

Page 17: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

1简介HP-UX 11i v3 使用了三种核心技术:隔离专区、精细划分的权限和基于角色的访问控制。这三个组件共同为商务应用程序提供高安全性、易于维护和向后兼容的环境。

HP-UX 11i v3 使用了下列重要的安全概念:

• 授权

• 帐户策略管理

• 权限

• 隔离专区

• 审核

1.1 安全概念HP-UX 11i v3 使用了下列保证系统安全的概念。这些概念在以下各章节中进行了详细介绍。

授权

授权是一个限制用户可以在系统上执行操作的概念,通常根据用户的业务需要进行授权。传统的 UNIX 系统仅提供两种级别的授权:常规用户 对系统资源的访问受到限制

超级用户 对系统资源的不受限制

HP-UX 基于角色的访问控制 (HP-UX RBAC) 根据角色创建不同级别的授权。可以根据事务需要为要在系统上执行特定操作的一个用户或一组用户配置角色,然后赋予用户已配置的角色。

有关 RBAC 的详细信息,请参阅第 4 章。

帐户策略管理

帐户策略管理是一个维护用于授权的用户和系统安全属性的概念。一些用户和系统属性包括一天中允许用户登录的时间、自动注销之前用户可以保持非活动状态的时间以及用户口令仍然有效的时间。

有关安全属性的详细信息,请参阅第 3 章。

权限

除了不限制用户可以在系统上执行的操作之外,权限类似于授权,权限限制程序在系统上执行的操作。在传统 UNIX 系统上,尽管某个程序可以为调用用户或文件所有者(例如,setuid 程序)所拥有,但它仍可以运行。要访问某些系统资源,则需要通过 setuid 命令将该程序设置为超级用户。这样,该程序可以获得更大的权利进行读取和修改系统资源。权限将超级用户的权利划分为很多不同的级别。精细划分的权限功能是权限概念的具体实现。

有关权限的详细信息,请参阅第 6 章。

隔离

隔离专区是一种将系统组件彼此隔离的方法。从概念上来讲,属于某个隔离专区的进程通过一个访问列表与资源相关联,该资源列表指定不同隔离专区中的进程如何访问资源。也就是说,

1.1 安全概念 17

Page 18: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

仅当这些隔离专区之间存在某个规则,进程才能访问资源或者与属于另一隔离专区的进程进行通信。属于同一隔离专区的进程可以彼此相互通信,并访问该隔离专区中的资源,而无需规则。

如果配置正确,隔离专区可以成为一种保护 HP-UX 系统及其上的数据的有效方法。有关隔离专区作为一种隔离组件的方法的详细信息,请参阅第 5 章。

审核

审核是一个跟踪系统中的重要事件的概念。可以记录并分析安全事件,以有助于检测试图的安全违例,同时了解成功的违例,以便在将来能阻止它们再次发生。

可以配置 HP-UX RBAC 以审核对审核系统的访问控制请求。有关审核的详细信息,请参阅第 9 章。

1.2 功能和优点HP-UX 11i v3 具有下列功能和优点,有助于确保 UP-UX 标准模式系统的安全。

隔离专区

隔离专区用于隔离系统上不相关的资源,以防止在一个隔离专区被侵入时,对系统造成灾难性的破坏。

在某个隔离专区配置应用程序时,将限制该应用程序访问其隔离专区之外的资源(进程、二进制文件、数据文件以及所使用的通信通道)。该限制是由 HP-UX 内核强制执行的,如无特定的配置要求,否则不能改写它。如果应用程序遭到破坏,它也不会损坏系统的其他部分,因为它已由隔离专区隔离。

精细划分的权限

传统 UNIX 操作系统会根据正在运行的进程的有效 UID 授予“所有”管理员权限或“无”管理员权限。如果正在运行的进程的有效 UID=0,将授予该进程所有权限。使用精细划分的权限功能时,仅授予进程完成任务所需要的权限,或者在进程完成任务所需要那段时间内授予它权限。可识别权限的应用程序可以将它们的权限升级到执行特定操作所需要的级别,并在操作完成降低其权限。

HP-UX 基于角色的访问控制 (HP-UX RBAC)HP-UX 基于角色的访问控制 (RBAC) 是一种传统的超级用户模式的替代方法,它授予超级用户执行所有操作的权限,而拒绝非超级用户执行某些操作的权限。使用 HP-UX RBAC,可以通过使用相应的授权创建角色,然后将这些角色赋予非超级用户,来划分管理职责。

通过 HP-UX RBAC,可以在系统上给用户分配特定管理员级别的权限,而不必授予他们完全的超级用户访问权限。这些用户只能按照他们角色的定义执行系统上的特定管理任务,从而提供了强大的内部系统安全性。

审核

审核系统的作用是记录按主题访问的对象的实例,并可以对绕开保护机制及滥用权限的任何(重复)尝试进行检测,因而起到了防止系统滥用并发现系统中潜在安全弱点的作用。

18 简介

Page 19: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

用户数据库

以前,所有标准模式的 HP-UX 安全属性和口令策略限制均基于系统级进行设置。通过引入用户数据库,可以基于每个用户(改写系统级缺省值)来设置安全属性。

可以使用用户数据库来加强下列安全措施:

• 指定次数的验证失败后锁定用户帐户

• 显示最后一次成功和不成功的登录

• 维护口令历史记录

• 使不活动的用户帐户过期

• 阻止用户使用空口令登录

• 限制用户仅在特定时间段登录

用户数据库 19

Page 20: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

20

Page 21: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

2安全安装 HP-UX 操作环境本章介绍与引导和安装过程相关的安全性考虑,其中包括下列主题:

• “有关安装的安全问题”

• “防止在引导过程中发生安全违例”

• “为超级用户启用安全登录功能”

• “使用引导身份验证功能防止未经授权的访问”

• “设置安装时安全选项”

• “安装安全修补软件”

• “用于备份和恢复的安装后安全建议”

2.1 有关安装的安全问题在安装或更新至新操作系统或新软件之前,应考虑安全性。请执行下列安全措施:

• 查看介质包的内容。阅读 http://docs.hp.com 网站上的发行说明以及其他相关信息。

• 确定需要的软件和不需要的软件。不要安装任何不必要的软件。请查阅本文档中的其他章节,以帮助确定安全软件产品。

• 将系统从网络(尤其是公用网)上断开连接或分离,直到完成安全性修改为止。

• 确保系统控制台得到物理方法的保护,并确保 LAN 控制台已断开连接或仅在允许(保护)纯文本协议(例如 telnet)的网络上使用。该安全性考虑极为重要。限制对系统控制台的访问有助于防止未经授权的用户更改系统的安全设置。

• 安装最新的修补软件(尤其是安全修补软件)。有关详细信息,请参阅“安装安全修补软件”。

• 维护一个备份和恢复系统。有关详细信息,请参阅“用于备份和恢复的安装后安全建议”。

2.2 防止在引导过程中发生安全违例在引导序列过程中,可能会发生安全违例。这种情况下,引导过程将被中断,并允许未经授权的用户访问系统。如果在重新引导系统之前错误或恶意地更改了某些系统文件,则系统在重新引导期间和重新引导之后可能出现问题。因此,请执行下列预防性任务:

• 确保通过物理的方法来保护系统和系统控制台的安全,并且只允许授权用户具有访问权限。

• 启用引导身份验证功能,以便仅允许指定用户可引导系统进入单用户模式。请参阅“使用引导身份验证功能防止未经授权的访问”。

• 确保系统文件受到写保护,对某些文件还可能需要实施读保护。

下面是对打开或重置计算机时发生的引导序列的概述。《HP-UX 系统管理员指南:概述》的“《引导系统》”一节中详细说明了引导序列。1. 在引导过程中,大约有 10 秒钟的等待时间,用户可以在此期间改写自动引导序列。入侵

者可在此时中断引导序列并进入系统。

2.1 有关安装的安全问题 21

Page 22: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

用户可通过按下任意键中断引导序列,来获取超级用户访问权限。ISL 将提示用户输入命令。输入以下命令可使系统进入单用户模式:

ISL> hpux -is

如果没有使用引导身份验证功能,则用户可以超级用户身份登录,且无须提供口令。

引导身份验证仅允许指定用户以超级用户身份登录。

2. 如果未中断引导序列,则将继续执行初始化过程。

3. HP-UX 在完成初始化过程后便开始正常运行,以备登录。此时,如果入侵者已获得超级用户访问权限,则可发生另一安全违例。

如果入侵者中断引导过程,就可获得对该系统的超级用户访问权限,并在理论上拥有该系统。该所有权允许入侵者通过大量机制更改系统。

2.3 为超级用户启用安全登录功能很多网络协议(例如 rlogind 和 telnetd)不对网络通信进行加密,使得入侵者很容易从网络探查到管理口令。应尽量减少使用这些非安全协议。

要防止通过此类协议进行管理登录,可以使用 /etc/securetty 文件将登录到超级用户帐户的方式限制为仅通过系统控制台登录。例如,要将超级用户登录限制为仅通过控制台登录,应创建 /etc/security 文件,其中仅包含由控制台组成的一行。有关详细信息,请参阅 login(1)。

2.4 使用引导身份验证功能防止未经授权的访问引导身份验证功能使用口令身份验证来保护单用户模式引导。通过该功能,用户可对系统进行配置,使得只有授权用户才能引导计算机进入单用户模式。必须在重新引导系统之前启用引导身份验证功能。

可通过 /etc/default/security 文件中的下列两个属性来配置引导身份验证功能:

• BOOT_AUTH 启用或禁用引导身份验证功能。如果指定 BOOT_AUTH=1,将启用引导身份验证功能。缺省情况下,将禁用身份验证 (BOOT_AUTH=0)。

• BOOT_USERS 定义能够在启用引导身份验证功能后以超级用户身份登录的用户。BOOT_USERS 中列出的姓名以逗号分隔。例如:BOOT_USERS=root,mary,jack,amy,jane

BOOT_USERS=root 为缺省值。

/etc/default/security 配置文件在 第 3 章 和 security(4) 中进行了说明。

2.5 设置安装时安全选项通过安装时安全选项,可配置 Bastille 安全锁定引擎,它包含 HP-UX IPFilter 防火墙。系统安装完成之后,该系统将具有一个预配置的安全级别。

在安装过程中,可从下列四种预配置的安全级别中进行选择:

Sec00Tools 安装安全基础结构,但不启用可选的安全功能。这是缺省值。

Sec10Host 安装基于主机的锁定系统,但不配置 HP-UX IPFilter 防火墙。如果使用此安全级别,将禁用大多数网络服务。可通过运行 bastille(1M) 命令恢复这些服务。

22 安全安装 HP-UX 操作环境

Page 23: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

Sec20MngDMZ 安装受管锁定系统,该系统可通过 HP-UX IPFilter 防火墙阻止大多数传入流量。

Sec30DMZ 安装 DMZ 完全锁定系统,该系统基于主机并且是 IPFilter 网络锁定的。HP-UX IPFilter 几乎会阻止所有传入连接。

有关 HP-UX IPFilter 的信息,请参考《HP-UX IPFilter Administrator's Guide》,该文档位于:http://www.docs.hp.com/en/internet.html#HP-UX%20IPFilter

2.6 安装安全修补软件安装之后,应立即应用必需的和推荐的修补软件。

有关修补软件、维护和支持的详细信息,请参考《HP-UX 11i Version 3 Installation and UpdateGuide》(位于 http://itrc.hp.com)的“Keeping Up to Date with the Latest Critical Patches”一节。

Security Patch Check 工具可分析与安全修补软件相关的系统状态。该工具可针对系统上的安全弱点推荐修补软件。

注释: 使用 Security Patch Check 软件工具有助于提高系统的安全,但不能保证系统的安全。

Security Patch Check 可简化确定 HP-UX 11i 系统上是否具有所有相关安全修补软件的过程。Security Patch Check 可提供下列功能:

• 生成一个尚未安装或应用的推荐安全操作的报告。

• 帮助自动检查系统上缺少的安全修补软件、更新或手动操作。

• 列出与系统上存在的修补软件相关的警告。

• 与 HP Systems Insight Manager 和 Servicecontrol Manager 产品集成。此外,Security Patch Check 还可集成到 HP-UX Bastille 中,以便于设置。

2.6.1 Security Patch Check 文档资料可以获取下列 Security Patch Check 文档资料:

• security_patch_check(1M) 和 bastille(1M) 联机帮助页。将联机帮助页目录 /opt/sec_mgmt/share/man 添加到 MANPATH 环境变量。

• /opt/sec_mgmt/spc/doc/README 中的 Security Patch Check README 文件,该文件也可从以下网站获得:

http://docs.hp.com/hpux/onlinedocs/1352/README.html

• Security Patch Check 常见问题 (FAQ),可从以下网站获得:http://docs.hp.com/hpux/onlinedocs/1353/faq.html

2.6.2 预订 HP-UX 安全公告可通过电子邮件从 HP 电子支持中心自动接收安全公告。. 要自动接收新的 HP 安全公告,请使用浏览器访问 HP 电子支持中心页:http://itrc.hp.com注册为用户,并选择“维护与支持”和“预订安全公告和补丁程序摘要”以便自动接收安全公告。

2.6 安装安全修补软件 23

Page 24: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

2.6.3 使用 security_patch_check 命令的示例以下是使用 security_patch_check 命令的两个示例。在第一个示例中,该命令会检索最新的安全公告目录,并将其存储到 ./security_catalog文件中:

$ security_patch_check -r

HP SECURITY PATCH CHECK (SPC) SOFTWARE TOOL DISCLAIMER.Use of the SPC software tool can help efficiently optimize

system security, but does not guarantee system security.Information about security actions obtained through use of

the SPC software tool is provided on an "AS-IS" basis only and is subject to change without notice.HP DISCLAIMS ALL

WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS

FOR A PARTICULAR PURPOSE.Customer acknowledges that the customer is responsible for their system's security.You

must accept the terms of this disclaimer to use security_patch_check.Type "accept" (without quotes) within 2 minutes

to accept the terms of the above disclaimer> accept

在第二个示例中,Security Patch Check 分析 machineA,并输出一个发现的缺失修补软件的列表:

$ security_patch_check -h machineA -q -m

2.7 用于备份和恢复的安装后安全建议在系统运行之后,仍必须维护其安全。应经常维护系统的备份和恢复文件。以下提供了一些准则:

• 只能使用 fbackup 和 frecover 命令对文件进行有选择地备份和恢复。只有 fbackup和 frecover 可以保留 ACL。当备份和恢复文件以便在未实现 ACL 的系统上使用时,应对这些命令使用 -A 选项。请参阅 fbackup(1M) 和 frecover(1M)。

• 如果计划将文件恢复到另一个系统,请确保用户在两个系统上的用户名和组名一致。

• 请记住,备份介质是很敏感的材料。只有经过证实确有需要时,才允许访问介质。

• 应标记备份磁带并将其存放在安全的位置。最安全的方式是存放在现场外。档案文件至少应保留六个月,之后可以回收介质。

• 执行每日增量备份以及完整的每周备份。

应使备份日程与组织中的信息流保持同步。例如,如果主数据库每周五更新,则需要在周五晚上调度每周备份。

• 如果必须按日程表备份所有文件,应在执行备份之前要求所有用户注销。如果某个文件在备份执行过程中发生变更,fbackup 命令会向您发出警告。

• 检查上一次备份的日志文件,以确定备份期间出现的问题。对备份日志文件设置限制性权限。

• 请注意,frecover 命令允许覆盖文件。但是,文件备份后会保留权限和 ACL 集。

• 事先测试恢复进程,以确保在出现紧急事件的情况下可以完全恢复数据。

• 从另一台计算机恢复文件时,如果新的系统上没有用户和组,则可能要执行 chown 命令,来为它们现在所在的系统设置用户 ID 和组 ID。如果文件要恢复到没有指定组的新系统,

24 安全安装 HP-UX 操作环境

Page 25: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

则该文件将取得运行 frecover 命令的用户的组所有权。如果属主和组的名称在不同的系统上具有不同的含义,可能会出现意外的和不需要的恢复结果。

• 尽管电源故障不应导致文件丢失,但是,如果有人报告在电源故障后丢失了某个文件,则应在从备份磁带将其恢复之前,先在 /lost+found 中查找该文件。

• 要检验待恢复的磁带中的内容,应使用 frecover 命令的 -I 选项来预览磁带上的文件索引。备份过程不会更改文件系统的现有权限。frecover 命令将阻止您在文件权限不允许的情况下读取该文件。

• 永远不要在当前目录恢复任何关键文件,例如 /etc/passwd 或 /tcb/files 中的文件,而应将文件恢复到临时目录(不要使用 /tmp),并授予该目录 drwx------ 权限,以防止其他任何人使用。将已恢复的文件与要替换的文件进行比较。进行任何必要的更改。

• 请务必打开审核功能。系统恢复后,不会自动启用审核。

2.7 用于备份和恢复的安装后安全建议 25

Page 26: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

26

Page 27: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

3管理用户和系统安全性本章解决安装操作系统后的基本用户安全性问题。其中重点介绍登录、口令以及用户与系统的其他交互。其中包括下列主题:

• “管理用户访问权限”

• “登录时验证用户身份”

• “使用 PAM 验证用户身份”

• “管理口令”

• “定义系统安全属性”

• “处理 setuid 和 setgid 程序”

• “防止堆栈缓冲区溢出攻击”

• “保护无人照管的终端和工作站”

• “防止远程设备对系统的访问”

• “保护登录标题”

• “保护超级用户帐户”

3.1 管理用户访问权限授权用户可以通过提供有效的用户名(登录名)和口令访问系统。每个用户都由 /etc/passwd文件中的一个条目进行定义。可以使用 HP System Management Homepage (HP SMH) 添加、删除、停用、重新激活或修改用户帐户。

有关口令的详细信息,请参考 passwd(4) 和 passwd(1),并请参阅本文档中的“管理口令”(第 37 页)。

3.1.1 监视用户帐户以下是用于监视用户帐户的指导:

• 定期检查 last、lastb 和 who 命令的输出,以查找异常登录。

• 验证是否具有帐户的所有用户都具有访问系统的合法业务需求。

• 要警惕多个用户共用同一个用户帐户的情况。不要允许两个用户共用同一个用户帐户。

• 验证是否有其他用户帐户共用同一个用户 ID (UID)。

• 确保所有帐户都使用定期更改的安全口令。

• 验证是否所有用户主目录都具有适当的权限。大多数主目录都具有读取权限,但对其他用户没有写入权限。为了起到更好的保护作用,请仅为目录属主设置读取、写入和执行权限。

• 确保所有用户都了解安全策略。在每个用户的主目录中放置一个公司安全策略文件。

• 检查未使用帐户的 /etc/passwd 文件,尤其是对于那些已离开公司的用户。

• 检查超级用户帐户,查看谁具有超级用户访问权限。

3.1 管理用户访问权限 27

Page 28: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

• 考虑实施 HP-UX 基于角色的访问控制,以尽量降低因多个用户可以访问超级用户帐户而带来的风险。有关详细信息,请参阅第 4 章 (第 55 页)。

• 检查 guest 帐户,查看其使用频率。

3.1.2 监视 guest 帐户要获得最高的安全级别,请不要允许 guest 帐户或开放帐户。如果已经存在 guest 帐户,请执行下列操作:

• 经常更改 guest 口令。管理员可以指定口令。

• 使用受限的 Shell (rsh) 来限制对系统的访问。有关 rsh 命令的信息,请参考 sh(1) 和sh-posix(1)。

• guest 帐户通常会被遗忘。通过使用下列方法之一,可在不使用时禁用 guest 帐户:

使用针对单个用户的安全属性,在特定的不活动天数之后自动禁用该帐户。有关详细信息,请参考 security(4),并参阅“INACTIVITY_MAXDAYS 和影子口令文件” (第 44 页)。

• 使用以下命令锁定 guest 帐户:# passwd -l guest

• 使用以下命令删除 guest 帐户:# userdel guest

• 安排一个自动锁定临时帐户的 at 作业:# at now +14 days passwd -l tempacct

• 定期扫描 /var/adm/wtmp 和 /var/adm/sulog 文件,查找未使用帐户。有关详细信息,请参考 sh(1) 和 su(1)。

3.1.3 创建应用程序用户帐户如果用户使用 HP-UX 只是为了启动某个应用程序,则他们不需要访问 Shell。这些用户应该只使用应用程序(例如数据库管理系统),而无需访问任何 HP-UX 功能。要限制对 HP-UX 的访问,请修改 /etc/passwd 文件,使得在用户登录后只执行一条特定命令。/etc/passwd 文件包含登录过程中必需的信息:

• 用户名

• 加密的口令

• 用户 ID

• 组 ID

• 注释字段

• 主目录

• 登录程序

28 管理用户和系统安全性

Page 29: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

通常,登录程序是一个 Shell(例如 /bin/sh),但是它并不必是一个 Shell。通过将相应的应用程序标识为登录 Shell,可以创建专属帐户,该帐户直接使用户登录到应用程序。下面是一个限制用户只能运行 date 命令的示例。相应的 /etc/passwd 条目为:username:rc70x.4,sx2:20:1:run only date command:/home/date:/usr/bin/date

用户在登录提示符处输入用户名及相应的口令。此时将执行 date 命令,然后该用户将立即注销。

login:用户名

Password:xxxxxx

Tue Nov 14 18:38:38 PDT 2006

3.1.4 管理组帐户当组需要共享或访问与项目相关的文件时,请执行下列步骤以确保安全性:

1. 验证是否每个成员都在 /etc/passwd 中有一个对应的条目。2. 在 /etc/group 文件中,为组创建一个条目。3. 为组创建一个共享目录。

drwxrwx-- root project /home/projects

4. 在每个组成员的 ~/.profile 中设置 umask。在以下示例中,组中的用户可以读取、写入和执行文件,但是其他用户不可以执行这些操作:

umask u=rwx,g=rwx, o=

3.2 登录时验证用户身份要访问系统及其资源,要求用户登录。通过控制对系统的访问,可以尝试阻止未经授权的用户访问系统。不过,即使未经授权的用户已经获得访问权限,仍然可以阻止其运行消耗资源的应用程序以及访问系统数据。本节说明在 login 过程中,从用户键入用户名到显示 Shell 提示符期间所发生的事情。

3.2.1 登录过程说明下列步骤说明了登录过程。这些信息说明创建唯一的用户名以及维护一个口令安全性策略是非常重要的。有关详细信息,请参考 login(1)。1. 安装系统之后,桌面的登录管理器将显示登录屏幕。如果已安装通用桌面环境 (CDE),它

将显示 CDE 登录屏幕。2. init 程序会衍生一个 getty 进程,该进程提示用户输入用户名。用户输入用户名。getty

程序将用户名传递给 login 程序。3. login 程序在 /etc/passwd 中搜索该用户名。

• 如果该用户名存在,则 login 会转到第 4 步。

• 如果该用户名不存在,则 login 会执行下列检查:

• 提示输入口令 (Password:)。

• 如果输入的口令无效,则系统会显示 Invalid login 错误消息。

3.2 登录时验证用户身份 29

Page 30: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

• 更新 /var/adm/btmp 文件(如果存在)。/var/adm/btmp 文件将跟踪无效的登录尝试。有关详细信息,请参阅“检查登录跟踪文件(btmp 和 wtmp)”。

• 连续三次登录失败后将退出。

4. login 进程验证 /etc/passwd 文件。

• 如果设置了口令字段,login 会提示输入口令并转到第 5 步。

• 如果未设置口令字段,则用户不必输入口令,login 会转到第 6 步。

5. login 进程将输入的口令与 /etc/passwd 中的加密口令进行比较。

• 如果两个口令一致,login 会转到第 6 步。

• 如果两个口令不一致,login 会显示 Invalid login。login 进程最多可允许连续三次登录失败。在用户第三次登录失败后,login 将退出。

6. login 进程更新用于跟踪有效登录的 /var/adm/wtmp 文件。有关详细信息,请参阅“检查登录跟踪文件(btmp 和 wtmp)”。成功登录后,将初始化用户组 ID 和组 ID、组访问列表以及工作目录。

7. 然后,login 进程会运行文件 /etc/passwd 的命令字段中的命令。通常,命令字段是Shell 的路径名,例如 /bin/ksh、/bin/csh 或 /bin/sh。如果命令字段为空,则缺省值为 /bin/sh。命令字段不必一定是 Shell。有关运行其他命令的例子,请参阅“创建应用程序用户帐户”。

8. 完成 Shell 初始化之后,系统会显示一个提示符并等待用户输入。通过使用 PAM(Pluggable Authentication Modules,可插拔验证模块),可使 login 进程对用户执行进一步的身份验证。有关详细信息,请参阅 pam.conf(4) 和 “使用 PAM 验证用户身份”(第 31 页)。

3.2.2 检查登录跟踪文件(btmp 和 wtmp)下列文件用于保留登录的日志记录:

• /var/adm/btmp 文件跟踪失败的登录。

• /var/adm/wtmp 文件跟踪成功的登录。

使用 lastb 命令可读取 /var/adm/btmp 文件,以查看是否有未经授权的用户尝试登录。可使用 last 命令读取/var/adm/wtmp 文件。last 和 lastb 命令按降序显示最近的用户信息。wtmp 和 btmp 文件会无限制地增长,因此要定期检查这两个文件。请定期删除无用信息,以防止文件过大。wtmp 和 btmp 文件不是由负责维护它们的程序创建的。如果删除了这些文件,将关闭登录记录功能。

一个常见错误是,用户登录时在登录提示符处输入口令或部分口令。此类登录失败情况将记录在 btmps 文件中,从而暴露了口令或部分口令。由于这个原因,应该对 btmps 设置文件保护,使得只有管理员可读取该文件。

# chmod 400 /var/adm/btmps

30 管理用户和系统安全性

Page 31: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

如果安全性策略要求某个用户以前的会话不能被其他用户看到,则可能还需要更改 /var/adm/wtmp 文件的文件保护设置。有关详细信息,请参阅 last(1)、utmp(4) 和 wtmp(4)。utmp 数据库是一个用户记帐数据库,它由 utmpd 命令根据 /var/adm/utmp 进行管理和同步。应用程序可以访问 utmps 数据库。请参阅 utmpd(1M) 和 utmps(4)。

3.2.2.1 last 命令示例本节包含几个使用 last 命令的示例。以下命令在控制台终端上列出了所有超级用户会话以及所有会话:

# last root console | moreroot pts/1 Mon Mar 12 16:22 - 18:04 (01:41)abcdeux console Mon Mar 12 10:13 - 10:19 (00:06)root pts/2 Fri Mar 9 13:51 - 15:12 (01:21)abcdeux console Thu Mar 8 12:21 - 12:22 (00:00)root pts/ta Wed Mar 7 15:38 - 18:13 (02:34)

以下命令列出了进行重新引导的时间:

# last rebootreboot system boot Sun Mar 28 18:06 still logged inreboot system boot Sun Mar 28 17:48 - 18:06 (00:17)reboot system boot Sun Mar 28 17:40 - 17:48 (00:08)reboot system boot Thu Feb 19 18:25 - 17:40 (37+23:15)reboot system boot Mon Feb 16 13:56 - 18:25 (3+04:28)

3.2.3 检查已登录用户who 命令用于检查 /etc/utmp 文件以获取当前用户的登录信息。此外,who 命令还可列出登录情况、注销情况、重新引导情况、系统时钟更改,以及 init 进程所衍生的进程。可使用 who -u 命令监视当前登录的用户。例如:# who -uaperson console Aug 5 11:28 old 5796 system.home.company.comaperson pts/0 Aug 17 18:11 0:03 24944 systemaperson pts/1 Aug 5 11:28 1:14 5840 system

有关详细信息,请参阅 who(1)。

3.3 使用 PAM 验证用户身份可插拔的身份验证模块 (PAM) 是行业标准框架,它提供身份验证、帐户管理、会话管理和口令服务。本节概述 PAM,并说明 PAM 配置文件 /etc/pam.conf 和 /etc/pam_user.conf。有关详细信息,请参阅 pam(3)、pam_*(5)、pam.conf(4)、pam_user.conf(4) 和 security(4)。

3.3 使用 PAM 验证用户身份 31

Page 32: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

3.3.1 概述PAM 允许灵活选择系统上可用的任何验证服务。使用 PAM 框架还可以插入新的验证服务模块,并且无需修改应用程序即可使用。

无论用户是在本地登录还是以远程方式登录(例如,使用 login 或 rlogin),都必须检查或验证用户是否为系统的合法用户。由于验证方法不断改进和变化,登录服务也必然会改变。为了避免由于修订验证代码而频繁更改登录服务,开发了 PAM,它允许使用不同的验证方法而无需修改登录代码。

因此,登录验证、帐户检查以及口令修改使用 PAM 界面。要求验证用户身份的程序将它们的请求传递给 PAM,PAM 在确定相应的验证方法后会返回适当的响应。程序不需要知道正在使用的是哪种验证方法。有关概要信息,请参阅图 3-1 “PAM 下的 HP-UX 验证模块”。

图 3-1 PAM 下的 HP-UX 验证模块

libpam_ntlm.1

PAM 库

身份验证服务

使用 PAM 配置文件 /etc/pam.conf 来指明要使用的验证模块。

libpam_krb5.1libpam_unix.1

libpam_ldap.1libpam_dce.1

请求验证

login su passwd

UNIX DCE Kerberos LDAP NTLM

验证方法是使用下列 PAM 系统文件在系统范围内以及各用户的基础上指定的:

32 管理用户和系统安全性

Page 33: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

/etc/pam.conf 系统范围控制文件。定义要将哪些服务模块与服务配对。这些模块会被视为系统缺省值。

/etc/pam_user.conf 单个用户控制文件。定义服务模块对特定的用户使用的选项。此文件是可选的。

有关详细信息,请参阅 pam(3)、pam.conf(4)、pam_updbe(5) 和 pam_user.conf(4)。

3.3.2 PAM 库PAM 服务模块是通过共享库实现的。通过PAM,多种验证技术可以共存于 HP-UX 中。/etc/pam.conf 配置文件确定要使用的验证模块。PAM 库包括:

• PAM_DCE

PAM_DCE 模块支持将 DCE 集成到系统入口服务(例如 login、telnet、rlogin、ftp)。PAM_DCE 模块提供验证、帐户管理和口令管理等模块功能。这些模块通过PAM_DCE 库 /usr/lib/security/pam_dce.sl 支持。有关详细信息,请参阅pam_dce(5)。

• PAM_HPSEC

PAM_HPSEC 模块管理特定于 HP-UX 的用于验证、帐户管理、口令管理和会话管理的扩展。对于 login、dtlogin、ftp、su、remsh、rexec 和 ssh 等服务,必须使用 /usr/lib/security/$ISA/libpam_hpsec.so.1。这些服务必须在一个或多个非可选模块上的堆栈顶部放置 libpam_hpsec.so.1。pam_hpsec 模块还实施 /etc/default/security 中定义的几个属性。有关详细信息,请参阅 pam_hpsec(5) 和 security(4)。

• PAM_KRB5

Kerberos 是一种网络验证协议,它不传输明文口令,从而支持进行安全的网络通信。口令由 Key Distribution Center (KDC) 进行验证,后者随后发出 Ticket Granting Ticket (TGT)。PAM Kerberos 共享库为 /usr/lib/security/libpam_krb5.1。有关详细信息,请参阅 pam_krb5(5)。

• PAM_LDAP

LDAP(Lightweight Directory Access Protocol,轻量级目录访问协议)是一种通过目录服务来集中用户信息、组信息和网络管理信息的标准。验证在 LDAP 目录服务器上进行。有关详细信息,请参阅 http://docs.hp.com/hpux/11iv2/index.html 上的 LDAP-UX 文档。

• PAM_NTLM

PAM NT LAN Manager 支持 HP-UX 用户在系统登录时对照 Windows 服务器进行身份验证。PAM NTLM使用 NT 服务器来验证要登录到 HP-UX 系统的用户的身份。有关详细信息,请参阅 http://docs.hp.com/hpux/11iv2/index.html 上的 《HP CIFS Client Administrator'sGuide》。

• PAM_UNIX

PAM_UNIX 模块提供所有四种 PAM 模块的功能:验证、帐户管理、会话管理和口令管理。这些模块通过 PAM UNIX 库 /usr/lib/security/libpam_unix.1 支持。有关详细信息,请参阅 pam_unix(5)。

• PAM_UPDBE

3.3 使用 PAM 验证用户身份 33

Page 34: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

PAM 的用户策略定义服务模块 /usr/lib/security/libpam_updbe.1 读取在用户配置文件 /etc/pam_user.conf 中定义的选项,并将信息存储在 PAM 句柄中,以备以后的服务模块使用。有关详细信息,请参阅 pam_updbe(5)。

3.3.3 使用 /etc/pam.conf 进行系统范围配置PAM 配置文件 /etc/pam.conf 定义用于验证用户身份的安全机制。它的缺省值可使系统在标准 HP-UX 和受信任的系统下进行常规运行。它还支持对单个用户的控制以及 DCE 集成登录功能。

注释: 对于 DCE,使用 auth.adm 实用程序可创建所需的配置文件。该文件的功能等同于以前的 HP 集成登录文件 auth.conf。有关详细信息,请参阅 auth.adm(1m)。

只有系统中存在 libpam 和 libpam_unix PAM 库以及 /etc/pam.conf 配置文件时,用户才能登录或更改口令。

HP-UX 验证依赖于文件 /etc/pam.conf。该文件必须由具有下列文件权限的超级用户所有:-r--r--r-- 1 root sys 1050 Nov 8 10:16 /etc/pam.conf

如果该文件已被破坏或系统缺少该文件,超级用户可以以单用户模式登录到控制台来解决该问题。

受保护的服务名在系统控制文件 /etc/pam.conf 中列出,分为四个测试类别 (module-type):验证、帐户、会话和口令。

有关详细信息,请参阅 pam(3)、pam.conf(4) 和 pam_user.conf(4)。

3.3.4 示例 /etc/pam.conf 文件下面列出了一个示例 /etc/pam.conf 文件中的一部分。以磅字符 (#) 开头的行是注释行。/etc/pam.conf 中的各区段分别为验证管理、帐户管理、会话管理和口令管理。## PAM configuration## Notes:## If the path to a library is not absolute, it is assumed to be# relative to the directory /usr/lib/security/$ISA/## For PA applications, /usr/lib/security/$ISA/libpam_unix.so.1 is a# symbolic link that points to the corresponding PA (32 or 64-bit) PAM# backend library.## The $ISA (i.e. Instruction Set Architecture) token will be replaced# by the PAM engine with an appropriate directory string.# See pam.conf(4).## Also note that the use of pam_hpsec(5) is mandatory for some of# the services.See pam_hpsec(5).

34 管理用户和系统安全性

Page 35: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

## Authentication management#login auth required libpam_hpsec.so.1login auth required libpam_hpsec.so.1su auth required libpam.hpsec.so.1 bypass_setaudsu auth required libpam_unix.so.1dtlogin auth required libpam_hpsec.so.1dtlogin auth required libpam_unix.so.1dtaction auth required libpam_hpsec.so.1dtaction auth required libpam_unix.so.1ftp auth required libpam_hpsec.so.1ftp auth required libpam_unix.so.1rcomds auth required libpam_hpsec.so.1rcomds auth required libpam_unix.so.1sshd auth required libpam_hpsec.so.1sshd auth required libpam_unix.so.1OTHER auth required libpam_unix.so.1## Account management#login account required libpam_hpsec.so.1login account required libpam_unix.so.1su account required libpam_hpsec.so.1su account required libpam_unix.so.1

3.3.5 /etc/pam_user.conf 用户配置文件PAM 配置文件 /etc/pam_user.conf 在单个用户的基础上配置 PAM。此文件是可选的。只有在 PAM 应用程序需要对不同用户表现出不同的行为方式时,才需要该文件。通过在 /etc/pam_user.conf 中列出选项,可以为各个用户分配不同的选项。对于这里列出的某个登录名,相应列出的选项将替换在 /etc/pam.conf 中为模块类型和模块路径指定的任何选项。

/etc/pam_user.conf 中的条目使用以下语法:login-name module-type module-path options

其中:

login-name 是用户的登录名。

module-type 是在 /etc/pam.conf 中指定的模块类型。module-path 是与 /etc/pam.conf 中的模块类型关联的模块路径。options 模块可识别的零个或者多个选项。

/etc/pam_user.conf 的缺省内容为注释:#

# This file defines PAM configuration for a user. The configuration

3.3 使用 PAM 验证用户身份 35

Page 36: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

# here overrides pam.conf.

#

# The format for each entry is:

# user_name module_type module_path options

#

# For example:

#

# user_a auth /usr/lib/security/libpam_unix.1 debug

# user_a auth /usr/lib/security/libpam_dce.1 try_first_pass

# user_a password /usr/lib/security/libpam_unix.1 debug

#

# user_b auth /usr/lib/security/libpam_unix.1 debug use_psd

# user_b password /usr/lib/security/libpam_unix.1 debug use_psd

#

# See the pam_user.conf(4) manual page for more information

#

3.3.6 示例:PAM 的登录工作原理下列示例说明了 login 的 auth 进程,对应于不同的 /etc/pam.conf 文件配置:

• 如果 /etc/pam.conf 中包含一个标准的 login auth 条目(如下所示),则 login 会按正常方式执行:

login auth required /usr/lib/security/libpam_unix.1

• 如果存在两个或多个系统范围内的 login auth 条目(如下所示),则会按顺序执行:login auth required /usr/lib/security/libpam_unix.1login auth required /usr/lib/security/libpam_dce.1

在这种情况下,将执行标准 HP-UX login 进程。然后执行 DCE 验证进程。如果两次验证均通过,则登录成功。即便用户未通过其中某次验证,也会执行这两个进程。

• 如果需要对不同的用户使用不同的验证方法,应将特殊条目 libpam_udpbe 放置在 /etc/pam.conf 中验证模块的前面(为方便引用,各行均带编号):#/etc/pam.conf#1login auth required /usr/lib/security/libpam_udpbe.1#2login auth required /usr/lib/security/libpam_unix.1#3login auth required /usr/lib/security/libpam_dce.1

然后将每个受影响的用户所对应的条目放置在 /etc/pam_user.conf 中:#/etc/pam_user.conf#4

36 管理用户和系统安全性

Page 37: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

allan auth /usr/lib/security/libpam_unix.1 debug#5allan auth /usr/lib/security/libpam_dce.1 try_first_pass#6isabel auth /usr/lib/security/libpam_unix.1 debug use_psd

当 allan 登录时,/etc/pam.conf 中的第 1 行将导致 PAM 读取 /etc/pam_user.conf。由于 /etc/pam_user.conf 的第 4 行和第 5 行中的模块路径与/etc/pam.conf 的第 2 行和第 3 行中的模块路径一致,PAM 将临时性地分别用 debug和 try_first_pass 替换 /etc/pam.conf 的第 2 行和第 3 行中的空选项字段。然后用修改后的选项执行第 2 行和第 3 行指定的模块。当 isabel 登录时,/etc/pam.conf 中的第 1 行将导致 PAM 读取 /etc/pam_user.conf,并临时性地用 debug use_psd 替换 /etc/pam.conf 第 2 行中的选项字段。第 3 行不变。然后用修改后的选项执行第 2 行和第 3 行指定的模块。当 george 登录时,/etc/pam.conf 中的第 1 行将导致 PAM 读取 /etc/pam_user.conf。由于不存在对应于 george 的条目,所以 /etc/pam_user.conf 的第 2 行和第 3 行将不变。将毫无变化地执行第 2 行和第 3 行指定的模块。

3.4 管理口令口令是最重要的单个用户标识符。通过它,系统可验证一个用户的身份,以便允许该用户访问系统。由于口令在使用、存储或已知的情况下容易泄露,因此必须始终秘密保存。下列各节将进一步讨论口令。

3.4.1 系统管理员职责系统管理员以及系统中的每个用户必须共同承担保护口令安全的职责。系统管理员执行下列安全任务:

• 确保所有用户都有自己的口令。

• 在所有系统文件中应用适当的权限,包括标准的口令文件和组文件,即 /etc/passwd 和/etc/group。

• 对于无权再访问系统的用户,应删除其用户 ID 和口令,或者使其用户 ID 和口令无效。

• 验证是否所有应用程序口令都已加密。

• 验证为 /var/adm/btmp 和 /var/adm/wtmp 设置的权限是否正确。

• 对每次 guest 访问使用一次性口令。

• 告知用户与口令安全性相关的职责。

• 利用口令时限性强制用户定期更改其口令。

• 防止重新使用最近的口令。

• 在 /etc/default/security 文件中配置系统范围的安全属性。有关详细信息,请参阅“定义系统安全属性”,并参考 security(4)。

• 转换系统以使用影子口令。有关详细信息,请参阅“/etc/shadow 影子口令文件”以及shadow(4) 和 pwconv(1M)。

3.4 管理口令 37

Page 38: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

3.4.2 用户职责每个用户必须遵守下列规则:

• 记住口令,并始终将它秘密保存。

• 立即更改初始口令,并坚持更改口令。

• 报告任何状态变更,以及任何值得怀疑的安全违规现象。

• 确保输入口令时无人监视。

3.4.3 好口令的标准选择口令时应遵守下列准则并将其传达给用户:

• 选择的口令至少应有 6 个字符,最多不超过 80 个字符。特殊字符可以包括控制符以及诸如星号和斜杠之类的符号。在标准模式下,只使用前 8 个字符。

• 不要选择可以在任何语言的字典中找到的单词,即便反过来拼也不可以。有一些软件程序可以找到并匹配您使用的单词。

• 不要选择容易与用户关联起来的口令,例如家庭成员或宠物的名字,或者是某种业余爱好。

• 不要使用简单的键盘序列(例如 asdfghjkl)或登录名的重复(例如,如果登录名为ann,则 annann 便不是好的口令)。

• 可以考虑使用拼错的单词或两个不相关单词的音节组合来组成适合的口令。另一种常用的方法是使用最喜欢的标题或短语的前几个字符作为口令。

• 可以考虑使用口令生成器来组合音节以生成可发音的混乱文字。

• 不要与其他用户共享口令。管理人员必须禁止共享口令。

• 始终使用口令。不要清除 /etc/passwd 文件中的口令字段。

3.4.4 更改 /etc/passwd 口令文件标准系统维护一个口令文件:/etc/passwd。

所有口令输入后便立即加密,并存储在口令文件 /etc/passwd 中。在比较过程中仅使用加密的口令。

如果需要更改口令文件,请遵守下列准则:

• 不允许有任何空的口令字段;否则便是安全违例。空口令字段允许任何用户为该帐户设置口令。

• 不要直接编辑口令文件。应使用 HP SMH 或者 useradd、userdel 或 usermod 命令来修改口令文件条目。如果必须直接编辑口令文件,请使用 vipw 命令,并使用 pwck 命令进行检查。有关详细信息,请参阅vipw(1M) 和 pwck(1M)。

3.4.4.1 passwd 命令示例下面是一些有用的 passwd 命令示例:• 重置用户的口令:

# passwd user1

38 管理用户和系统安全性

Page 39: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

• 在下次登录时强制更改口令:

# passwd -f user1

• 锁定或禁用帐户:

# passwd -l user2

• 启用口令时限性:

# passwd -n 7 -x 28 user1

• 查看特定用户的口令时限性状态:

# passwd -s user

• 查看所有用户的口令时限性状态:

# passwd -sa

3.4.4.2 /etc/passwd 文件格式/etc/passwd 文件用于在用户登录时验证其身份。对于 HP-UX 系统中的每个帐户,该文件都包含一个相应的条目。每个条目均由冒号分隔的七个字段组成。典型的 /etc/passwd 条目应与下面的示例类似:

robin:Z.yxGaSvxAXGg:102:99:Robin Hood,Rm 3,x9876,408-555-1234:/home/robin:/usr/bin/sh

字段包含下列信息(按顺序列出),各信息之间用冒号分隔:

1. robin - 用户(登录)名,最多由 8 个字符组成。2. Z.yxGaSvxAXGg - 加密口令字段3. 102 - 用户 ID,为 0 到 MAXINT-1(等于 2、147、483、646 或 231 -2)之间(含)的

整数。

4. 99 - 组 ID,来自 /etc/group,为 0 到 MAXINT-1 之间(含)的整数。5. Robin Hood,Rm 3,x9876,408-555-1234 - 注释字段,用于标识诸如用户的全名、位

置和电话号码等信息。由于历史原因,该字段也称为 gecos 字段。6. /home/robin - 主目录,用户的起始登录目录。7. /usr/bin/sh - 登录 shell 路径名,用户登录时执行。用户可以分别通过调用 passwd、chfn 以及 chsh 来更改口令、注释字段(第五个字段)以及登录程序路径名(第七个字段)。余下的字段由系统管理员设置。用户 ID 必须是唯一的。有关详细信息,chfn(1)、chsh(1)、passwd(1) 和 passwd(4)。

3.4.5 /etc/shadow 影子口令文件可用于恶意口令解密器的计算能力的不断提高使 /etc/passwd 文件中的非隐藏口令非常容易被解密,

3.4 管理口令 39

Page 40: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

而影子口令将加密的口令隐藏在影子口令文件中,从而增强了系统安全性。可以将先前存储在公共可读文件 /etc/passwd 中的加密口令移动至 /etc/shadow 文件中,只有具有适当权限的用户才可以访问此文件。

使用下列命令可启用、验证和禁用影子口令:

• pwconv 命令创建影子口令文件,并将加密的口令从 /etc/passwd 文件复制到 /etc/shadow 文件。

• pwck 命令检查文件 /etc/passwd 和 /etc/shadow 中的不一致性。

• pwunconv 命令将加密的口令和时限性信息从 /etc/shadow 文件复制到 /etc/passwd文件中,然后删除 /etc/shadow 文件。

有关详细信息,请参阅 pwconv(1M)、pwck(1M)、pwunconv(1M) 和 shadow(4)。请注意有关影子口令功能的下列各点。

• 启用影子口令功能后,如果应用程序直接访问 /etc/passwd 文件的口令字段来获取口令和时限性信息,则这些应用程序会受到影响。此字段现在会包含一个 x,表示此信息位于/etc/shadow 中。使用 PAM 接口进行验证的应用程序不会受到影响。要以编程方式访问 /etc/shadow 文件,请使用 getspent() 调用。这些调用类似于/etc/passwd 的 getpwent() 调用。有关详细信息,请参阅 getspent(3C) 和getpwent(3C)。

• 在 /etc/nsswitch.conf 文件中,影子口令受 files、NIS 和 LDAP 名称服务支持,但是其他名称服务器转换后端可能不支持影子口令。要配置系统使其仅使用 files、NIS和(或) LDAP,请确保 /etc/nsswitch.conf 中的 passwd 行仅包含 files、NIS和(或) LDAP。如果 /etc/nsswitch.conf 不存在,或者其中不存在 passwd 行,则缺省值仅是 files。有关详细信息,请参阅 nsswitch.conf(4)。

• 影子口令基于在其他 UNIX 系统中提供的 de facto 标准。

/etc/default/security 中定义的下列属性适用于影子口令。有关详细信息,请参阅“定义系统安全属性”以及 security(4) 联机帮助页。

• INACTIVITY_MAXDAYS - 帐户过期前可处于非活动状态的天数。

• PASSWORD_MINDAYS - 可以更改口令前的最少使用天数。

• PASSWORD_MAXDAYS - 口令的最大有效天数。

• PASSWORD_WARNDAYS - 警告用户口令过期之前的天数。

下列产品支持影子口令:

• 轻量级目录访问协议 (LDAP)

• Ignite-UXht 目录访问协议 (LDAP)

• Serviceguard

下列软件不支持影子口令:

• Process Resource Manager (PRM)

• 预期口令保存在 /etc/passwd 中的应用程序

40 管理用户和系统安全性

Page 41: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

有关详细信息,请参阅下列联机帮助页:

passwd(1)、pwck(1M)、pwconv(1M)、pwunconv(1M)、getspent(3C)、putspent(3C)、nsswitch.conf(4)、passwd(4)、security(4)、shadow(4)

3.4.6 在 /etc/passwd 中消除伪帐户并保护密钥子系统传统的 /etc/passwd 文件包含大量的“伪帐户”,即与各个用户无关且没有真正的交互式登录Shell 的条目。其中的一些条目(例如 date、who、sync 和 tty)是为方便用户而形成的,它们提供无需登录即可执行的命令。为了加强安全性,在分发的 /etc/passwd 中已将其删除,这样这些程序只能由已登录的用户运行。

其他类似的条目则保留在 /etc/passwd 中,因为它们是文件的属主。具有属主的程序(例如adm、bin、daemon、hpdb、lp 和 uucp)可作用于整个子系统,并且代表一种特例。由于它们授予对它们所保护或使用的文件的访问权限,因此必须在 /etc/passwd 中列出相应的条目,以便允许这些程序作为伪帐户运行。传统的伪帐户和特殊帐户如示例 3-1 “伪帐户和特殊系统帐户”所示。

示例 3-1 伪帐户和特殊系统帐户

root::0:3::/:/sbin/shdaemon:*:1:5::/:/sbin/shbin:*:2:2::/usr/bin:/sbin/shsys:*:3:3::/:adm:*:4:4::/var/adm:/sbin/shuucp:*:5:3::/var/spool/uucppublic:/usr/lbin/uucp/uucicolp:*:9:7::/var/spool/lp:/sbin/shnuucp:*:11:11::/var/spool/uucppublic:/usr/lbin/uucp/uucicohpdb:*:27:1:ALLBASE:/:/sbin/shnobody:*:-2:-2::/:

这些子系统特权状态的关键是能够授予对受其管辖的程序的访问权限,而无需授予超级用户访问权限 (uid 0),相反,它们设置可执行文件的 setuid 位,并使进程的有效用户对应于可执行文件的属主。例如,cancel 命令是 lp 子系统的一部分,因此它作为有效用户 lp 运行。设置 setuid 后,该子系统的安全调停机制会强制将所有程序的安全性局限在子系统范围内,而不是整个系统范围内。因此,子系统中有害于安全性的弱点也仅仅只局限于这些子系统内的文件。违例不能影响到其他子系统下的程序。例如,lp 下的程序不会影响到 daemon 下的程序。

3.4.7 使用 HP-UX Secure Shell 进行安全登录HP-UX Secure Shell 提供安全的远程登录、文件传输和远程命令执行功能。客户端和服务器之间的所有通信都经过加密。通过网络传输的口令不再以明文形式发送。有关详细信息,请参阅ssh(1) 和 “使用 HP-UX Secure Shell (SSH) 保护远程会话”。

3.4 管理口令 41

Page 42: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

3.4.8 保护存储在 NIS 中的口令网络信息服务 (NIS) 是网络文件系统 (NFS) 的一部分。NIS 支持从一个中心位置(即主服务器)对多个主机进行配置管理。不是将主机配置分别存储在各个主机上,而是将信息整合到一个中心位置。/etc/password 文件是存储在 NIS 服务器上的多个配置文件之一。/etc/shadow 影子口令文件在 NIS 上不受支持。有关 NIS 的信息,请参阅《NFS Services Administrator's Guide》。

3.4.9 保护存储在 LDAP 目录服务器中的口令LDAP-UX Client Services 与 PAM 进行交互来验证存储在 LDAP 目录服务器上的口令。PAM_LDAP库提供验证服务。

3.5 定义系统安全属性安全属性提供对系统配置的附加控制,可以增强口令、登录和审核的安全性。

有 20 多个属性。这些属性在 security(4) 中进行了说明。属性类别概括如下:登录属性 这些属性控制登录活动,例如登录时间、允许的登录次数,以及

在锁定帐户前允许登录失败的次数。

口令属性 这些属性控制口令活动,例如口令长度、字符数和字符类型、历史记录长度、更改口令的天数以及口令过期时间。

引导属性 这些属性控制引导验证,定义授权哪些用户可以以单用户模式引导系统。请参阅第 2 章“安全安装 HP-UX 操作环境”中的引导验证信息

.

切换用户 (su) 属性 这些属性定义 PATH 环境变量值、su 命令的根组名,以及 su 是否应传送特定的环境变量。有关详细信息,请参阅 su(1)。

审核属性 此属性控制是否对用户进行审核。登录过程中会检查审核属性。有关 HP-UX 审核的详细信息,请参阅 audit(5)。

umask 属性 此属性用于控制对 pam_unix 或 pam_hpsec 启动的所有会话执行 umask()。有关详细信息,请参阅 pam_unix(5) 和pam_hpsec(5)。登录过程中会检查 umask 属性。

系统使用下列文件来处理这些属性:

• /etc/default/security

• /var/adm/userdb

• /etc/security.dsc

• /etc/passwd

• /etc/shadow

每个属性都只在下列其中一个位置上有一个针对单个用户的值:/etc/password、/etc/shadow 或 /var/adm/userdb 中的用户数据库。每个属性及其针对单个用户的位置都在联机帮助页 security(4) 中进行了说明。系统通过下列方法检查应用了哪些属性:

42 管理用户和系统安全性

Page 43: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

• 系统检查 /var/adm/userdb 用户数据库、/etc/passwd 文件或 /etc/shadow 文件中的针对单个用户的属性值。

• 如果未找到针对单个用户的值,则之后系统会检查 /etc/default/security 中的可配置的系统范围缺省属性。

• 如果未找到可配置的系统范围¼º省属性,则之后系统会使用 /etc/security.dsc 中的缺省属性。

安全属性说明文件 /etc/security.dsc 列出了可以在 /etc/default/security 中以及/var/adm/userdb 的用户数据库中定义的属性。一些属性是可配置的,而另一些则是内部属性。请不要以任何方式修改 /etc/security.dsc 文件。

3.5.1 配置系统范围属性下列步骤说明了如何定义系统范围的安全属性。

1. 查看 security(4) 联机帮助页,其中说明了可配置的系统范围属性的缺省值。这些属性在/etc/default/security 文件中进行配置,该文件也在 security(4) 联机帮助页中进行了说明。

如果某个属性在 /etc/default/security 文件中未进行定义,则系统会使用在 /etc/security.dsc 文件中定义的缺省值。有关对 /etc/security.dsc 文件的说明,请参阅 userdb(4) 联机帮助页。

2. 要更改可配置的系统范围缺省值,请使用 vi 等文本编辑器编辑安全缺省值文件 /etc/default/security。该文件对¹于所有用户可读,对于超级用户可写。/etc/default/security 文件中的各行不是注释便是属性配置信息。注释行以磅字符(#) 开始。非注释行的格式为 attribute=value 对,例如 PASSWORD_MAXDAYS=30。

3.5.2 配置针对单个用户的属性使用下列命令可针对单个用户配置特定属性。配置针对单个用户的属性后,它们将改写系统范围缺省值。

userdbset 更改指定用户的属性以改写在 /etc/default/security 文件中定义的系统范围缺省值。有关示例,请参阅“使用 userdbset 定义用户特定属性的示例”,另请参阅 userdbset(1M) 以了解详细信息。

userdbget 显示用户为特定用户或所有用户定义的值。有关详细信息,请参阅userdbget(1M)。

userdbck 验证或修复用户定义的值。有关详细信息,请参阅 userdbck(1M)。例如,可以仅将用户 amy 的 PASSWORD_MAXDAYS 值从 60 天更改为 30 天。这样,amy 的口令有效期就是 30 天而不是 60 天。而对其他所有用户,则应用系统范围值 60 天。要更改某个用户的属性值,请使用下列步骤:

1. 查看 security(4) 联机帮助页,其中说明了系统范围属性和值,以及如何设置针对单个用户的值。并非所有属性都有针对单个用户的值。

2. 查看 userdbset、userdbget 和 userdbck 命令的联机帮助页。3. 确定要修改的用户,以及要应用于这些用户的属性。例如,可能希望财务部门的用户每 30天更改一次口令,而一个班级的学生每个季度更改一次口令。

4. 使用 userdbset 命令更改用户的属性。

3.5 定义系统安全属性 43

Page 44: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

针对单个用户的信息存储在 /var/adm/userdb 目录下的用户数据库中。userdb(4) 联机帮助页中对用户数据库进行了说明。

不能使用 userdbset 命令配置所有属性。某些针对单个用户的值在文件 /etc/passwd和 /etc/shadow 中定义。有关详细信息,请参阅 security(4)。

5. 使用 userdbget 命令获取用户信息。

3.5.2.1 使用 userdbset 定义用户特定属性的示例在以下示例中,userdbset 命令删除用户 joe 的所有用户定义属性。当 joe 登录后,将对joe 应用 /etc/default/security 中定义的系统范围缺省值。# /usr/sbin/userdbset -d -u joe

接下来,userdbset 将最小口令长度设为 7,并将 UMASK 设为 0022(八进制 022)。这些更改仅应用于 joe。# /usr/sbin/userdbset -u joe MIN_PASSWORD_LENGTH=7 UMASK=0022

在下一个例子中,userdbset 显示用户 amy 的所有属性:# /usr/sbin/userdbget -u amyamy AUDIT_FLAG=1amy DISPLAY_LAST_LOGIN=0

在显示中,启用 amy 的审核标记并禁用其上次登录功能。

3.5.2.2 INACTIVITY_MAXDAYS 和影子口令文件/etc/default/security 文件中定义的 INACTIVITY_MAXDAYS 属性控制是否在系统范围基础上使非活动帐户过期。要改写系统范围缺省值并在单个用户的基础上配置INACTIVITY_MAXDAYS,请使用 useradd -f 命令或 usermod -f 命令。使用 userdel 命令可删除针对单个用户的配置。有关详细信息,请参阅联机帮助页 useradd(1M)、usermod(1M)和 userdel(1M)。不能使用 userdbset 命令在单个用户的基础上配置 INACTIVITY_MAXDAYS。INACTIVITY_MAXDAYS 属性与影子口令文件的非活动字段相关。useradd 和 usermod 命令修改指定用户的影子口令文件的非活动字段。有关详细信息,请参阅 security(4) 联机帮助页中对 INACTIVITY_MAXDAYS 的说明。

3.5.3 用户数据库故障排除请使用下列步骤对用户数据库进行故障排除。

问题 1:用户的安全属性似乎配置错误。 如果怀疑用户数据库中的用户信息配置错误,请运行以下命令:

# userdbget -u 用户名

此时将显示为用户 username 所配置的属性。如果某个属性配置错误,请重新配置该属性。问题 2:用户数据库运行不正常。 如果需要检查用户数据库,请输入以下命令:# userdbck

44 管理用户和系统安全性

Page 45: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

userdbck 命令确定并修复用户数据库中的问题。

3.6 处理 setuid 和 setgid 程序由于程序 setuid(设置用户 ID)和 setgid(设置组 ID)可引发潜在的系统安全隐患,所以请注意这两个程序。系统攻击者可以利用 setuid 和 setgid 程序,并且通常以下面的两种方式之一来利用这两个程序:

• 通过交互的方法或使用脚本来使 setuid 或 setgid 程序执行攻击者指定的命令。

• 用伪造数据来取代程序创建的数据。

遵守下列准则可保护 setuid 和 setgid 程序的安全:

• 监视对 setuid 和 setgid 程序的任何更改。

• 进一步研究那些看起来不必是 setuid 的程序。

• 将不必是 setuid 程序的权限更改为 setgid 程序。有关详细信息,请参阅 chmod(1) 和chmod(2)。ls 命令的长形式(ll 或 ls -l)通过对属主执行权限列出 S 或 s(而不是 - 或 x)来显示 setuid 程序。它通过对组执行权限列出 S 或 s(而不是 - 或 x)来显示 setgid 程序。

可以期望找到 setuid 和 setgid 系统文件,但它们所具有的权限应与出厂介质所提供的权限相同,除非您对其进行了定制。

• 通常不应允许用户拥有 setuid 程序,尤其是当他们将 setuid 用于除他们自身以外的其他用户时。

• 检查从外部源中导入的所有程序的代码中是否有称为特洛伊木马的破坏性程序。永远不要恢复或安装来源无法检查的 setuid 程序。

• 要允许用户访问某些超级用户程序,HP 建议您使用受限 SMH。受限 SMH 允许非超级用户访问 SMH 的特定区域。有关详细信息,请参阅 sam(1M)。

3.6.1 为什么 setuid 和 setgid 程序存在隐患无论何时执行任何程序,它都会创建具有四个 ID 编号的进程,这四个编号分别是:真正的用户ID 和有效的用户 ID(ruid 和 euid)以及真正的组 ID 和有效的组 ID(rgid 和 egid)。通常,这些 ID 对是完全相同的。但是,运行 setuid 或 setgid 程序会将进程的 euid 或 egid 从与属主关联的 ID 更改为对象的 ID。所衍生的进程从对象获得其属性,从而授予用户与程序属主和组相同的访问权限。

• 如果打开 setuid 位,则进程的权限将设置为文件属主的权限。

• 如果打开 setgid 位,则进程的权限将设置为文件组的权限。

• 如果 setuid 和 setgid 位均未打开,则进程的权限不会变化。

• 一种特别危险的情况是,如果使用 setuid 将程序设置为 root,用户将获得 root 可用的所有权限。这是很危险的,因为在这种情况下,使用程序的方式可能会破坏系统安全。在较小范围内,此问题在其他 setuid 和 setgid 情况下也存在。

3.6 处理 setuid 和 setgid 程序 45

Page 46: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

出于安全原因,HP-UX 内核通常会忽略脚本中的 setuid 和 setgid 位。通过更改可调参数secure_sid_scripts,可以放宽此规则,但强烈建议不要更改此可调参数的缺省值。有关此可调参数的详细信息,请参阅 secure_sid_scripts(5)。

3.6.2 如何设置 ID可以通过下列不同方法设置 ID:

• ruid 和 rgid 是从 login 进程继承来的,该进程设置您的 uid 和 gid。uid 和 gid 值在 /etc/passwd 中指定。

• login 命令也可更改 ruid、euid、rgid 和 egid。

• su 命令可更改 euid 和 ruid。

• newgrp 命令可以更改 gid。

• 通过使用 chmod() 系统调用或 chmod 命令,可设置 setuid 和 setgid 位。有关详细信息,请参阅 chmod(1) 和 chmod(2)。

3.6.3 限制 Setuid 功能指导如果要将 setuid-to-root 程序添加到现有系统,应极其小心。添加 setuid-to-root 程序会更改系统的配置,并且可能会降低安全性。

可以通过下列管理和编程建议来强制实现特权程序的限制性使用:

• 只有在绝对必要的情况下才使用 setuid 和 setgid。

• 确保 setuid 程序对于其他用户而言是不可写的。

• 在任何可能的情况下,使用 setgid 来代替 setuid,以便缩小因代码缺陷或安全违例而带来的破坏的范围。

• 定期在文件系统中搜索新的或修改过的 setuid 和 setgid 程序。可以使用 ncheck -s命令。

• 准确了解 setuid 和 setgid 程序的作用,并确认它们只完成预定的功能。否则,应删除程序或其 setuid 属性。

• 如果必须复制 setuid 程序,请确保其模式对于目标文件而言是正确的。

• 编写 setuid 程序,以便可以在不使用 setuid 或 setgid 属性的情况下,就非关键数据对其进行测试。只有在代码已经过检查,并且所有受影响的部门都对新程序的安全维护功能感到满意后,才应用这些属性。

• 确保 setuid 程序不会创建除预定用户外的其他任何用户可写的文件。

• 在 exec*() 系统调用之前重置 euid。应注意 exec*() 可以在其他库例程内部被调用,并提防使用通过派生 Shell 来执行程序的例程(包括 popen()、system()、execlp()和 execvp())。有关详细信息,请参阅 exec(2)、popen(3S) 和 system(3S)。

• 编写 setuid 程序时,应围绕需要特权的代码片段来使用 setresuid(),以降低安全隐患。有关详细信息,请参阅 setresuid(2)。

• 在调用 exec*() 之前,应关闭所有不必要的文件描述符。

• 确保所有变量(PATH、IFS)以及程序环境中的 umask 值受到充分的限制。

46 管理用户和系统安全性

Page 47: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

• 不要使用 creat() 系统调用来创建锁定文件,而应使用 lockf() 或 fcntl()。有关详细信息,请参阅 lockf(2) 和 fcntl(2)。

• 尤其应注意避免缓冲区溢出,例如在未经过正确的参数长度验证的情况下使用 sprintf()、strcpy() 以及 strcat()。有关详细信息,请参阅 printf(3S) 和 string(3C)。

3.7 防止堆栈缓冲区溢出攻击向程序传递大量数据称为堆栈缓冲区溢出攻击。通常,这些数据中包含欺骗程序执行的命令。此类攻击的目的是要获取对系统的未经授权的访问、破坏或更改数据,或者导致对合法用户拒绝服务。

要监视堆栈缓冲区溢出攻击,请监视下列更改:

• 执行其他程序的 setuid 程序。

• 意外地获得零 (0) 用户 ID 的程序。为零的用户 ID 仅用于超级用户。要防止堆栈缓冲区溢出攻击,请执行下列操作:

• 启用 executable_stack 内核可调参数。

• 使用 chatr +es 命令。

通过内核可调参数 executable_stack 可防止程序执行其堆栈中的代码。这样,当有入侵者向程序传递非法数据时,可以提供相应的保护,从而防止程序执行其程序堆栈中的任意代码。

内核可调参数 executable_stack 全局性地启用或禁用堆栈缓冲区溢出保护。0(零)设置可导致堆栈不可执行,是保护系统安全的首选方法。缺省情况下,为了向后兼容,会将executable_stack 设置为 1,即允许堆栈执行,因此不提供保护功能。使用 HP SMH 或kmtune 命令可更改 executable_stack 的值。另外一种管理堆栈缓冲区溢出保护的方法是使用 chatr 命令的 +es 选项。例如,如果executable_stack 设为零,但程序确实需要执行其堆栈,则使用以下的 chatr 命令可允许该程序执行堆栈:

# chatr -es enable 程序

有关详细信息,请参阅 chatr(1)、kmtune(1M) 和 executable_stack(5)。

3.8 保护无人照管的终端和工作站无人照管的工作站和终端极容易受到未经授权用户的攻击。就像未锁定的前门一样,它们对所有人开放。本节介绍降低此风险的下列方法:

• 使用 /etc/inittab 和运行级别进行访问控制。编辑 /etc/inittab 以确定哪些设备将以不同的运行级别运行。

• 通过拒绝对用户终端会话的通用访问来保护终端设备文件。

• 配置屏幕锁定。

3.8.1 使用 /etc/inittab 和运行级别进行访问控制运行级别是一种系统状态,在该状态下允许运行一组特定的进程。这些进程和缺省运行级别是在文件 /etc/inittab 中定义的。运行级别为 0 到 6、s 或 S。如果进程的运行级别与系统的运行级别不同,则进程会被终止。如果相同,则会启动进程,或者进程继续执行。

3.7 防止堆栈缓冲区溢出攻击 47

Page 48: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

下面的例子用于使终端和调制解调器运行于选定的运行级别上。ttp1 和 ttp2 的运行级别均为2 和 3。ttp1:23:respawn:/usr/sbin/getty -h tty0p1 9600ttp2:23:respawn:/usr/sbin/uugetty -h ttypd0p2 9600

下面的例子用于在正常工作时间后更改运行级别,以便使用 cron 作业禁用终端和调制解调器。白天的运行级别为 3,可以使用终端 ttp1 和 ttp2,因为它们的运行级别为 2 和 3。周一到周五的每天上午 8:00,系统运行级别被设置为 3:# crontab -e

0 8 * * 1-5 /sbin/init 3

0 17 * * * /sbin/init 4

每天下午 5:00(上例中的 17 是指 17:00,即下午 5:00),系统运行级别被更改为 4。终端ttp1 和 ttp2 在下午 5:00 后无法运行,因为它们的运行级别为 2 和 3。

3.8.2 保护终端设备文件如果入侵者可以访问某个开放终端,则他们可以将命令重定向到另一个终端窗口中。在以下示例中,删除 (rm) 命令被重定向到 /dev/tty0p0:# echo "\r rm -r / \r\033d" > /dev/tty0p0

要防止将消息写入终端,可以使用 mesg -n(或 mesg n)命令。此命令可撤销不具有相应权限的用户的写入权限。有关详细信息,请参阅 mesg(1) 和 write(1)。# vi ~/.shrc

mesg n

另一种保护工作站或终端的方法是使用 xhost 命令。有关详细信息,请参阅 xhost(1)。xhost命令定义允许连接到工作站的主机和用户的名称。

# xhost +Another.system

要允许所有系统和用户访问工作站,从而关闭访问控制,请使用以下命令:

# xhost +

3.8.3 配置屏幕锁定本节讨论如何使用 TMOUT 变量和 CDE 锁定管理器配置屏幕锁定。

3.8.3.1 配置 TMOUT 变量可以配置 TMOUT 变量,以便自动锁定非活动终端。如果您经常使用其他系统,或者将 .profile 文件从一个系统复制到另一个系统,则向.profile 添加 TMOUT 变量会更加方便。如果您通常只使用一种系统,那么使用任何一种方法来锁定终端都可以。

要配置 TMOUT 变量,请以如下所示的方式编辑 .profile 文件:# vi ~/.profile

48 管理用户和系统安全性

Page 49: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

export TMOUT=600 #(600 秒的非活动时间后锁定)可以将 600 更改为其他所需值。

3.8.3.2 配置 CDE 锁定管理器可以配置 CDE 锁定管理器在特定的非活动时间之后锁定屏幕。要配置 CDE 锁定管理器在 10分钟非活动时间之后锁定屏幕,请输入下列命令:

# cp /usr/dt/config/C/sys.resources /etc/dt/config/C/sys.resources# vi /etc/dt/config/C/sys.resourcesdtsession*lockTimeout: 10

也可以使用式样管理程序任务面板来调整 CDE 锁定管理器。要执行此操作,请单击 screen 图标。

3.9 防止远程设备对系统的访问要防止通过远程访问来侵入系统,应采取下列预防措施:

• 要求对所有交互式调制解调器使用硬件回拨系统。

• 可以通过在 /etc/dialups 和 /etc/d_passwd(可选)中添加与调制解调器设备对应的条目,来要求调制解调器用户使用附加口令。请参阅“使用 /etc/dialups 和 /etc/d_passwd进行访问控制”。

• 要求用户经常更新他们的拨入帐户。

• 当用户不再是公司员工时,应立即取消他(她)对系统的访问权限。

• 建立定期审核安排来复查远程使用。

• 将调制解调器和回拨设备连接到一个 HP-UX 系统,并允许网络服务从这一点到达目标系统。

• 对 UUCP 访问建立回拨例外。可以通过适当的 UUCP 配置实现更多限制。有关详细信息,请参阅 uucp(1)。另一潜在例外是通过 kermit 进行的文件传输。有关详细信息,请参阅 kermit(1)。

• 如果发生了具有未知因素的安全违例,应关闭网络和电话访问,并通知网络管理员。

• 如果希望在配置回拨调制解调器系统时获得最大的安全性,应只将拨出机制专用于拨出功能,而不应将它配置为接受拨入。应对拨入服务使用另一根电话线上的另一个调制解调器。

• 不要将调制解调器的电话号码列出来,并使其处于与其他业务电话不同的系统中。不要将拨入电话号码公开。

• 以物理方式对调制解调器进行保护。

• 使用呼叫方 ID 来识别传入调制解调器的所有电话。

• 不允许在调制解调器电话线上进行呼叫转移或其他附加电话服务。不使用移动电话调制解调器。

• 对于远程和本地访问,考虑安装 HP-UX AAA 服务器产品。HP-UX AAA 服务器使用行业标准 RADIUS(Remote Authentication Dial-In User Service,远程身份验证拨入用户服务)协

3.9 防止远程设备对系统的访问 49

Page 50: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

议,在网络入口点处提供身份验证、授权和用户网络访问记帐功能。有关详细信息,请参阅《HP-UX AAA Server Administrator's Guide》。

• 对于通过 Mobile IPv6 进行的移动连接,使用 HP-UX IPSec 加密和验证 Mobile IPv6 客户端与主代理之间的 Mobile IPv6 协议消息。有关详细信息,请参阅《HP-UX IPSec Administrator'sGuide》。

3.9.1 使用 /etc/dialups 和 /etc/d_passwd 进行访问控制要提高识别远程用户方面的安全性,请在文件 /etc/dialups 和 /etc/d_passwd 中添加相应的条目。这两个文件用于控制登录时的拨号安全性功能。有关详细信息,请参阅 dialups(4)和 login(1)。如果 /etc/dialups 文件存在,登录进程会将终端与 /etc/dialups 中列出的终端进行比较。如果 /etc/dialups 中包含该终端,则 login 会要求输入口令。该口令将与 /etc/d_passwd 中的口令进行比较。此外,/etc/passwd 文件也用于验证该口令。以下是一个配置 /etc/dialups 文件的示例:# vi /etc/dialups(列出允许的终端)

/dev/ttyd0p1

/dev/ttyd0p2

# vi /etc/d_passwd

/usr/bin/sh:xxxencrypted-passwordxxxxxxxxx:comments/usr/bin/ksh:xxxencrypted-passwordxxxxxxxx:comments/sbin/sh:xxxencrypted-passwordxxxxxxxxx:comments用户看到的内容为:

Login:Password:

Dialup password:

要更改 /etc/d_passwd 中的口令,请使用如下的 passwd 命令:# passwd -F /etc/d_passwd shell_path

shell_path 是 /etc/d_passwd 中列出的 Shell 路径。

3.10 保护登录标题登录标题通常用于显示系统名称、发行版本及系统用途等系统信息。未经授权的用户可通过这些信息了解系统。下面是用于创建更安全的登录标题的一些准则:

• 咨询合法部门,确定适当的消息。

• 在标题消息中添加禁止未经授权使用的警告。

• 不管采用哪种方法登录,显示的内容应该一致。

可以通过下列方法修改标题:

50 管理用户和系统安全性

Page 51: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

• 修改 /etc/copyright 和 /etc/motd 中定义的 login 标题。

• 修改 /etc/issue 中定义的 telnet 标题。telnetd -b 标题文件命令用于定义定制标题。要将 /etc/issue 用作登录标题,请在 /etc/inetd.conf 文件中添加下列行:telnet stream tcp nowait root /usr/lbin/telnetd \telnetd -b /etc/issue

当 inetd 启动 telnetd 时,会使用 /etc/issue 中的标题。有关详细信息,请参阅inetd(1M)、telnetd(IM) 和 inetd.conf(4)。

• 修改在 ftpd 配置文件 /etc/ftpd/ftpaccess 中定义的 ftp 标题。在 /etc/ftpd/ftpaccess 中定义其他显示消息:问候语、标题、主机名和消息。有关详细信息,请参阅 ftpdaccess(4) 和 ftpd(1M)。

以下是一个未受保护的 telnet 示例,它显示了登录标题:# telnet computerAmy

telnet 登录标题显示了发行版本和机器类型。如果一个未经授权的用户试图使用 telnet 访问 computerAmy,这些信息就太多了。以下示例是一个显示更安全的登录标题的 telnet:$ telnet computerMom

Trying...

Connected to computerMom.city.company.com.

Escape character is '^]'.

Local flow control on

Telnet TERMINAL-SPEED option ON

**************************************************************

This is a private system operated for Hewlett-Packard company business.Authorization from HP management is required

to use this system.Use by unauthorized persons is prohibited.

*************************************************************

login:Connection closed by foreign host.

3.11 保护超级用户帐户下面是用于保护超级用户帐户的建议:

• 不要共享超级用户口令。

• 不要使用 / 作为超级用户主目录。

• 检查 last -R 和 lastb -R 的输出中是否有异常或失败的超级用户登录,并查看是谁以超级用户身份登录。

• 检查 /var/adm/sulog 是否有使用 su root 命令的尝试。

• 查找 UID 为零 (0) 的未经授权帐户;使用 logins -d 命令。

下列各节进一步讨论了如何保护超级用户帐户。

3.11 保护超级用户帐户 51

Page 52: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

3.11.1 监视超级用户帐户访问如果有两个或更多需要超级用户访问权限的系统管理员,则可以参考下列处理建议:

• 仅允许超级用户直接登录到系统控制台上。创建具有单个 console 条目的 /etc/securetty 文件,如下所示:#echo console > /etc/securetty

此限制适用于 UID 为零 (0) 的所有登录名。有关详细信息,请参阅 login(1)。

• 要求管理员从自己的帐户使用 su root 命令访问超级用户。例如:login:me$ su rootpassword:xxxx

• 监视 /var/adm/sulog,查看谁曾使用 su 访问超级用户。

• 为每个系统管理员配置单独的超级用户帐户。

# vipw

root:xxx:0:3::/home/root;/sbin/sh

root1:xxx:0:3::/home/root1:/sbin/shroot2:xxx:0:3::/home/root2:/sbin/sh

• 监视每个系统管理员的历史记录文件,如下所示:#more ~root1/.sh_history #more~root2/.sh_history

• 监视 /var/adm/syslog 中的成功和失败的 su 尝试。

3.11.2 将受限 SMH 生成器用于有限超级用户访问如果需要将有限超级用户访问权限授予非超级用户,可以激活受限 SMH 生成器。使用受限 SMH生成器可以为用户启用或禁用选定的 SMH 区域。要激活受限 SMH 生成器,请输入:# sah -r

具有受限访问权限的用户执行 SMH 时,他们将在定义的区域内具有超级用户身份,并且在菜单中只显示这些 SMH 区域。SMH 的所有其他区域将会隐藏,用户不能看到。没有访问权限的用户执行 SMH 时,他们将会收到一条错误消息,指明他们必须是超级用户。您也可以将更多应用程序添加到 SMH,并将这些应用程序设置为受限访问。

3.11.3 检查超级用户访问权限/var/adm/sulog 文件记录 su root 命令的所有尝试,包括失败的尝试。成功的尝试用加号(+) 标记,失败的尝试用减号 (-) 标记。只有超级用户可以查看 /var/adm/sulog 文件。例如:# su root

Password:

# ll /var/adm/sulog

-rw------- 1 root root 690 Aug 17 19:37 /var/adm/sulog

52 管理用户和系统安全性

Page 53: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

在以下示例中,userone 成功地使用 su 命令访问了超级用户。第二个用户 usertwo 则未成功。此外,usertwo 也未能成功使用 su 访问 gooduser1。# more /var/adm/sulog

SU 08/17 19:10:00 + 0 userone-root

SU 08/17 19:36 - 0 usertwo-root

SU 08/17 19:36 - 0 usertwo-root

SU 08/17 19:36 + 0 userone-root

SU 08/17 19:37 - 0 usertwo-gooduser1

3.11 保护超级用户帐户 53

Page 54: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

54

Page 55: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

4 HP-UX 基于角色的访问控制本章说明 HP-UX 基于角色的访问控制 (HP-UX RBAC)。本章包含下列主题:

• “概述”

• “访问控制基础”

• “HP-UX RBAC 组件”

• “规划 HP-UX RBAC 部署”

• “配置 HP-UX RBAC”

• “使用 HP-UX RBAC”

• “HP-UX RBAC 故障排除”

4.1 概述安全问题,尤其是平台安全问题,已经成为企业基础结构的一个重要问题。即使如此,很多组织过去往往会忽略或疏忽个人可追查性和最低权限等安全概念。不过,美国最近制定了一些法规,包括健康保险流通与责任法案(Health Insurance Portability and Accountability Act,HIPAA)和 Sarbanes-Oxley 法案,这有助于突出这些安全概念的重要性。多数企业环境中,系统都是由多个用户进行管理的。通常会为这些管理员提供一个公用共享帐户(称为超级用户)的口令,以便他们管理系统。具有超级用户口令的管理员能够执行所有操作,因此,超级用户帐户简化了访问控制管理,但超级用户帐户同时存在若干固有问题,这些问题会妨碍访问控制的管理,例如:

• 在向管理用户提供超级用户口令后,如果希望进一步约束这些用户,则没有任何便捷方法。

• 在最好的情况下,撤销某个管理员的访问权限需要更改公用口令,并通知其他管理员。更现实的问题是,仅仅更改该口令可能不足以有效地撤销其访问权限,因为该管理员可能已经实现了某种备用访问机制。

• 在使用公用超级用户帐户的情况下,几乎无法实现个人可追查性。因此,在安全事件后进行恰当分析是非常困难的,在某些情况下甚至不可能实现。

HP-UX 基于角色的访问控制 (RBAC) 功能解决了这些问题,通过它提供的功能,可以向适当配置的普通用户帐户分配一组任务。HP-UX RBAC 还降低了基于单个用户逐个分配和撤销授权的相关管理开销。

HP-UX RBAC 提供下列功能:

• HP-UX 专用的预定义配置文件,便于轻松快速部署

• 通过 Plugable Authentication Module (PAM) 实现灵活的重新身份验证,支持基于每条命令的限制

• 集成 HP-UX 审核系统,以便生成单个统一的审核记录

• 用于定制访问控制决策的可插拔体系结构

4.1 概述 55

Page 56: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

4.2 访问控制基础访问控制系统的目标是根据一组约束条件限制资源访问。通常,这些约束条件及其关联的属性符合下列类别:

• 主题:试图访问资源的实体。就操作系统环境而言,主题通常是用户或与用户关联的进程。

• 操作:对资源执行的操作。操作可以直接对应于应用程序或命令。对于 HP-UX RBAC 而言,操作是指以句点分隔的、具有一定层次结构的字符串,例如 hpux.user.add。

• 对象:操作的目标,它通常与最终资源相同,但也可以不同。

访问控制请求可以视为由以上元素构成的一个问题,而对问题的答复(通常为允许或拒绝)确定了是否授予资源访问权限。例如:

是否授权用户 ron 在对象 /dev/dsk/c0t1d0 上执行操作 hpux.fs.mount?通常,术语“授权”用作“访问控制”的同义词。在 HP-UX RBAC 中,授权指在对象上执行某操作的能力。如表 4-1 “针对单个用户的授权示例”所示,用户可以具有一组授权,每个授权授予对某资源的访问。

表 4-1 针对单个用户的授权示例

用户授权的操作组件

lizjimlisaron

hpux.user.add

hpux.user.delete

hpux.user.modify

••••hpux.user.password.modify

•hpux.network.nfs.start

•hpux.network.nfs.stop

•hpux.network.nfs.config

••hpux.fs.backup

••hpux.fs.restore

注释: 表 4-1 “针对单个用户的授权示例”仅显示授权的操作元素,而不是授权的对象元素。

4.2.1 使用角色简化访问控制除上文概述部分讨论的访问控制基本要素外,本节将说明如何表示访问控制策略以及如何执行决策。

上文关于访问控制的概述并没有解决如何表示访问控制以及如何执行决策的问题。一种方法是只需维护各用户及为其分配的授权(操作和对象的对)的列表。这种方法的优势在于它非常灵活,因为每个用户的授权集可以完全不同于其他用户的授权集。

但遗憾的是,这种方法很难管理,因为在您添加用户时,必须准确确定每个用户所需要的授权。同时,执行审核时,必须分别审查每个用户以确定其关联的授权。

56 HP-UX 基于角色的访问控制

Page 57: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

HP-UX RBAC 解决了这些问题,它将具有相同授权需求的用户组合在角色中。角色是简化授权分配和审核的一种分组机制。无需直接向用户分配授权,只需向角色分配授权。向系统中添加用户时,可以为用户分配一组角色,这些角色确定了该用户可以执行的操作以及可以访问的资源。

请比较以下两张表:列出了为角色分配的授权的表 4-2,以及列出了为每个用户分配的授权的表 4-1。通过比较这两张表,您可以了解角色是如何简化授权分配的。

表 4-2 针对单个角色的授权示例

角色授权的操作组件

AdminBackupOperNetworkAdminUserAdmin

••hpux.user.add

••hpux.user.delete

••hpux.user.modify

•hpux.user.password.modify

••hpux.network.nfs.start

••hpux.network.nfs.stop

••hpux.network.nfs.config

••hpux.fs.backup

••hpux.fs.restore

注释: 表 4-2 “针对单个角色的授权示例”仅显示授权的操作元素,而不是授权的对象元素。

4.3 HP-UX RBAC 组件以下是 HP-UX RBAC 主要组件的列表:privrun 包装命令 根据与用户关联的授权,privrun 会在执行授权检查及重

新执行用户身份验证(可选)后,调用具有权限的现有传统应用程序,并且不修改应用程序。

privedit 命令 根据与用户关联的授权,privedit 允许用户编辑其通常由于文件权限或访问控制列表 (ACL) 的限制而无权编辑的文件。

访问控制策略切换 (ACPS) 确定是否授权主题对某对象执行某操作。

访问控制策略模块 评估 HP-UX RBAC 数据库文件,并将映射策略应用于服务控制请求。

管理命令 编辑和验证 HP-UX RBAC 数据库文件。以下几节详细讨论 HP-UX RBAC 组件。

4.3.1 HP-UX RBAC 服务控制策略切换HP-UX RBAC 访问控制策略切换是一个可定制的接口,它位于必须执行访问控制决策的应用程序与访问控制策略模块之间,访问控制策略模块在解释 RBAC 数据库中的策略信息后提供决策响

4.3 HP-UX RBAC 组件 57

Page 58: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

应。如图 4-1 “HP-UX RBAC 体系结构”所示,通过其在 HP-UX RBAC 体系结构中的位置,ACPS在访问控制策略模块和执行访问控制决策的应用程序之间提供一个接口。

ACPS 具有下列接口(在各自的联机帮助页中均有详细说明):

• ACPS 应用程序编程接口 (API)

• ACPS 服务提供程序接口 (SPI)

• /etc/acps.conf

ACPS 的管理接口位于 /etc/acps.conf 配置文件中。/etc/acps.conf 配置文件确定 ACPS将查询的策略模块、查询模块的顺序以及组合各模块的响应的规则,以向需要访问控制决策的应用程序提供结果。通过该 ACPS 实现,您可以创建模块以强制应用定制策略,且无需修改现有基于角色的访问控制应用程序。

注释: 有关 ACPS 及其接口的详细信息,请参考 acps(4)、acps.conf(4)、acps_api(3) 和acps_spi(3)。

4.3.2 HP-UX RBAC 配置文件表 4-3 列出并简要说明了 HP-UX RBAC 文件。

表 4-3 HP-UX RBAC 配置文件

说明配置文件

包含所有有效授权的数据库文件。/etc/rbac/auths

包含命令与文件授权和权限的 privrun 数据库文件。/etc/rbac/cmd_priv

包含每个角色的授权的数据库文件。/etc/rbac/role_auth

定义所有已配置角色的数据库文件。/etc/rbac/roles

定义每个用户的角色的数据库文件。/etc/rbac/user_role

ACPS 的配置文件。/etc/acps.conf

识别要审核的特定 HP-UX RBAC 角色、操作和对象的审核过滤文件。/etc/rbac/aud_filter

4.3.3 HP-UX RBAC 命令表 4-4 “HP-UX RBAC 命令”列出并简要说明了 HP-UX RBAC 命令。

表 4-4 HP-UX RBAC 命令

说明命令

在执行授权检查及重新执行用户身份验证(可选)后,调用具有权限的传统应用程序。privrun

允许经过授权的用户编辑受访问控制限制的文件。privedit

编辑 /etc/rbac/user_role、/etc/rbac/role_auth 和 /etc/rbac/roles 文件中的角色信息。

roleadm

编辑 /etc/rbac/role_auth 和 /etc/rbac/roles 文件中的授权信息。authadm

58 HP-UX 基于角色的访问控制

Page 59: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

表 4-4 HP-UX RBAC 命令 (续)

说明命令

编辑 /etc/rbac/cmd_priv 数据库中的命令授权和权限。cmdprivadm

验证 HP-UX RBAC 和 privrun 数据库文件中的授权和语法。rbacdbchk

4.3.4 HP-UX RBAC 联机帮助页表 4-5 “HP-UX RBAC 联机帮助页”列出并简要说明了 HP-UX RBAC 联机帮助页。

表 4-5 HP-UX RBAC 联机帮助页

说明联机帮助页

说明 HP-UX RBAC 功能。rbac(5)

说明 ACPS 及其接口。acps(3)

说明 ACPS 配置文件及其语法。acps.conf(4)

说明 ACPS 应用程序编程接口。acps_api(3)

说明 ACPS 服务提供程序接口。acps_spi(3)

说明 privrun 的功能与语法。privrun(1m)

说明 privedit 的功能与语法。privedit(1m)

说明 roleadm 的功能与语法。roleadm(1m)

说明 authadm 的功能与语法。authadm(1m)

说明 cmdprivadm 的功能与语法。cmdprivadm(1m)

说明 rbacdbchk 的功能与语法。rbacdbchk(1m)

4.3.5 HP-UX RBAC 体系结构HP-UX RBAC 的主要组件是 privrun 命令,它调用现有命令、应用程序和脚本。privrun 命令使用 ACPS 子系统发出访问控制请求。访问请求的授予和拒绝取决于定义用户与角色以及角色与授权的映射的一组配置文件。

如果授予了访问请求,privrun 将以其他权限调用目标命令,其中可以包括 UID、GID、精细划分的权限以及隔离专区中的一项或多项。这些权限已经过配置,以便使目标命令成功运行。

图 4-1 显示了 HP-UX RBAC 体系结构。

4.3 HP-UX RBAC 组件 59

Page 60: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

图 4-1 HP-UX RBAC 体系结构

privrun

其他策略 ACPM 本地 RBAC ACPM

ACPS API

ACPS SPI用户信息(例如,/etc/passwd)

图例:

权限包装程序命令

访问控制切换

RBAC

未来组件预留

现有组件

privedit

/usr/sbin/cmdprivadm

命令,授权 权限数据库

PAM,名称服务切换

PAM服务模块

有效系统角色

有效系统授权

用户 角色数据库

角色 授权数据库

/usr/sbin/rbacdbck

/usr/sbin/roleadm

/usr/sbin/authadm

访问控制策略切换 (ACPS)

支持访问控制的应用程序

支持访问控制的应用程序

4.3.6 HP-UX RBAC 示例使用与运行图 4-2 “调用 privrun 后的运行示例”及后面的脚注显示 privrun 的一个示例调用以及 privrun用于确定是否允许用户调用命令的配置文件。

60 HP-UX 基于角色的访问控制

Page 61: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

图 4-2 调用 privrun 后的运行示例

用户 角色

授权

操作 对象

Privrun进程(shell)

1:1

有权限的命令

除了定义的权限之外

全部丢弃

命令,权限

12

34

5

多对多 多对多 多对多

命令、参数、UID

通过 ACPS

通过

AC

PS

/etc/rbac/user_role /etc/rbac/role_auth /etc/rbac/cmd_priv

1. 与用户关联的进程(特别是 Shell)执行 privrun,其目标是通过提升的权限执行目标命令。

2. 目标命令行行(命令和参数)显式传递至 privrun,调用用户的 UID 将通过进程上下文隐式传递。

3. privrun 尝试在 /etc/rbac/cmd_priv 数据库中查找指定命令行的一个或一组匹配项。每个匹配条目还指定了所需要的授权(操作与对象的对)以及如果用户具有指定授权时的相应权限。

4. privrun 调用 ACPS(针对每个匹配的 /etc/rbac/cmd_priv 条目)。ACPS 的 HP-UXRBAC 后端将查询 /etc/rbac/user_role 和 /etc/rbac/role_auth 数据库以确定用户是否具有指定的授权,并将该结果传回给 privrun。

5. 假定与该进程关联的用户已在 /etc/rbac/cmd_priv 数据库中为请求的命令指定了所需的授权,privrun 将使用 /etc/rbac/cmd_priv 条目中的指定权限执行请求的命令,并放弃其他所有权限。privrun 命令设置为 UID=0,并以所有必需权限启动。

4.4 规划 HP-UX RBAC 部署请在部署 HP-UX RBAC 之前执行下列规划步骤:1. 规划用户角色。

2. 规划角色授权。

3. 规划授权与命令的映射。

以下几节详细说明这些步骤。

4.4.1 规划角色为系统用户规划一组适当角色是部署 HP-UX RBAC 过程中的关键的第一步。在某些企业中,这组角色已经存在,您可以在配置 HP-UX RBAC 时重新使用这些角色。而更常见的情况是,您必须根据与系统上的管理用户关联的现有任务来设计角色。

设计角色时请注意下列指导原则:

4.4 规划 HP-UX RBAC 部署 61

Page 62: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

• 角色的数量应远远小于系统中的用户总数。如果每个用户都需要一个特殊角色,则与应用角色相关的所有简化管理都不复存在。

• 角色应该与用户的实际商业角色具有一定关系。

• 用户可以具有多个角色,因此您可以仅设计一些角色,来将通用的授权分组到多个商业角色中。通过这种方法,可以分层次地设计角色,从而通过包含其授权来包含不同角色。

4.4.2 规划角色的授权定义角色后,可以规划与每个角色关联的授权。如果角色符合预先存在的操作层次结构,则分配授权是很简单的。输入以下命令列出系统定义的所有授权:

# authadm list sys

如果现有授权层次结构不符合您的角色,定义与每个角色关联的授权则比较复杂。可以使用下列步骤来帮助您:

1. 列出每个角色常用的系统命令。

2. 将这些命令与 /etc/rbac/cmd_priv 数据库中的命令进行比较。3. 如果在执行前一步骤后发现匹配的条目,请使用这些条目来指导分配授权的操作。

例如,假定某个期望的角色是 UserOperator,它通常运行 useradd、usermod、userdel 等命令。要确定哪些授权可能适合该角色,请输入以下命令:

# grep useradd /etc/rbac/cmd_priv/usr/sbin/useradd:dflt:(hpux.user.add,*):0/0//:dflt:dflt:dflt:

在该示例中,/usr/sbin/useradd 命令需要 hpux.user.add 授权。您可以直接分配该授权,或将 hpux.user.* 分配作为授权。分配授权时,请谨慎使用通配符。以这种方式分配授权实际上将分配多个授权:

# grep hpux.user. /etc/rbac/cmd_priv

/usr/sbin/pwgrd:dflt:(hpux.user.cache.admin,*):0/0// :dflt :dflt :dflt :

/usr/sbin/userdel:dflt:(hpux.user.delete,*):0/0// :dflt :dflt :dflt :

/usr/sbin/groupdel:dflt:(hpux.user.group.delete,*):0/0// :dflt :dflt :dflt :

/usr/sbin/useradd:dfl:(hpux.user.add,*):0/0//:dflt:dflt:dflt:

/usr/sbin/usermod:dflt:(hpux.user.modify,*):0/0// :dflt :dflt :dflt :

/usr/sbin/groupadd:dflt:(hpux.user.group.add,*):0/0// :dflt :dflt :dflt :

/usr/sbin/groupmod:dflt:(hpux.user.group.modify,*):0/0// :dflt :dflt :dflt :

/usr/sbin/vipw:dflt:(hpux.user.modify,*):0/0// :dflt :dflt :dflt :

4.4.3 规划命令映射定义已定义角色常用的、在所提供的预定义 /etc/rbac/cmd_priv 文件中未包含的所有命令。/etc/rbac/cmd_priv 文件定义授权和命令之间的映射。针对每条命令确定下列项:

• 命令的完整路径

• 运行命令前要检查的必要授权

• 命令所需要的所有特殊权限,例如 euid=0

62 HP-UX 基于角色的访问控制

Page 63: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

构成 /etc/rbac/cmd_priv 文件中的操作和对象条目的文本字符串可以为任意字符,但它们应在逻辑上对应一条命令或一组命令。在 /etc/rbac/cmd_priv 中规划授权与命令之间的映射时,请考虑下列指导原则:

• 将操作定义在逻辑组内,以便轻松将操作分配给角色。

• 不要创建具有过多(大于 10 个)或过少(1 个)子元素的操作分支。整个树不应过宽,否则将很难分配操作组,也不应过高(单个操作的名称过长且难以使用)。

• 操作名称的最后一个元素以一个操作(动词)结束。

• 定义操作以便在添加新命令时可以准确插入适当位置。

有关配置其他命令的过程,请参阅“配置其他命令授权和权限”。

4.4.4 HP-UX RBAC 限制和约束下面是部署 HP-UX RBAC 前要考虑的事项列表:

• HP-UX RBAC 不支持单用户模式,因此,在需要使用单用户模式时,应具有超级用户帐户。

• Serviceguard 不支持使用 HP-UX RBAC 和 privrun 为 Serviceguard 命令授予访问权限。有关 HP-UX RBAC 和 Serviceguard 群集的详细信息,请参阅“Serviceguard 群集中的 HP-UXRBAC”。

• 与所有应用程序相同,HP-UX RBAC 遵守隔离专区(请参阅第 5 章“隔离专区”)的管理规则。对隔离专区使用 HP-UX RBAC 时,请牢记以下事项:

• 不能在受隔离专区定义限制的文件上运行 privedit。

• 要为其他应用程序提供精细划分的权限,运行 privrun 命令时必须使用要提供给该应用程序的那些权限。缺省情况下,配置为使用所有权限来运行 privrun(有关详细信息,请参阅 getfilexsec(1M))。但有时该缺省权限集可能会受到限制。例如,如果隔离专区被配置为禁止权限,则该指定将阻止 privrun 向该隔离专区中的应用程序提供权限,因为 privrun 自身不具有这些权限。请注意,在缺省情况下,会将密封的隔离专区配置为禁止 POLICY 复合权限。

• 要使 privrun 调用隔离专区中的其他应用程序,privrun 必须断言 CHANGECMPT 权限。如果 privrun 不能断言 CHANGECMPT 权限,例如,如果隔离专区被配置为禁止权限,则 privrun 将失败。该行为是有意图的,其设计目的在于加强密封隔离专区的概念。

4.5 配置 HP-UX RBAC配置 HP-UX RBAC 的过程包括三个步骤:1. 配置角色。

2. 配置授权。

3. 配置所有其他命令。

4.5 配置 HP-UX RBAC 63

Page 64: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

重要信息: 授权内置(硬编码)于 HP-UX RBAC 管理命令中,因而无法配置。但是,您可以配置哪些角色和用户具有所需要的 HP-UX RBAC 管理命令授权。HP-UX RBAC管理命令无需使用 privrun 命令进行包装,因为它们被设置为 setuid=0。调用HP-UX RBAC 管理命令以等效于超级用户的权限运行,而无论调用它的是什么用户。访问控制检查用于限制可以使用 HP-UX RBAC 管理命令的用户。有关每个 HP-UX RBAC 管理命令的授权的详细信息,请参阅这些管理命令各自的联机帮助页的“授权”部分。

“配置 HP-UX RBAC”一节使用表 4-6 “规划结果示例”中的示例规划结果和用户来说明 HP-UX RBAC管理命令和配置过程。

表 4-6 规划结果示例

典型命令授权

(注意:对象假定为 *)角色用户

/usr/sbin/useradd

/usr/sbin/usermod

hpux.user.*

hpux.security.*

UserOperatorchandrika、rwang

/sbin/init.d/inetdhpux.network.*NetworkOperatorbdurant、prajessh

/opt/customcmdhpux.*

company.customauth

Administratorluman

4.5.1 配置角色为用户配置角色的过程包括两个步骤:

1. 创建角色。

2. 将角色分配给用户或组。

4.5.1.1 创建角色使用 roleadm 命令创建角色,并将角色分配给用户或组。如果角色尚不存在,则必须先添加角色,然后才能将用户分配给这些角色。下面显示了 roleadm 命令的语法:roleadm add role [comments]

| delete role| modify oldrolename newrolename| assign user role| assign "&group" role| revoke user [role]| revoke "&group" [role]| list [user=username][role=rolename][sys]

下面列出了对 roleadm 命令的参数的简要说明:add 将角色添加到 /etc/rbac/roles 中的角色的系统列表中。

64 HP-UX 基于角色的访问控制

Page 65: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

delete 从 /etc/rbac/roles 中的角色的系统列表中删除角色。modify 在下列所有三个与角色相关的数据库文件中更改角色名

称:/etc/rbac/roles、/etc/rbac/user_role 和/etc/rbac/role_auth。

assign 将角色分配给用户或组,并更新 /etc/rbac/user_role。revoke 从用户或组中撤销某个角色,并从 /etc/rbac/user_role 中删除该条目。list 列出有效的系统角色 (sys) 或用户与角色之间的映射。

注释: 有关详细信息,请参阅 roleadm(1m) 联机帮助页。

下面是使用 roleadm 命令添加新角色的两个示例:# roleadm add UserOperatorroleadm:added role UserOperator

# roleadm add NetworkOperatorroleadm:added role NetworkOperator

注释: 随 HP-UX RBAC 提供的缺省配置文件中包含一个预配置的角色:管理员。缺省情况下,系统为“管理员”角色分配所有 HP-UX 系统授权 (hpux.*, *),并且将该角色与超级用户关联。

定义有效角色后,您可以将它们分配给一个或多个用户或组。试图将尚未创建的角色分配给用户时,会显示一条错误消息,指明该角色不存在。

4.5.1.2 将角色分配给用户分别执行角色创建与角色分配,这具有以下优势:

• 要求先创建角色再分配角色,这可以确保发现在角色分配期间指定角色名称时的所有录入错误。

• 允许不同用户分别执行每个任务。例如,同一个用户无需执行创建角色和分配角色这两个任务。

创建有效角色后,使用 roleadm 命令将它们分配给适当的用户,如下列示例所示:# roleadm assign luman Administratorroleadm assign done in /etc/rbac/user_role

# roleadm assign rwang UserOperatorroleadm assign done in /etc/rbac/user_role

使用 roleadm assign 命令向用户分配角色后,可以使用 roleadm list 命令验证是否已正确分配角色,例如:

# roleadm listroot: Administratorluman: Administratorrwang: UserOperator

4.5 配置 HP-UX RBAC 65

Page 66: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

注释: HP-UX RBAC 提供了一种功能,可以将名为 DEFAULT 的特殊用户添加到/etc/rbac/user_role 数据库中。将某个角色分配给 DEFAULT 用户意味着系统上不存在的所有用户都将分配该角色。

4.5.1.3 将角色分配给组通过 HP-UX RBAC,还可以将角色分配给组。您可以使用采用 user 值的roleadm 命令选项,例如 roleadm assign <user> role 和 roleadm revoke <user> role,来管理组和角色。

通过使用 roleadm 命令(在用户值的开始位置插入“与”(&) 符号并使用引号将用户值括起来),可以分配、撤销或列出组和角色的信息。组名称的值和“与”(&) 符号必须是 Shell 转义的或括在引号内,才能由 roleadm 命令解释。例如:# roleadm assign "&groupname" role

4.5.2 配置授权配置授权类似于创建和分配角色。但是,授权包含两个元素:操作和对象。在调用 authadm 命令时,如果未指定任何对象,则 * 通配符(最常用的对象)是使用的隐含通配符对象。在很多情况下,可以故意不指定任何对象,以便将操作应用于所有对象。不指定对象通常用于包装命令的授权,因为很难通过命令名称确定操作的目标。

这种对象不确定性的一个示例是 /usr/sbin/passwd 命令。passwd 命令可以对大量储备库执行操作,例如 /etc/passwd 文件、NIS 表和 LDAP 条目。通过查看命令行无法确定实际对象,因此要求用户对所有对象执行操作通常是最简单的方法,例如:(hpux.security.passwd.change, *)。

注释: 您可以为缺省对象配置一个值。缺省情况下,如果不指定对象,HP-UX RBAC 将使用* 通配符作为对象。但是,如果您在 /etc/default/security 中为 RBAC_DEFAULT_OBJECT=参数配置了一个值,则 HP-UX RBAC 将使用该值作为缺省对象,而不使用 * 通配符。

使用 authadm 命令编辑 HP-UX RBAC 数据库中的授权信息。authadm 的语法类似于 roleadm的语法。下面是 authadm 命令的语法:authadm add operation[object[comments]]

| delete operation[object]| assign role operation[object]| revoke [role=name][operation=name[object=name]]| list [role=name][operation=name[object=name][sys]

以下列出了对 authadm 命令的参数的简要说明:add 将授权添加到 /etc/rbac/auths 中的有效授权的系统列表中。delete 从 /etc/rbac/auths 中的有效授权的系统列表中删除授权。assign 将授权分配给角色,并在 /etc/rbac/role_auth 中添加一个条目。revoke 从角色中撤销授权,并更新 /etc/rbac/role_auth。list 列出针对单个系统或单个角色的有效授权,并列出与指定操作关联的角色。

66 HP-UX 基于角色的访问控制

Page 67: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

重要信息: 分配包含星号 * 符号的授权时,请务必谨慎,必须使用引号将通配符符号括起来,以防止被 Shell 解释,如以下示例所示。

下面是基于表 4-6 “规划结果示例”创建和分配授权的示例:# authadm add 'company.customauth.*'authadm added auth:(company.customauth.*,*)

# authadm assign Administrator 'company.customauth.*'authadm added auth for role Administrator

在 authadm 命令中使用 list 参数来验证授权分配,例如:# authadm listAdministrator:(hpux.*, *) (company.customauth.*, *)

4.5.3 配置其他命令授权和权限您必须定义缺省配置中未提供的任何其他命令。运行命令所需要的授权必须已经存在且必须已分配至某角色。如果尚未实现此要求,您仍可以配置命令,但任何用户均不会被授予使用该命令的适当授权。

使用 cmdprivadm 命令编辑命令的授权和权限信息。cmdprivadm 命令的工作方式类似于roleadm 和 authadm,但只允许在 privrun 数据库中添加和删除命令权限和授权。下面显示了 cmdprivadm 命令的语法:cmdprivadm add <cmd=命令完整路径名 | 文件完整路径名> |[op=operation]|[object=object] |[ruid=ruid]|[euid=euid] |[rgid=rgid]|[egid=egid] |[compartment=compartment label] |[privs=comma separated privilege list] |[re-auth=pam_service name] |[flags=comma separated flags list]

cmdprivadm delete <cmd=full path name of a command | full path name of a file>

|[op=operation]|[object=object]

|[ruid=ruid]|[euid=euid]

|[rgid=rgid]|[egid=egid]

|[compartment=compartment label]

|[privs=comma separated privilege list]

|[re-auth=pam_service name]

|[flags=comma separated flags list]

下面列出了对 cmdprivadm 的两个主要命令参数的简要说明:add 将命令(或文件)授权信息添加到 /etc/rbac/cmd_priv 数据库中。

4.5 配置 HP-UX RBAC 67

Page 68: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

delete 将命令(或文件)授权信息从 /etc/rbac/cmd_priv 数据库中删除。以下示例显示了最常用的 cmdprivadm 参数:# cmdprivadm add cmd=/opt/customcmd op=companyname.customcommand ruid=0 euid=0 flags=edit

/opt/customcmd::(companyname.customcommand,*):0/0/-1/-1::::edit

cmdprivadm added the entry to /etc/rbac/cmd_priv

如上面的示例所示,cmd_priv 文件数据库文件中包含一个标记值字段。配置命令或文件授权和权限信息时,请务必考虑 cmdprivadm flags 的值。privrun 命令可识别一个已定义的标记 KEEPENV。如果针对某特定命令在 cmd_priv 文件中设置了 KEEPENV 标记,则当 privrun 包装该特定命令时,将不会擦除任何环境变量。对于 privedit,可以指定标记值以指明 privedit 是否可以编辑文件。可以指定其他标记值以指明 privrun 是否可以执行命令。下面是受支持的标记值:flag= 空或任何其他标记 指明文件仅可执行,但不可编辑。

flag=edit 指明文件既可以编辑,又可以执行。该标记主要针对脚本使用。

flag=noexec 指明文件不可执行,并且只能使用 privedit 进行编辑。

注释: 有关所有 cmdprivadm 参数的信息,请参阅 cmdprivadm(1M)。大多数参数是可选的,并且如果未指定任何值,系统会填入适当的缺省值。

注释: 要修改 /etc/rbac/cmd_priv 文件中的现有条目,必须首先删除该条目,然后再将更新的版本添加回文件。使用 cmdprivadm 删除条目时,参数用作筛选器。例如,指定cmdprivadm delete op=foo 命令将删除操作为 foo 的所有条目。因此,当您使用cmdprivadm 删除条目时,务必确保指定了足够的参数,以便只删除要删除的条目。

4.5.4 使用精细划分的权限配置 HP-UX RBAC应用程序使用系统调用与系统资源进行通信,允许操作系统访问系统资源。某些系统调用需要具有应用程序的特殊的提升权限,才能访问操作系统和系统硬件。

在精细划分的权限可用前,可以通过 UID=0 来满足某些系统调用的特殊提升权限。如果 UID 不是 0,系统调用会被拒绝,并返回应用程序错误。HP-UX RBAC、特别是 privrun 包装命令都允许非超级用户拥有运行特定应用程序所需的特殊权限级别或 UID=0。除在某些情况下向非超级用户提供 UID=0 以运行特定应用程序外,HP-UXRBAC 还可以使用精细划分的权限来运行具有其他权限但不使用 UID=0 的应用程序。您可以使用 HP-UX RBAC 配置命令,使其通过一组选定权限运行,且不同用户可以使用不同的权限集,但都不使用 UID=0。例如,管理员可能需要以若干权限来运行 foobar 命令,但普通用户可能需要使用较少的权限来运行 foobar。不妨将精细划分的权限看作“系统调用访问控制检查的钥匙”。系统调用不检查 UID=0,而是检查特定权限。这些精细划分的权限提供“锁定”系统调用及控制应用程序对操作系统和硬件资源的访问的能力。同时,通过将权限拆分成精细划分的权限,运行应用程序时并不需要使用全部权限,只需使用特定的权限或权限集。如果以特定权限集运行的应用程序进程被泄漏,可能造成的损害远小于以 UID=0 运行该进程时被泄漏造成的损害。

注释: 有关精细划分权限的详细信息,请参阅 privileges(5)。

68 HP-UX 基于角色的访问控制

Page 69: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

使用 cmdprivadm 命令和 privs 选项为 privrun 配置要包装的命令,并仅以指定的权限运行。下面是一个示例 cmdprivadm 命令,它配置 /usr/bin/ksh 命令以 BASICROOT 复合权限运行,且要求具有 (hpux.adm.mount, *) 授权:# cmdprivadm add cmd=/etc/mount op=hpux.adm.mount object='*' privs=BASICROOT

前面的 cmdprivadm 命令在 /etc/rbac/cmd_priv 文件中创建一个条目,如下所示:#--------------------------------------------------------------------------------------------------------

# Command :Args :Authorizations :U/GID :Cmpt :Privs :Auth :Flags

#----------------:--------:---------------------:------:-------:----------:------:-------------------

/etc/mount :dflt :(hpux.adm.mount,*) :/// :dflt :BASICROOT :dflt :

使用 cmdprivadm 创建该条目及使用 privrun 包装命令后,/etc/mount 将以精细划分的BASICROOT 复合权限的提升权限运行,且如果用户具有 (hpux.adm.mount, *) 授权,将不使用 UID=0。如“使用 privrun 命令运行具有权限的应用程序”所述,privrun -p 命令选项仅匹配/etc/rbac/cmd_priv 数据库文件中具有 -p 选项所指定的权限的条目。请注意,使用 privrun-p 选项指定权限时,privrun 将匹配包含该指定权限的所有条目(包括包含 -p 指定权限的权限组和复合权限)。privrun 命令会根据 /etc/rbac/cmd_priv 中的第一个匹配项执行命令。例如,下面是一个示例 privrun -p 命令以及该命令将在 /etc/rbac/cmd_priv 中匹配的一组条目:

命令:

# privrun -p MOUNT /etc/mount

匹配以下 /etc/rbac/cmd_priv 条目:#---------------------------------------------------------------------------------------------------------------

# Command :Args :Authorizations :U/GID :Cmpt :Privs :Auth :Flags

#----------------:--------:-------------------:------:------:---------------------------------------:-----:-----

/etc/mount :dflt :(hpux.adm.mount,*) :/// :dflt :PRIV_CHOWN, MOUNT :dflt :

/etc/mount :dflt :(hpux.*,nfs) :/// :dflt :MOUNT, PRIV_RTPRIO, PRIV_MLOCK :dflt :

/etc/mount :dflt :(hpux.adm.*,*) :/// :dflt :BASICROOT :dflt :

注释: privrun -p MOUNT /etc/mount 命令匹配 BASICROOT 权限,这是因为 MOUNT简单权限是预定义的 BASICROOT 复合权限的一部分。有关简单权限和复合权限的详细信息,请参阅 privileges(5) 联机帮助页。

重要信息: /etc/rbac/cmd_priv 中各条目的顺序很重要,这是因为 privrun 会根据其发现的第一条明确匹配项执行命令。在前面的示例中,尽管系统认为所有三个条目均匹配privrun 命令,但 privrun 会执行第一个条目。配置命令和授权时,请牢记各个条目的顺序。cmdprivadm 工具会将条目添加到 /etc/rbac/cmd_priv 文件的末尾。

4.5 配置 HP-UX RBAC 69

Page 70: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

4.5.5 使用隔离专区配置 HP-UX RBACHP-UX RBAC 还可以使用隔离专区将应用程序配置为在特定的隔离专区内运行。通过隔离专区,您可以将系统逻辑分区成多个隔离专区,以使进程无法与隔离专区外的资源进行通信或访问这些资源(除非设置的隔离专区规则允许该操作)。

下面是一个示例 cmdprivadm 命令,它对 /sbin/init.d/hpws_apache 命令进行配置,使其仅在 /etc/cmpt/apache.rules 隔离专区规则定义的 apache 隔离专区内运行:# cmdprivadm add cmd='/sbin/init.d/hpws_apache -a start' \op=hpux.network.service.start object=apache compartment=apache

前面的 cmdprivadm 命令在 /etc/rbac/cmd_priv 文件中创建如下一个条目:#---------------------------------------------------------------------------------------------------------------

# Command :Args :Authorizations :U/GID :Cmpt :Privs :Auth :Flags

#-------------------------:--------:------------------------------------:--------------:--------:-------:-------

/sbin/init.d/hpws_apache :start :(hpux.network.service.start,apache) :/// :apache :dflt :dflt :

使用 cmdprivadm 创建该条目并使用 privrun 包装命令后,经过授权的用户可以执行/sbin/init.d/hpws_apache -start 命令,并且它仅在 apache 隔离专区内运行。进程的隔离专区标记更改为 apache,进程的属性将遵循已定义的 apache 隔离专区规则。

注释: 仅使用 cmdprivadm 命令为命令配置隔离专区。不要使用 cmdprivadm 之外的其他方法来编辑 /etc/rbac/cmd_priv 数据库文件。要修改 /etc/rbac/cmd_priv 文件中的现有条目,必须首先删除该条目,然后再将更新的版本添加回文件。使用 cmdprivadm 删除条目时,参数用作筛选器。例如,指定 cmdprivadmdelete op=foo 命令将删除其操作为 foo 的所有条目。因此,当您使用 cmdprivadm 删除条目时,务必确保指定了足够的参数,以便只删除要删除的条目。

4.6 使用 HP-UX RBAC本节说明如何运行 privrun 和 privedit 命令来操作 HP-UX RBAC。

4.6.1 使用 privrun 命令运行具有权限的应用程序通过 privrun 命令,根据与调用用户关联的授权,用户可以运行具有不同权限的传统应用程序。用户调用 privrun,将传统应用程序指定为命令行参数。然后,privrun 将查询/etc/rbac/cmd_priv 数据库,以确定运行具有其他权限的命令所需要的授权。如果用户具有所需的授权,privrun 会更改 /etc/rbac/cmd_priv 数据库中所指定的该用户的 UID 和(或)GID,然后调用指定的命令。下面是 privrun 命令的语法:privrun [options] command [args]

| [-u eUID|username]| [-g eGID|groupname]| [-U rUID|username]| [-G rGID|groupname]| [-a (operation, object)]

70 HP-UX 基于角色的访问控制

Page 71: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

| [-c compartment]| [-p privilege[,privilege,privilege...]]| [-x]| [-v [-v]]| [-h]| [-t]

下面列出了对每个 privrun 命令选项的说明:-u 仅匹配包含与指定 EUID 或用户名所关联的 EUID 对应的有效用户 ID (EUID) 的那些条目。-g 仅匹配包含与指定 EGID 或组名所关联的 EGID 对应的有效组 ID (EGID) 的那些条目。-U 仅匹配包含与指定 RUID 或用户名所关联的 RUID 对应的实际用户 ID (RUID) 的那些条目。-G 仅匹配包含与指定 RGID 或组名所关联的 RGID 对应的实际组 ID (RGID) 的那些条目。-a 仅匹配需要指定授权的那些条目。授权在 /etc/rbac/cmd_priv 数据库文件中被定义

为(操作、对象)对。指定的授权必须准确匹配 /etc/rbac/cmd_priv 文件中的授权,不支持通配符。

-c 匹配 /etc/rbac/cmd_priv 数据库文件中的指定隔离专区。指定的隔离专区必须准确匹配 /etc/rbac/cmd_priv 中的隔离专区。

-p 将指定的权限与 /etc/rbac/cmd_priv 数据库文件中的权限进行匹配。可以指定多个权限。指定多个权限时,使用逗号分隔每个权限。请注意,使用 privrun -p 选项指定权限时,privrun 将匹配包含该指定权限的所有条目(包括包含 -p 指定权限的权限组和复合权限)。privrun 命令会根据 /etc/rbac/cmd_priv 中的第一个匹配项执行命令。

-x 仅当授权或授权检查失败时,使用修改 privrun 的行为的失败模式。目标命令不会退出,也不显示错误消息,而是继续运行,但没有任何其他权限。目标命令的执行效果等同于用户未使用 privrun 而直接运行该命令的效果。

-v 以详细模式调用 privrun。如果指定两个 -v 选项,则详细级别会增加。增加的详细级别会输出更详细的信息。

-h 输出 privrun 帮助信息。-t 使用测试模式根据配置文件执行所有正常授权和身份验证检查,从而查看所需的 privrun

调用是否成功。唯一的区别是,成功后并不执行命令,privrun -t 仅会返回。使用该选项可预览给定 privrun 调用是否会成功。

下面是 privrun 的最基本用法的一个示例 – 包装传统应用程序。在本示例中,ipfstat 命令作为 privrun 命令的参数运行,以便根据与调用用户关联的授权运行:# privrun ipfstat

只要已登录的用户具有 /etc/rbac/cmd_priv 中定义的必需的权限,privrun 包装命令将以 /etc/rbac/cmd_priv 条目中定义的权限(UID 和 GID)执传统命令。同一个命令可以存在多个条目,但可能需要不同授权及相应的不同权限。在这种情况下,privrun按顺序遍历 /etc/rbac/cmd_priv 数据库,执行该用户具有授权的第一条命令。在某些情况下,这可能并不理想。例如,可能会允许所有用户运行 passwd 命令以更改他们自己的口令,但如果用户管理员运行该命令,他们需要具有更改其他用户口令的权限。如果所有

4.6 使用 HP-UX RBAC 71

Page 72: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

普通用户的条目列于用户管理员的条目之前,则会先执行它,这可能会阻止用户管理员运行具有更多权限的版本。

对于这样的情况,用户可以使用 privrun 的某些选项指定所需的权限。将只使用与指定权限(例如 UID)匹配的条目。如果任何条目都不与所需的权限匹配,privrun 会返回一条错误消息。

下面是 privrun 的一个示例调用,它仅匹配有效 UID 设置为 0 的条目:# privrun -u 0 ipfstat

注释: 有关使用 privrun 命令的详细信息,请参阅 privrun(1M) 和 rbac(5) 联机帮助页。

4.6.1.1 Serviceguard 群集中的 HP-UX RBACServiceguard 不支持使用 HP-UX RBAC 和 privrun 为 Serviceguard 命令授予访问权限。Serviceguard A.11.16 实现自己的基于角色的访问控制,它通过程序包和群集配置文件指定访问控制策略,为 Serviceguard 操作提供群集可识别的策略。对于 Serviceguard 操作的基于角色的访问控制,必须使用 Serviceguard 机制。有关 Serviceguard 访问控制策略的详细信息,请参阅最新的《管理 Serviceguard》文档。在 Serviceguard 群集中,可以将 HP-UX RBAC 用于非 Serviceguard 命令。群集中的所有节点应该应用相同的 HP-UX RBAC 规则。

4.6.2 使用 privedit 命令编辑受访问控制约束的文件通过 privedit 命令,具有授权的用户可以编辑其由于文件权限或 ACL 而通常无法编辑的文件。调用命令并将要编辑的文件标识为参数后,privedit 检查 /etc/rbac/cmd_priv 数据库(其方式与 privrun 相同),从而确定编辑指定文件所需要的授权。如果调用用户具有编辑文件的授权,则 privedit 会调用编辑器来编辑文件的复本。

注释: 使用 privedit 调用编辑器编辑文件时,编辑器并不以任何提升权限运行。由于privedit 调用的编辑器不以任何提升权限运行,所以,诸如 Shell 转义等所有尝试的操作都将以用户的普通(非提升)权限集运行。

可以通过设置 EDITOR 环境变量指定 privedit 使用哪个编辑器编辑文件。如果不设置 EDITOR变量,privedit 会使用缺省编辑器 vi。您不能通过 privedit 命令行向编辑器传递参数。但是,如果在调用 privedit 之前设置编辑器特定的环境变量,则编辑器可以识别并支持这些环境变量。

使用完全限定的文件名作为 privedit 参数来确定要编辑的文件。如果不使用完全限定的文件名,privedit 会将当前工作目录添加到您指定的文件名的开头。无论如何指定要编辑的文件,调用 privedit 后,所有文件名都是完全限定文件名。privedit 命令还识别和支持符号链接文件。

privedit 命令一次只能编辑一个文件。如果指定多个文件名作为 privedit 的参数,则privedit 编辑所指定的第一个文件,忽略后面的文件名。下面显示了 privedit 命令的语法:

privedit [option] fully-qualified-file-name| [-a (operation, object)]

72 HP-UX 基于角色的访问控制

Page 73: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

| [-v]| [-h]| [-t]| [-x]

下面列出了对 privedit 命令的选项的简要说明:-a 授权 仅将 /etc/rbac/cmd_priv 文件条目与具有指定授权的条目进行匹配。-v 以详细模式调用 privedit。-h 输出 privedit 帮助信息。-t 检查用户是否具有编辑文件和报告结果所需的授权。

-x 如果授权检查失败,将以调用者的原始权限编辑文件。

下面是使用 privedit 命令以特定授权 (hpux.sec.edit, secfile) 编辑/etc/default/security 文件的一个示例:# privedit -a "(hpux.sec.edit, secfile)" /etc/default/security

注释: 请记住,cmd_priv 数据库中的每个条目的标记值指明 privedit 是否可以编辑文件。有关标记和使用 privedit 命令的详细信息,请参阅“配置其他命令授权和权限”和privedit(1M) 联机帮助页。

4.6.3 使用 ACPS 定制 privrun 和 privedit通过 HP-UX RBAC 功能,可以定制 privedit 和 privrun 检查用户授权的方式。ACPS 模块是可定制的接口,它向必须执行授权决策的应用程序提供响应。ACPS 配置文件/etc/acps.conf 控制 ACPS 的下列各个方面:

• 查询哪个模块以制定访问决策

• 查询模块的顺序

• 组合模块响应以将结果返回应用程序的规则

有关 ACPS 的详细信息,请参阅“HP-UX RBAC 服务控制策略切换”以及 acps.conf(4)、acps(3)和 rbac(5)。

4.7 HP-UX RBAC 故障排除下面列出了用于 HP-UX RBAC 故障排除和调试的主要机制:

• rbacdbchk 实用程序验证 HP-UX RBAC 数据库语法。

• privrun -v 命令报告其他信息和相关信息。

4.7.1 rbacdbchk 数据库语法工具多数常见错误是由手动编辑 HP-UX RBAC 数据库引起的,手动编辑可能会导致配置语义无效或在数据库之间不一致(例如,/etc/rbac/user_role 中的某个角色未在 /etc/rbac/roles中进行定义)。为帮助诊断这些常见错误,HP-UX RBAC 包含了 rbacdbchk 命令。该命令读取HP-UX RBAC 数据库,如果发现配置条目不正确或不一致,会输出警告:

4.7 HP-UX RBAC 故障排除 73

Page 74: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

# rbacdbchk

[/etc/rbac/user_role] chandrika:UserOperator

invalid user

The value 'chandrika' for the Username field is bad.

[/etc/rbac/cmd_priv]

/opt/cmd:dflt:(newop,*):0/0//:dflt:dflt:dflt:

invalid command:Not found in the system

The value '/opt/cmd' for the Command field is bad.

[Role in role_auth DB with no assigned user in user_role DB]

Rebooter:(hpux.admin.*, *)

[Invalid Role in user_role DB.Role 'UserOperator' assigned to user 'chandrika' does not exist in the roles DB]

在正确配置的系统上,rbacdbchk 命令不生成任何输出,这表明没有错误。

4.7.2 privrun -v 信息检测问题的第二种方法是运行带 -v 选项(详细模式)的 privrun 命令。在详细模式下,privrun 提供与输入命令匹配的条目有关的其他信息、授权检查的状态以及其他相关数据。在多数情况下,该输出会声明导致 privrun 失败的问题。多次指定 -v 选项可以输出更加详细的信息。下面是带 ipfstat 命令的 privrun -v 输出的一个示例:# privrun -v /sbin/ipfstat

privrun:user root intends to execute command /sbin/ipfstat

privrun: input entry:'/sbin/ipfstat:dflt:(,):///:dflt:dflt::'

privrun: found matching entry:'/sbin/ipfstat:dflt:(hpux.network.filter.readstat,*):0/0//:dflt:dflt::'

privrun: passed authorization check

privrun: attempting to set ruid/euid/rgid/egid to 0/0/-1/-1

privrun: current settings for ruid/euid/rgid/egid are 0/0/3/3

privrun: executing:/sbin/ipfstat

74 HP-UX 基于角色的访问控制

Page 75: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

5隔离专区本章介绍 HP-UX 11i v3 的隔离专区功能。本章包含下列主题:

• “概述”

• “规划隔离专区结构”

• “激活隔离专区”

• “修改隔离专区配置”

• “隔离专区组件”

• “隔离专区规则和语法”

• “配置隔离专区中的应用程序”

• “隔离专区故障排除”

• “使用发现模式来生成初始隔离专区配置”

• “HP Serviceguard 群集中的隔离专区”

5.1 概述隔离专区 是一种将系统组件彼此隔离的方法。如果配置正确,它可以作为一种保护 HP-UX 系统及其上的数据的有效方法。

通过隔离专区,您可以将进程或主题与其他进程或主题隔离,还可以与资源或对象隔离。

从概念上讲,每个进程均属于一个隔离专区,并以下列两种方式之一来处理资源。

1. 将资源标记为创建进程的隔离专区。这是为隔离专区分配瞬态资源(如通信端点和共享内存)的方式。

2. 对于持久性资源(如文件和目录),可以将此类资源与某个访问列表相关联,该访问列表指定了不同隔离专区中的进程访问资源的方式。也就是说,仅当这些隔离专区之间存在某个规则,进程才能访问资源或者与属于另一隔离专区的进程进行通信。属于同一隔离专区的进程可以彼此相互通信,并访问该隔离专区中的资源,而无需规则。

隔离专区可将主题与对象区隔离。这会启用相关主题和对象的虚拟分组。可以配置系统,使得在一个隔离专区中运行的某个服务受到破坏时,不会影响到其他隔离专区中运行的服务。这样,可将任何损坏限制在受影响的隔离专区中。

5.1.1 隔离专区体系结构隔离专区可分隔系统内的进程与其子进程。图 5-1 “隔离专区体系结构”说明了一个衍生出许多处理程序进程的父进程,其中的处理程序进程需要访问系统的各个部分。配置系统上的隔离专区,使进程能够访问它们所需的资源。

5.1 概述 75

Page 76: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

图 5-1 隔离专区体系结构

网络

父级

记录程序

处理程序

处理程序

处理程序/var/opt/server

日志

全部

进程

进程关系

文件和(或)目录

文件访问

网络

IPC

信号

server_parent隔离专区

server_childrenlan cmpt 1

/

读取

读取、写入读取、写入

在图 5-1 “隔离专区体系结构”中,在隔离专区 A 中配置了父进程。作为其功能的一部分,该父进程在另一隔离专区 B 中衍生出许多处理程序进程。这些处理程序进程继承了其父进程的隔离专区配置。在另一隔离专区 C 中配置将该系统连接到局域网的网卡。将文件系统配置为对隔离专区 A 具有完全访问权限,但对隔离专区 B 具有部分访问权限。按如下方式配置它们各自的隔离专区中系统组件之间的通信:

• 配置所有的处理程序进程与网络进行通信。

• 记录器可以访问文件系统。

• 处理程序进程对文件系统部分具有读取权限和读取/写入权限。

76 隔离专区

Page 77: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

• 处理程序进程可以与父进程通信,并能够使用 IPC 和信号与记录器进行通信。

• 将网络与记录器和父进程分隔开。

此隔离专区配置为文件系统和记录器提供了安全保障。文件系统和记录器均由它们的隔离专区分隔。尽管处理程序进程可以与网络通信,但记录器和父进程却不能访问网络。

5.1.2 缺省隔离专区配置启用隔离专区时,便会创建一个名为 INIT 的缺省隔离专区。引导系统时,初始化进程便包含在该隔离专区中。将 INIT 隔离专区定义为可以访问所有其他隔离专区,但不要在隔离专区规则文件中定义它。

重要信息: 如果通过在规则文件中创建明确的规则来重新定义 INIT 隔离专区,则将丢失所有的特殊特性,并且只能在重新引导系统后才能恢复这些特性。

5.2 规划隔离专区结构开始创建隔离专区规则之前,规划隔离专区 结构。要规划隔离专区结构,请回答下列问题:

• 是否要分隔访问该系统的不同组用户?例如,是否财务部门和人力资源部门均使用该系统,且必须将这些用户组分开?

• 是否要将系统上的一个网络接口(与防火墙外部通信)与该系统的其余部分(仅在防火墙内部进行通信)分开?

• 安全策略是否包含可以通过使用隔离专区来解决的要求或问题?

• 安全策略是否指定或建议某个特定的隔离专区配置?

如果已回答了这些问题,则可以利用这些答案来确定如何将系统的各个部分分配到特定的隔离专区。

规划隔离专区配置时,请考虑下列建议:

• 将所有隔离专区配置文件放置于 /etc/cmpt 目录中。可以使用 #include 指令在系统的任意位置创建隔离专区配置文件。但是,HP 建议您不要使用该选项。相反,应将隔离专区配置文件放置在一起,以方便查找。

• 为系统的每个组件开发单独的隔离专区配置。

除非两个组件之间存在已定义的特定软件相关性,否则请不要将不同组件的规则组合在一起。一个组件的隔离专区不包含引用另一组件的隔离专区的规则。如果必须删除某个组件,则在分开保存隔离专区配置的情况下,可以更容易地修改隔离专区配置。

• 为每个软件组件创建一个隔离专区配置文件。

这样,在从系统删除软件时,可以更容易地删除隔离专区配置。还可以轻松地找到与软件组件相关的所有规则。

• 某些软件产品是随已配置的隔离专区规则提供的。请不要修改这些规则。

5.2 规划隔离专区结构 77

Page 78: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

在对提供的隔离专区配置进行修改之前,请确保您了解现有的配置。请仔细阅读软件产品文档并检查现有的配置。

注意: 请不要重新定义现有的 INIT 隔离专区。如果您试图更改或重新定义 INIT 隔离专区,则会损坏所有自动生成的定义,并且隔离专区将不能正常工作。

5.3 激活隔离专区要激活 系统上的隔离专区规则,请执行下列步骤:1. 规划隔离专区规则。有关详细信息,请参阅“规划隔离专区结构”。

提示: HP 建议您仔细规划隔离专区规则配置。在编辑配置并在产品系统上实现它之后,将很难再更改该配置。如果要更改隔离专区配置,则必须对用户使用步骤、脚本和工具进行更改。

2. 创建隔离专区规则。有关完成该步骤的说明和隔离专区规则语法的完整说明,请参阅“隔离专区规则和语法”。

3. (可选)要预览隔离专区规则,请输入以下命令:

# setrules -p

-p 选项将分析已配置的规则列表,并报告语法和语义上的所有差异。HP 建议您在系统上启用隔离专区规则之前执行该步骤。

4. (可选)备份隔离专区配置文件。可以将这些文件放置在 /etc/cmpt 目录的外部,或者省略 .rules 后缀。通过执行该操作,可以在出现编辑问题的情况下很轻松地还原到起始点。

5. 要启用隔离专区功能,请输入以下命令:

# cmpt_tune -e

6. 重新引导系统。此步骤是必需的。

提示: 保留备份文件,这样可使之后还原到先前配置的操作更容易。

5.4 修改隔离专区配置可以创建新隔离专区,并修改现有的隔离专区而不重新引导系统。如果要启用或禁用隔离专区功能,或完全删除某个隔离专区,则必须重新引导系统。但是,如果要删除与某个隔离专区关联的所有规则和对该隔离专区的所有引用,则可以将该隔离专区保留在系统中直到系统下次重新引导时为止。

有关更改隔离专区名称的影响的详细信息,请参阅“更改隔离专区名称”。可以添加新的隔离专区规则、删除无用的规则以及修改现有的规则。还可以更改现有隔离专区的名称。

以下各节将介绍如何修改隔离专区配置。

78 隔离专区

Page 79: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

5.4.1 更改隔离专区规则1. (可选)临时备份计划要修改的配置文件。可以将这些文件放置在 /etc/cmpt 目录的外部,或者省略 .rules 后缀。通过执行该操作,可以在出现编辑问题的情况下很轻松地还原到起始点。

2. 使用以下命令来检查当前的隔离专区规则:

# getrules

3. 创建或修改隔离专区规则。有关完成该步骤的说明和隔离专区规则语法的完整说明,请参阅“隔离专区规则和语法”。

4. (可选)要预览隔离专区规则,请输入以下命令:

# setrules -p

-p 选项将分析已配置的规则列表,并报告语法和语义上的所有差异。HP 建议您在系统上启用隔离专区规则之前执行该步骤。

5. (可选)备份隔离专区配置文件。

6. 运行 setrules 命令加载已配置的规则:# setrules

5.4.2 更改隔离专区名称可以更改隔离专区的名称。但是,更改隔离专区的名称会影响使用现有隔离专区名称配置的应用程序。如果更改隔离专区的名称,则必须重新配置在该隔离专区中配置的所有应用程序。

注释: 如果重命名隔离专区,则实际上是创建了新隔离专区,并删除了具有原有名称的隔离专区。必须更改所有的引用以查看新隔离专区。原隔离专区在系统上一直保留到系统重新引导时为止。

5.5 隔离专区组件隔离专区功能由一组用于配置和管理隔离专区的配置文件和命令组成。还包含联机帮助页来帮助您使用隔离专区功能。在下列各节中将列出这些组件:

5.5.1 隔离专区配置文件表 5-1 “隔离专区配置文件”简要介绍了与隔离专区组件一起使用的文件。

5.5 隔离专区组件 79

Page 80: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

表 5-1 隔离专区配置文件

说明配置文件

隔离专区规则文件所在的目录。/etc/cmpt

包含为系统配置的隔离专区规则的文件。/etc/cmpt/*.rules

包含有效挂接点的文件,将扫描这些有效挂接点以检查某些文件的隔离专区规则的一致性,这些文件具有多个硬链接指向这些隔离专区规则。

/etc/cmpt/hardlinks/hardlinks.config

5.5.2 隔离专区命令表 5-2 “隔离专区命令”包含用于管理隔离专区的命令。

表 5-2 隔离专区命令

说明命令

查询、启用和禁用隔离专区功能。cmpt_tune

设置 二进制文件的安全属性,包括隔离专区属性。setfilexsec

显示 与二进制可执行文件关联的安全属性,包括隔离专区属性。getfilexsec

显示 进程的安全属性,包括隔离专区属性。getprocxsec

显示内核中当前活动的隔离专区规则。getrules

激活内核中的新规则或已修改的规则。

通过 -p 选项,可显示要查看的已修改的规则,而无须将它们传递到内核。setrules

检查具有多个硬链接的文件的隔离专区规则的一致性,来确保不存在针对访问的具有冲突的规则。

vhardlinks

5.5.3 隔离专区联机帮助页表 5-3 “隔离专区联机帮助页”包含与隔离专区关联的联机帮助页。

表 5-3 隔离专区联机帮助页

说明联机帮助页

介绍隔离专区规则语法。compartments(4)

概述隔离专区功能并介绍隔离专区规则的使用。compartments(5)

介绍 cmpt_tune 的功能和语法。cmpt_tune(1M)

介绍 setfilexsec 的功能和语法。setfilexsec(1M)

介绍 getfilexsec 的功能和语法。getfilexsec(1M)

介绍 getprocxsec 的功能和语法。getprocxsec(1M)

介绍 getrules 的功能和语法。getrules(1M)

80 隔离专区

Page 81: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

表 5-3 隔离专区联机帮助页 (续)

说明联机帮助页

介绍 setrules 的功能和语法。setrules(1M)

介绍 vhardlinks 的功能和语法。vhardlinks(1M)

5.6 隔离专区规则和语法一个隔离专区包含一个名称和一组规则。本节将介绍四种类型的隔离专区规则:

• 文件系统规则

• IPC 规则

• 网络规则

• 其他规则

将规则添加到在 /etc/cmpt 目录中创建的规则文件中。可以使用 vi 编辑器或类似的文本编辑器来编辑该文件。规则文件必须具有 .rules 扩展名。有关其他信息,请参阅 compartments(5)。

5.6.1 隔离专区定义通过为每个隔离专区配置一个名称,并将一个或多个隔离专区规则与隔离专区名称关联起来,可以定义隔离专区。可以按照任意顺序指定规则。

隔离专区定义的语法如下:

<discover> <sealed> compartment <新隔离专区名称> { <规则> }

例如:

sealed compartment server_children {

/* Deny all access to any file system objects ... */

permission none /

}

其中:

sealed (可选)该隔离专区中的进程不能通过调用 execve() 来获得权限或更改隔离专区。

discover (可选)发现并自动添加规则,以便覆盖隔离专区违规。这是一项开发功能,用于确定必需的规则,而不应在生产系统上使用。

compartment 指定该规则是一个隔离专区定义。

新隔离专区名称 与新隔离专区相关联的标签。该标签区分大小写。例如,compartmenta 和 CompartmentA 是不同的隔离专区。

5.6 隔离专区规则和语法 81

Page 82: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

{} 将该隔离专区的规则括起来。

注释: INIT 隔离专区名称不区分大小写。系统会将 INIT、init 和 Init 均视为同一个隔离专区。

在开始分析之前,会使用 cpp() 预处理隔离专区规范。这便是使用 cpp() 指令(例如,#include、#define、#ifdef)和 C 语言样式的注释来组织和记录规则文件的原因。

5.6.2 文件系统规则文件系统规则用于管理进程对系统上的文件和目录的访问。父目录中的所有子目录和文件都从父目录继承文件系统规则,除非某个明确的规则改写了这种继承。

缺省情况下,如果未指定权限,则将所有权限授予文件系统对象。

文件系统规则的语法 如下所示:(permission|perm) <权限列表> <文件对象>

例如:

/* deny all permissions except read to entire system */perm read /

/* except for this directory */perm read,write,create,unlink /var/opt/server

/* just read and write log files, not create them */perm read,write /var/opt/server/logs

permission 或 perm 设置文件或目录的权限。

权限列表 可以应用到文件或目录的权限类型包括:

• none:拒绝文件或目录的所有权限。

• read:控制对象的读取访问权限。如果对象是一个文件,则控制读取和执行该文件。如果该对象是一个目录,则控制搜索或列出该目录。此外,由于继承的原因,还可以控制读取该目录下的所有文件。文件必须具有读取访问权限,才能被打开以供执行。

• write:控制对象的写入访问权限。如果对象是一个文件,则控制写入到该文件。如果对象是一个目录,由于继承的原因,还可以控制写入到该目录下的所有文件。

• create:控制创建对象的能力。这仅适用于目录对象。该权限由指定目录下的所有目录继承。

82 隔离专区

Page 83: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

• unlink:控制删除对象的能力。这仅适用于目录对象。该权限由指定目录下的所有目录继承。

• search:控制搜索某个元素的能力(如果文件对象是一个目录)。子目录不继承该属性。

文件对象 文件或目录的完整路径名。

注释: 要授予文件系统对象任何权限,隔离专区必须对该对象上的每个目录具有最低的读取权限。例如,要对 /var/opt/tmp/file1 授予读取和写入权限,则必须授予对 /var/opt/tmp、/var/opt、/var 和 / 的读取权限。

5.6.3 IPC 规则进程间通信 (IPC) 规则用于管理进程如何在隔离专区之间使用进程间通信方法。IPC 通信方法包括进程之间的直接通信,或对 IPC 对象的共享访问。一个对象与某个进程关联时,该对象便与创建它的进程位于同一个隔离专区中。可以定义隔离专区规则来说明正在访问对象的进程与被访问的对象之间的关系。当该规则说明两个相互通信的进程时,可以将第二个进程视为一个对象。IPC 对象的缺省行为是禁止不同隔离专区之间的所有操作,除非规则明确许可。有下列两种类型的 IPC 规则:第一种类型的规则的语法如下:(grant|access) (pty|fifo|uxsock|ipc) <隔离专区名称>

例如:

/* allow the children to access UNIX domain *//* sockets created by the parent compartment */

grant uxsock server_children

访问 指定规则是以对象为中心还是以主题为中心。选项包括:

• grant:指定以对象为中心的规则。通过该规则,隔离专区隔离专区名称中的进程可以访问当前隔离专区中指定的 IPC 机制。

• access:指定以主题为中心的规则。通过该规则,当前隔离专区中的进程可以访问隔离专区隔离专区名称中指定的 IPC 机制。

方法 指定该规则应用的通信方法。选项包括:

• pty:指定该规则适用于进程间通信中所使用的 pty。

• fifo:指定该规则适用于 FIFO。

• uxsock:指定该规则适用于 UNIX 域套接字。

• ipc:指定该规则适用于 SYSV 对象和 POSIX IPC 对象,例如,共享内存、信号量和消息队列。

隔离专区名称 另一个隔离专区的名称,该隔离专区中的进程之间可以相互通信。

第二种类型的 IPC 规则用于管理进程访问。该类型的规则的语法如下:(send|receive) signal <隔离专区名称>

5.6 隔离专区规则和语法 83

Page 84: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

例如:

/* allow the parent to send signals to children */send signal server_children

方向 指定当前隔离专区中的进程是否具有从另一个指定的隔离专区查看和更改进程行为的访问权限。选项包括:

• send:指定以主题为中心的规则。允许当前隔离专区中的进程发送信号,并查看隔离专区隔离专区名称中的进程数据。

• receive:指定以对象为中心的规则。允许隔离专区隔离专区名称中的进程发送信号,并查看当前隔离专区中的进程数据。

signal 指定该规则适用于信号和进程可见性。

隔离专区名称 另一个隔离专区的名称,其中当前隔离专区中的进程可以访问以查看进程信息,或从该隔离专区查看。

5.6.4 网络规则网络规则用于管理对网络接口的访问。网络规则还用于管理使用 INET 域通信(TCP/IP 套接字和流)的进程之间的通信。缺省的行为是拒绝访问网络。

网络端点可视为随创建它们的进程的隔离专区一同被标记的对象。但是,网络端点可由一个进程创建,然后被传送到可在其他隔离专区中运行的另一个进程。创建端点时,在包含端点的隔离专区执行访问检查,而不是在当前的隔离专区上执行。此外,该端点在接收新连接时,会将其隔离专区配置传送给接受端点。

INET 域端点经常用于进程间通信。确保相应地配置了隔离专区。网络规则的语法如下:

(grant|deny) (server|client|bidir) (tcp|udp|raw [<协议编号>] )[port <端口号>] [peer[port<端口>]] <隔离专区名称>

例如:

/* allow all inbound TCP connections(any port)from interfaces labeled lancmpt1 */

grant server tcp lancmpt1

/* allow DNS client lookups (both TCP and UDP) through interface labeled lancmpt1 */

grant client tcp port 53 lancmpt1grant bidir udp port 53 lancmpt1

/* allow only outbound telnet connections through interface labeled ifacelan0

*/

grant client tcp peer port 23 ifacelan0

84 隔离专区

Page 85: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

/* allow all TCP traffic except inbound telnet through interface labeled ifacelan0 */

/* the following two lines can be specified in either order */

grant bidir tcp ifacelan0deny server tcp port 23 ifacelan0

/* allow inbound web server traffic through interface lan1cmpt */

grant server tcp port 80 lan1cmpt

访问 授权或拒绝隔离专区访问指定隔离专区中的网络流量。选项包括:

• grant

• deny

方向 指定规则应用的方向。选项包括:

• server:该规则仅适用于入站请求。对于 TCP,该规则仅控制传入连接。对于 UDP 和 RAW,该规则适用于所有入站数据包。

• client:该规则仅适用于出站请求。对于 TCP,该规则仅控制连接启动。对于 UDP 和 RAW,该规则适用于所有出站数据包。

• bidir:该规则既适用于入站请求又适用于出站请求。对于 TCP,该规则控制端点启动和接收到的连接。对于 UDP 和 RAW,该规则适用于所有通过端点传送的数据包。

协议 指定适用于该规则的网络协议。选项包括:

• tcp:该规则适用于 TCP 协议。

• udp:该规则适用于 UDP 协议。

• raw:该规则适用于 INET 域中的任何其他协议。

<protonum> 为该规则指定的协议编号。protonum 选项仅与 raw 规范有关。port (可选)指定该规则所适用的特定端口。

<port> 标识在该规则中指定的端口。

peer (可选)该端口信息适用于使用该规则的通信中所涉及的对等端口。

隔离专区名称 与该规则所适用的对等端点或接口关联的隔离专区名称。

有关网络规则的详细信息,请参阅 compartments(4)。

5.6.5 其他规则这些规则不符合任何其他的规则类别。

网络接口规则 网络接口规则 用于指定接口所属的隔离专区。如果网络接口不在隔离专区中,则无法将该接口置于联机状态。

注释: 对于更严格的安全策略,应在与分配给进程的不同的隔离专区中配置网络接口。同时,为每个隔离专区定义相应的网络访问规则。始终授予等同隔离专区彼此之间的完全访问权限。

5.6 隔离专区规则和语法 85

Page 86: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

网络接口规则的语法如下:

compartment <隔离专区名称> {interface <接口或 IP[,接口或 IP][...]>}

例如:

compartment iface0 {/* Define the compartment for the network interface lan0 */interface lan0/* All addresses in the range 192.168.0.0-192.168.0.255 */interface 192.160.0.0/24}

compartment other_ifaces {

/* Define the compartment for two of the other network interfaces */interface lan1,lan5

interface 指定这是一个接口定义。

<接口或 IP[,接口或 IP][...]> 以逗号分隔的接口名称、IP 地址或 IP 地址范围列表。IP 地址或 IP 地址范围可以指定为带有可选掩码的 IPv4 地址或 IPv6 地址。

权限限制规则 权限限制规则 用于控制权限的继承。调用 execve(2) 时,将无法获得权限限制规则中指定的任何权限。

权限限制规则的语法如下:

disallowed privileges <权限[,权限[...]]>

例如:

/* Disallow all privileges except mount. */

disallowed privileges all,!mount

/* Disallow mount only. */

disallowed privileges none,mount

disallowed privileges 指定这是一个权限限制规则。

<权限[,权限[...]]> 以逗号分隔的权限列表。可以使用下列附加关键字:

• all:禁止所有权限

• none:允许所有权限

• !:表示例外

86 隔离专区

Page 87: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

如果未对隔离专区指定权限限制规则,则每个隔离专区的缺省权限限制为basicpolicy,mknod,但 INIT 隔离专区例外。INIT 隔离专区的缺省权限限制为 none。

5.6.6 示例规则文件示例规则文件位于 /etc/cmpt/examples/sendmail.example 中。

5.7 配置隔离专区中的应用程序可以配置应用程序,使其在特定的隔离专区中运行。使用 setfilexsec 命令配置二进制文件的隔离专区属性。例如,要配置应用程序 apple 使其在隔离专区 fruit 中运行,请输入以下命令:# setfilexsec -c fruit apple

此外,还可以使用 HP-UX RBAC 配置应用程序使其在隔离专区中运行。请参阅“使用隔离专区配置 HP-UX RBAC”。

5.8 隔离专区故障排除如果 某部分不能正常工作,并且怀疑是由隔离专区结构导致出现的问题,则可以按如下所述检查隔离专区规则。

问题 1:访问没有依据所配置的隔离专区规则进行控制。 解决办法:内核中可能没有设置规则。要检查内核中是否设置了规则,请执行下列步骤:

1. 使用以下命令列出内核中的有效隔离专区规则。

# getrules

2. 使用以下命令列出系统中配置的所有规则,包括尚未加载到内核的规则。

# setrules -p

3. 比较这两个命令的输出。如果相同,则所有的规则均已加载到内核。如果输出不同,则需要将规则加载到内核。

4. 使用以下命令将规则加载到内核。:# setrules

问题 3:不能正常地访问文件。 解决办法:如果多个硬链接均指向该文件,则隔离专区规则配置可能包含不一致的访问该文件的规则。要检查规则不一致,请执行下列步骤:

1. 执行以下命令:

# vhardlinks

如果输出显示出不一致,则转至第 2 步。

2. 修改规则以删除不一致。请执行“修改隔离专区配置”中所述的步骤。问题 4:getrules 输出中没有显示网络服务器规则。 解决办法:因为内部管理规则的方式,所以可以在 getrules 命令的目标隔离专区输出中列出给定隔离专区的网络服务器规则。

5.7 配置隔离专区中的应用程序 87

Page 88: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

例如:

/* telnet compartment rule to allow incoming telnet requests through compartment labeled ifacelan0 */

grant server tcp port 23 ifacelan0

如果指定了该规则,则它将会在 getrules 命令的 ifacelan0 隔离专区输出下列出。ACCESS PROTOCOL SRCPORT DESPORT DESCMPT

Grant client tcp 0 23 telnet

5.9 使用发现模式来生成初始隔离专区配置可以使用关键字 discover 来标记隔离专区定义,请参阅“隔离专区定义” (第 81 页)。discover关键字用于指示系统发现所有必需的规则,以便使应用程序能够正常工作。该功能仅用于测试环境中。

要使用发现模式,请将隔离专区标记为发现,然后按正常方式运行应用程序。系统会识别所有的资源访问,并创建所需要的规则。

初始执行应用程序后,请使用 getrules –m 隔离专区名称命令生成机器可读版本的规则。

要使应用程序在测试环境中正常运行,这些系统生成的规则是必需的,但可能需要通用化。例如,系统可能会生成一个涉及匿名端口范围内某个端口的规则,内核(而不是应用程序)在该端口范围内选择端口号。当应用程序再次运行时,它可能在运行结束时使用了另一端口号,从而需要另一个规则。因此,需要通用化规则,以便指定所有的端口,或至少指定匿名端口范围内的端口号。

5.10 HP Serviceguard 群集中的隔离专区如果要将隔离专区与 HP Serviceguard 一起使用,则必须在缺省的 INIT 隔离专区中配置所有的Serviceguard 守护程序。但是,可以在其他隔离专区中配置 Serviceguard 程序包。有关Serviceguard 和 Serviceguard Extensions for Oracle Real Application Cluster (RAC) 中所需的守护程序,请参阅最新版本的《管理 Serviceguard》和《使用 Serviceguard Extension for RAC》。Serviceguard 程序包可以属于特定的隔离专区。还可以在特定的隔离专区中配置作为 Serviceguard程序包一部分的受监视应用程序。在为程序包设置隔离专区时,请确保该隔离专区可以访问此程序包所需的资源(例如卷组、文件系统和网络地址等)。隔离专区规则是节点特定的,在Serviceguard 故障切换操作期间不会在节点之间转移。要确保故障切换后的正确的操作,群集中的所有节点必须具有相同的隔离专区配置。

主 LAN 接口故障切换到备用 LAN 接口时,只要备用接口未联机,就会将主接口的隔离专区标签自动复制到备用接口。如果已联机配置备用接口,则必须在同一隔离专区中配置备用接口和主接口,以便能够成功执行故障切换。如果备用接口在与主接口不同的隔离专区中进行配置,但在故障切换时脱机,则在接口故障切换时,会将备用接口更新到主接口隔离专区配置。

要在 HP Serviceguard 节点或程序包中布署隔离专区时维护正确的 Serviceguard 操作,请执行下列操作:

• 在任何情况下,都不要修改 INIT 隔离专区规范。

• 确保 inetd 在 INIT 隔离专区中运行。

88 隔离专区

Page 89: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

• 确保群集中的所有 Serviceguard 守护程序均在 INIT 隔离专区中运行。例如,ServiceguardA.11.16 的守护程序包括 cmclconfd、cmcld、cmlogd、cmlvmd、cmomd 和 cmsnmpd。有关所有 Serviceguard 守护程序的列表,请参阅《管理 Serviceguard》。

• 对于 Serviceguard Extensions for RAC 群集,确保满足所有 Serviceguard 群集要求。此外,Serviceguard Extension for RAC A.11.16 中的群集要求 cmsmgd 守护程序在 INIT 隔离专区中运行。RAC 进程必须可以访问 libnmapi2 库,并且必须与 cmsmgd 进行通信。有关所需的守护程序和库,请参阅《使用 Serviceguard Extension for RAC》。

• 不要在隔离专区中配置备用 LAN 接口。

• 在群集中的所有节点上设置相同的隔离专区和规则。隔离专区和规则特定于系统,因此,在系统故障切换时不会转移。

注释: 如果在隔离专区中配置备用接口,则即使它已经从主接口成功切换,运行 setrules命令仍会将该隔离专区应用到备用接口。如果配置的备用接口隔离专区与主接口隔离专区不匹配,则在运行 setrules 命令时,将覆盖主接口隔离专区。这可能会导致安全违规。

未对 Serviceguard 脚本进行任何更改,以方便使用隔离专区、精细划分的权限或者 RBAC。

5.10 HP Serviceguard 群集中的隔离专区 89

Page 90: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

90

Page 91: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

6精细划分的权限本章介绍 HP-UX 11i 的精细划分的权限功能。本章包含下列主题:

• “概述”

• “精细划分的权限的组件”

• “可用权限”

• “为应用程序配置精细划分的权限”

• “精细划分的权限的安全影响”

• “HP Serviceguard 群集中的精细划分的权限”

• “精细划分的权限的故障排除”

6.1 概述UNIX 操作系统 通常使用“全部允许或全部拒绝”权限模型,在该模型中,超级用户(有效 UID=0的用户,例如 root 用户)几乎具有无限制的权限,而其他用户则只具有极少或没有特殊权限。HP-UX 提供了几种传统的方法来委派受限制的权限,包括受限制的 smh(1M)、privgrp(4) 中所述的权限组、shutdown(1M) 中所述的 shutdown.allow 文件以及 crontab(1) 中所述的cron.allow 文件。可以使用精细划分的权限和 HP-UX RBAC 访问控制框架取代这些传统的方法。HP-UX 精细划分的权限模型将超级用户的权限划分为一个权限集。精细划分的权限将被授予各个进程。每个权限都向拥有该权限的进程授予对内核提供的特定受限制服务集的权限。

有关详细信息,请参阅 privileges(5)。

6.2 精细划分的权限的组件HP-UX 11i 的精细划分的权限功能包括配置文件、命令和联机帮助页。可使用以上这些组件配置和管理精细划分的权限。

6.2.1 命令表 6-1 “精细划分的权限的命令” 简要介绍了精细划分的权限的命令。

表 6-1 精细划分的权限的命令

说明命令

设置 二进制文件的安全属性。该属性包括保留权限、允许权限、隔离专区以及权限启动标记。

setfilexsec

显示 与二进制可执行文件相关联的安全属性。该属性包括保留权限、允许权限、隔离专区以及安全属性标记。

getfilexsec

显示 与正在运行的进程相关联的安全属性。该属性包括有效权限集、保留权限集、允许权限集、euid 以及隔离专区名称。

getprocxsec

6.1 概述 91

Page 92: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

6.2.2 联机帮助页表 6-2 “精细划分的权限的联机帮助页”简要介绍了精细划分的权限的联机帮助页。

表 6-2 精细划分的权限的联机帮助页

说明联机帮助页

HP-UX 权限概述privileges(5)

介绍精细划分的权限的接口。privileges(3)

介绍 setfilexsec 的功能和语法。setfilexsec(1M)

介绍 getfilexsec 的功能和语法。getfilexsec(1M)

介绍 getprocxsec 的功能和语法。getprocxsec(1M)

6.3 可用权限精细划分的权限主要针对开发人员。但是,管理员仍需要了解这些权限,以便了解此类应用程序的工作方式,并查找是否有任何未经授权的应用程序获得了权限。

表 6-3 “可用权限”列出了权限及其主要用途。

表 6-3 可用权限

说明权限

允许进程控制进程记帐系统。PRIV_ACCOUNTING

允许进程启动、修改和停止审核系统。PRIV_AUDCONTROL

授予进程更改其隔离专区的能力。PRIV_CHANGECMPT

允许进程向二进制文件授予权限。PRIV_CHANGEFILEXSEC

允许进程访问 chown() 系统调用。PRIV_CHOWN

允许进程更改其根目录。PRIV_CHROOT

允许进程更改其 UID、GID 和组列表。此外,还允许进程保留使用 chown()系统调用时在文件上设置的 suid 或 sgid 位。

PRIV_CHSUBJIDENT

允许进程打开文件或目录以便进行读取、执行或搜索,从而绕开不允许执行这些操作的隔离专区规则。

PRIV_CMPTREAD

允许进程写入文件或目录,从而绕开不允许执行该操作的隔离专区规则。PRIV_CMPTWRITE

允许进程在 IPC 和联网子系统中改写隔离专区规则。PRIV_COMMALLOWED

允许进程改写所有随机读取、执行和搜索访问限制。PRIV_DACREAD

允许进程改写所有随机写入访问限制。PRIV_DACWRITE

允许进程执行设备特定的管理操作,例如,格式化磁带或磁盘。PRIV_DEVOPS

允许进程加载内核模块,获取有关已加载内核模块的信息,以及更改动态加载的内核模块的全局搜索路径。

PRIV_DLKM

允许进程执行磁盘操作,例如删除或修改磁盘分区的大小或边界,或者跨系统导入和导出 LVM 卷组。

PRIV_FSINTEGRITY

92 精细划分的权限

Page 93: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

表 6-3 可用权限 (续)

说明权限

允许进程将资源和优先级限制设置为最大限制值以外的值。PRIV_LIMIT

允许进程使用 lockf() 系统调用来锁定打开的具有只读权限的文件。PRIV_LOCKRDONLY

允许进程使用 mknod() 系统调用来创建字符专用文件或块专用文件。PRIV_MKNOD

允许进程访问 plock 系统调用。PRIV_MLOCK

允许进程使用 mount() 和 umount() 系统调用来挂接和卸除文件系统。PRIV_MOUNT

允许进程更改处理器绑定、本地域绑定或启动策略。PRIV_MPCTL

允许进程执行网络管理操作,包括配置网络路由表和查询接口信息。PRIV_NETADMIN

允许进程绑定到特权端口。缺省情况下,端口号 0-1023 均为特权端口。PRIV_NETPRIVPORT

允许进程配置接口,以便在混杂模式下监听。PRIV_NETPROMISCUOUS

允许进程访问原始 Internet 网络协议。PRIV_NETRAWACCESS

允许进程在任意文件上设置 suid 或 sgid 位(如果该进程拥有属主权限)。该权限还允许进程在不清除 suid 或 sgid 位的情况下更改文件的所有权,前提是允许该进程更改文件的所有权。

PRIV_OBJSUID

允许进程改写与文件或资源的属主匹配的 UID 的所有相关限制。PRIV_OWNER

允许进程更改系统 pset 配置。PRIV_PSET

允许进程执行重新引导操作。PRIV_REBOOT

允许进程访问 rtprio() 系统调用。PRIV_RTPRIO

允许进程控制 RTE pset。PRIV_RTPSET

允许进程设置 POSIX.4 实时优先级。PRIV_RTSCHED

允许进程在系统上添加和修改隔离专区规则。PRIV_RULESCONFIG

允许进程使用 audwrite() 系统调用生成自身的审核记录。PRIV_SELFAUDIT

允许进程使用 serialize() 系统调用强制目标进程与其他标记为序列化的进程按顺序运行。

PRIV_SERIALIZE

允许进程在 Instant Capacity 产品中执行某些管理操作。PRIV_SPUCTL

允许进程管理系统属性,包括设置可调参数、修改主机名、域名和用户配额。

PRIV_SYSATTR

允许进程执行 NFS 操作,例如,导出文件系统、getfh() 系统调用、NFS文件锁定、调用 NFS 身份验证和创建 NFS 内核守护程序线程。

PRIV_SYSNFS

允许进程将试用模式信息记录到 Syslog 文件。PRIV_TRIALMODE

6.4 为应用程序配置精细划分的权限对某些程序进行写入或修改以使其支持精细划分的权限,这样的应用程序称为可识别权限的应用程序。必须使用 setfilexsec 命令来注册可识别权限的应用程序。注册之后,与二进制关

6.4 为应用程序配置精细划分的权限 93

Page 94: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

联的安全属性将存储到配置文件中,并在重新引导后保留持久性。在安装或使用 SD-UX 实用程序配置可识别权限的应用程序时,通常会执行此操作。

早期的 HP-UX 应用程序(或传统应用程序)不可识别权限。可以对以 UID=0 运行的传统应用程序进行配置,使其在运行时具有精细划分的权限。要使用 HP-UX RBAC 配置传统应用程序,请参阅“使用精细划分的权限配置 HP-UX RBAC”。

提示: HP 建议您使用 HP-UX RBAC 对需要以不同权限运行的应用程序进行配置。

要为可识别权限的应用程序配置安全属性,请使用 setfilexsec 命令,如下所示:# setfilexsec [options] filename

setfilexsec 命令将向本地文件系统上的二进制文件分配权限。不应向从网络文件系统 (NFS)获取的二进制文件分配权限,这是因为如果其他系统直接在 NFS 服务器上修改该文件,将不会删除 setfilexsec 设置的扩展属性。setfilexsec 具有下列选项:-d 从配置文件和内核中删除该文件的任何安全信息。

-D 仅从配置文件中删除该文件的任何安全信息。用于清除已删除文件的安全信息。

-r 添加或更改最小保留权限。

-R 添加或更改最大保留权限。

-p 添加或更改最小允许权限。

-P 添加或更改最大允许权限。

-f 设置安全属性标记。

getfilexsec 命令会显示通过 setfilexsec 命令设置的二进制文件的扩展属性。# getfilexsec filename

6.4.1 权限模型每个进程均有三个关联的权限集:

• 允许权限集

进程可具有的最大权限集。进程可从该集合中删除任何权限,但是不能向该集合添加任何权限。可将该集合中的权限添加到进程的有效权限集中。

• 有效权限集

进程的当前活动权限集。可识别权限的进程可以修改有效权限集,以便随时在该集合中仅保留必须的权限。进程可从有效权限集中删除任何权限,但仅能向其中添加允许权限集中的权限。

有效权限集始终是允许权限集的子集。

• 保留权限集

进程调用 execve() 系统调用时保留的权限集。进程可从该集合中删除任何权限,但是不能向该集合添加权限。

保留权限集始终是允许权限集的子集。

94 精细划分的权限

Page 95: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

第一个进程 init 以一个很小的权限集启动。接着,它会创建其他进程,这些进程使用 exec系列调用(execv、execve 等)来执行其他二进制文件。在此 exec 调用中,二进制文件的扩展属性、通过 setfilexsec 命令设置的属性可能会导致这些进程获取其父进程不具有的权限,或者丢失其父进程具有的权限。例如,如果某个二进制文件具有允许的最小 DACREAD 权限(已对该二进制文件执行 setfilexsec –p DACREAD),则新进程将具有 DACREAD 权限,而无论其父进程是否具有该权限。另一方面,如果进程已具有 DACREAD 权限,但是它执行的二进制文件不具有此允许的最大权限(例如,已对该文件执行 setfilexsec -P none ….),则将由于执行此二进制文件的负面影响而丢失该权限。

6.4.2 复合权限复合权限是一种指定预定义的简单权限集的简便方法。

包括下列复合权限:

• BASIC

缺省情况下,所有进程均可使用基本权限。进程可从该集合中删除一个或多个权限。

• BASICROOT

基本权限以及提供通常与 UID=0 关联的权限的权限。

• POLICY

策略改写权限和策略配置权限。策略改写权限可改写隔离专区规则。策略配置权限可控制配置权限的方式。

有关各复合权限中的权限的完整列表,请参阅 privileges(5)。

6.5 精细划分的权限的安全影响不要在分布式系统中传播精细划分的权限;它们仅适用于本地系统。例如,某一系统上具有PRIV_DACREAD 和 PRIV_DACWRITE 权限的进程不能改写其他系统上对读取或写入文件的随机限制。

6.5.1 权限提升在某些情况下,如果向进程授予某一权限或权限集,则该进程可获得没有明确授予的其他权限。这称为权限提升。例如,某个具有 PRIV_DACWRITE 权限的进程可改写操作系统关键文件,并且在进程中,还可向其自身授予其他精细划分的权限。

6.6 HP Serviceguard 群集中的精细划分的权限可使用 HP Serviceguard 监视可识别权限的应用程序。无须对 Serviceguard 程序包配置文件或Serviceguard 程序包管理进行任何更改,即可支持精细划分的权限。也无须为了更方便地使用精细划分的权限而更改 Serviceguard 脚本。要维护在向 Serviceguard 节点或程序包配置 HP-UX 11i 精细划分的权限时的正确 Serviceguard操作,请执行下列操作:

• 确保超级用户 (UID=0) 在 INIT 隔离专区中具有所有权限。

• 确保精细划分的权限的实现不会对 Serviceguard 群集造成安全风险。

6.5 精细划分的权限的安全影响 95

Page 96: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

6.7 精细划分的权限的故障排除如果 系统上某一程序未运行,并且怀疑该问题是因为精细划分的权限所致,则可按照如下所述检查精细划分的权限的配置。

问题 1:尽管已向二进制文件分配了精细划分的权限,但使用 exec() 访问该二进制文件的进程仍未接收到已分配的精细划分的权限。 解决办法:检查是否为下列情形之一。

• 所述文件是否为脚本?

将忽略向 Shell 脚本分配的任何精细划分的权限。

• 文件是否在分配精细划分的权限之后已更改?如果修改了文件,则其精细划分的权限属性将会丢失。在修改文件之前或修改之后运行以下命令:

# setfilexsec -d filename

然后,添加要分配给该文件的权限属性。

有关精细划分的权限的排除故障的详细信息,请参阅 setfilexsec(1M)。问题 2:进程具有不应具有的权限,或没有应具有的权限。 解决办法:使用 getprocxsec命令确定进程具有的权限:

# getprocxsec -per pid

该命令会显示进程的允许权限集、有效权限集和保留权限集。有关详细信息,请参阅getprocxsec(1M)。如果进程具有错误的权限,请使用正确的权限配置创建该进程的二进制文件。有关详细信息,请参阅“为应用程序配置精细划分的权限”。

96 精细划分的权限

Page 97: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

7文件系统安全本章介绍文件系统安全性。阅读本章之前,应具备文件和文件系统的基本概念。

因为数据存储在文件中,所以理解如何保护文件是非常重要的。本章包含下列主题:

• “控制对文件的访问”

• “设置访问控制列表”

• “使用 HFS ACL”

• “使用 JFS ACL”

• “JFS 和 HFS ACL 的比较”

• “ACL和 NFS”

• “关于 /dev 设备专用文件的安全性考虑”

• “保护磁盘分区和逻辑卷”

• “挂接和卸除文件系统的安全指南”

• “控制网络上的文件安全”

7.1 控制对文件的访问工作组、文件权限、文件所有权和隔离专区规则共同确定哪些用户可以访问指定的文件。最简单的文件访问规则是标准 UNIX 文件权限。可以将用户分组,使得属于某一组的文件可以在组内共享,并且阻止外部人员的访问。

可使用带 -l 标记的 ls 命令显示传统的 UNIX 文件权限。这些权限指出向系统上的属主和组授予了哪种访问权限(即读取、写入和执行权限)。传统的UNIX 文件保护允许对可以访问文件和目录的用户进行某些控制,但是不允许为所属用户和所属组之外的各用户和组定义访问权限。以下是对 UNIX 文件权限的简要说明。每个文件和目录都有九种与之相关的权限。文件和目录有下列三种类型的权限:

• r(读取)

• w(写入)

• x(执行)

这三种权限授予下列三种类别的用户:

• u(用户/属主)

• g(组)

• o(所有其他用户;也称为环境)

r 权限允许用户查看或打印文件。w 权限允许用户写入(修改)文件。x 权限允许用户执行(运行)文件或者搜索目录。

图 7-1 “文件与目录权限字段”显示了传统的权限字段。

7.1 控制对文件的访问 97

Page 98: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

图 7-1 文件与目录权限字段

权限

所有者 组 其他

rwx rwx rwx

r 读取w 写入x 执行

文件或目录的用户/属主通常是创建该文件或目录的人员。如果您是某个文件的属主,则可以使用 chmod 命令更改该文件的权限。组指定文件属于哪一组。如果您是某个文件的属主,则可以使用 chgrp 命令更改该文件的组ID。这三种类型的权限的含义在普通文件和目录之间具有细微的区别。有关详细信息,请参阅表 7-1。

表 7-1 文件和目录权限之间的区别

目录文件权限

可以读取内容,但不能搜索内容。通常r 权限和 x 权限是一起使用的。

可以查看或者打印内容。r(读取)

可以添加或者删除条目。可以更改或者删除内容。w(写入)

可以搜索目录。可以将文件用作程序。x(执行)

7.1.1 设置文件访问权限chmod 命令可更改文件属主、组成员或其他人的访问权限类型(读取、写入和执行权限)。只有文件的属主或者具有相应权限的用户可以更改文件访问权限。请参阅 chmod(1)。缺省情况下,创建者的 umask 值确定了文件和目录的读写权限的最初设置。要更改缺省的文件权限,请使用 umask 命令。请参阅 umask(1)。在文件模式创建掩码中设置的位会导致清除(禁用)文件模式中对应的权限位。反之,掩码中被清除的位允许在新建文件中启用对应的文件模式位。

例如,八进制 022 的 umask 创建以下掩码:u=rwx、g=rx、o=rx,这将禁用组和其他写入权限。

7.1.2 设置文件所有权chown 命令可以更改文件所有权。要更改属主,必须拥有该文件或取得相应的权限。chgrp 命令可以更改文件组所有权。要更改组,必须拥有该文件或取得相应的权限。

98 文件系统安全

Page 99: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

有关详细信息,请参阅 chown(1) 和 chgrp(1)。

7.1.3 保护目录通常,如果某个目录通过标准权限或 ACL 可写,则任何用户都可以删除该目录中的文件,而无论他们自身对这些文件拥有什么权限。要防止目录中的文件被意外删除,请执行以下操作:

• 对不应具有写入权限的目录,应删除其写入权限。

这对于用户的专用目录而言尤其有效。以下命令允许其他人读取和搜索 mydir 目录,但只有属主可以删除其中的文件。

# chmod 755 mydir

请参阅 chmod(1) 和 chmod(2)。

• 对目录设置粘滞位。

• 粘滞位是每个文件的模式中的一个特殊位。设置粘滞位可阻止用户从该目录中删除其他用户的文件。通过设置目录的粘滞位,只允许文件属主、目录属主、或者具有相应权限的用户删除或重命名文件。

对于必须允许很多已授权用户访问的临时目录或项目目录(例如,/tmp 和 /var/tmp)而言,此项功能很有效。以下命令允许任何人在 /mfgproj 中创建、读取和写入文件,但只有文件属主、目录属主或具有相应权限的用户可以删除文件:

# chmod a+rwxt /mfgproj

设置粘滞位对用于临时文件的目录来说是很重要的。如果临时目录未设置为粘滞,攻击者可以更改用户程序的预期行为,方法是:等待创建临时文件,然后删除此文件,并重新创建具有修改后内容的新同名文件。在大多数情况下,应用程序不会意识到此更改,并在无意间代替攻击者执行恶意行为。

7.1.4 保护与用户帐户相关的文件请按照下列指导,保护与用户帐户相关的文件:

• 对于除属主以外的其他任何人而言,主目录都应该是不可写的。否则,任何用户都可以在该目录中添加文件和删除文件。

• 对于除属主以外的其他任何人而言,每个用户的 .profile、.kshrc、 .login 和 .cshrc文件都应该是不可写的。

• 对于除属主以外的其他任何人而言,用户的 .rhosts 文件应该是既不可读也不可写的。此预防措施可防止用户猜出您还有哪些其他的帐户,并防止任何人通过编辑您的 .rhosts文件来获得对那些系统的访问权限。有关详细信息,请参阅 hosts.equiv(4)。

• 不要使用 .netrc 文件,因为它避开了对远程登录的 login 验证过程,甚至包含用户的未加密的口令。如果要使用,则 .netrc 对于除属主以外的其他任何人而言必须是既不可读也不可写的。有关详细信息,请参阅 netrc(4)。

7.1.5 使用 fsck 确定和纠正文件损坏下列问题可表示出现文件系统损坏:

7.1 控制对文件的访问 99

Page 100: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

• 文件包含不正确的数据(乱码)。

• 文件已被截断或丢失数据。

• 文件意外地消失或更改位置。

• 在用户终端、系统控制台或系统日志中出现错误消息。

• 无法更改目录或列出文件。

• 系统重新引导失败。

如果无法立即确定文件系统的问题,请使用 fsck 检查文件系统。fsck 命令是确定和纠正文件系统不一致的主要工具。fsck 命令检查在 /etc/fstab 中列出的文件系统。fsck 实用程序无法检测文件损坏。如果 fsck 没有发现错误,说明问题很可能不是文件系统损坏。也就是说,即使基础数据丢失或者损坏,文件系统仍是可用的。查找是否发生下列一个或多个文件问题:

• 某用户、程序或应用程序删除、覆盖、移动或截断了一个或多个文件。

• 与文件创建时所在目录相关联的文件系统可能没有挂接到该目录。

• 文件位于现在已经挂接文件系统的目录中。文件仍然存在但是不可访问。卸除文件系统以访问文件。

• 文件保护或所有权阻止访问。使用 chmod 命令或者 chown 命令更改文件权限。

7.2 设置访问控制列表ACL(access control lists,访问控制列表)提供了比传统文件访问权限更精确的文件保护等级。可以使用 ACL 来允许或限制单个用户对文件的访问权限,而无需考虑用户属于哪个组。只有文件属主或者具有相应权限的用户才可以创建 ACL。定期文件系统 (JFS) 和高性能文件系统 (HFS) 都支持 ACL,但是它们使用不同的机制和语法。JFS 是 VERITAS 定期文件系统 (VxFS) 的 HP-UX 实现。JFS 是 UNIX 文件系统 (UFS) 的 HP-UX 版本,并与 HP-UX 的早期版本兼容。访问控制列表 (ACL) 是一组与文件相关的用户、组和模式条目。该列表为所有可能的用户 ID 和组 ID 组合指定权限。相对于传统的 UNIX 文件权限,使用访问控制列表可以更精确地控制对文件的访问。使用 ACL,除了传统的控制外,还可以通过单个用户和特定组的形式来授予或限制文件访问权限。

HFS 和 JFS 文件系统都支持 ACL,但使用不同的机制和语义。

注释: 现在不推荐使用 HFS。在将来的发行版中,将从操作系统中移除 HFS。HP-UX 支持下列两种单独的 JFS 产品:包含在操作系统中的基本 JFS 产品,以及单独安装的可选高级产品 OnLineJFS。这两种 JFS 产品都支持 ACL。有关详细信息,请参阅 setacl(1)、getacl(1)、aclv(5)、chacl(1)、lsacl(1) 和 acl(5)。

7.3 使用 HFS ACLHFS ACL 权限通过 chacl 命令来设置,并通过 lsacl 命令来显示。请参阅示例 7-1 “创建 HFSACL”

100 文件系统安全

Page 101: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

重要信息: 当处理分配了 HFS ACL 权限的文件时,必须使用带 -A 选项的 chmod。如果不使用 -A 选项,chmod 将删除文件的 ACL 权限。语法为:

# chmod -A mode file

chacl 命令是 chmod 命令的超集。使用 chacl 命令分配的任何特定权限都会添加到使用 chmod命令分配的更通用的权限中。

如果文件具有 ACL,则 ll 命令会在权限字符串后显示一个 (+)。如果 user.group 与多个 HFS ACL 条目匹配,则更确定的条目优先。请参阅示例 7-2 “多个HFS ACL 匹配”

7.3 使用 HFS ACL 101

Page 102: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

示例 7-1 创建 HFS ACL

在本例中,chmod 命令仅限制用户 allan 对 myfile 的写入权限。chmod 命令还会删除以前的任何 HFS ACL。$ chmod 644 myfile$ ll myfile-rw-r--r-- 1 allan users 0 Sep 21 16:56 myfile$ lsacl myfile(allan.%,rw-)(%.users,r--)(%.%,r--) myfile

lsacl 命令只显示分别对应于基本属主、组以及其他权限的缺省值(非 ACL 值)。chacl 命令将 myfile 的读写访问权限授予另一个用户。$ chacl 'naomi.users=rw' myfile$ ll myfile-rw-r--r--+ 1 allan users 0 Sep 21 16:56 myfile$ lsacl myfile(naomi.users,rw-)(allan.%,rw-)(%.users,r--)(%.%,r--) myfile

请注意下面两点:显示的 ll 权限后面附加了一个 +,表示存在 ACL 并且 ll 权限字符串未发生变化。lsacl 显示中的附加条目指定 users 组中的 naomi 用户对 myfile 具有读取和写入权限。

示例 7-2 多个 HFS ACL 匹配

如果用户的 user.group 组合与多个 ACL 条目匹配,则最确定的条目优先。在本示例中,首先设置文件权限。

$ chmod 644 myfile

对 myfile 使用 chacl 命令为用户 naomi 添加只写条目。$ chacl naomi.%=w myfile$ lsacl myfile(naomi.%,-w-)(allan.%,rw-)(%.users,r--)(%.%,r--) myfile

现在,通过使用对 naomi.% 定义的 ACL,用户 naomi 对文件 myfile 具有写入权限,但不具有对该文件的读取权限,因为 naomi.% 优先于对 %.users 和 %.% 定义的 ACL。lsacl 命令按确定性递减的顺序显示 HFS ACL。也就是说,按从左至右的顺序来尝试进行权限匹配。

7.3.1 HFS ACL 和 HP-UX 命令和调用下列命令和系统调用适用于 HFS 文件系统上的 ACL:

102 文件系统安全

Page 103: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

表 7-2 HFS ACL 命令

说明命令

更改文件的 HFS ACL。chacl

列出用户对文件的访问权限。getaccess

列出文件的 HFS ACL。lsacl

表 7-3 HFS ACL 系统调用

说明系统调用

获取用户对文件的有效访问权限。getaccess()

获取 HFS ACL 信息。getacl()、 fgetacl()

设置 HFS ACL 信息。setacl()、fsetacl()

将 HFS ACL 结构转换为字符串形式。acltostr()

更改 HFS 文件的 ACL 中显示的属主或组。chownacl()

将 HFS ACL 和模式位从一个文件复制到另一个文件。cpacl()、fcpacl()

添加、修改或者删除 HFS 文件的 ACL 条目。setaclentry()、fsetaclentry()

分析 HFS ACL 结构并将其转换为字符串形式。strtoacl()

分析 HFS ACL 模式字符串并将其转换为阵列。strtoaclpatt()

ACL 条目受下列命令、系统调用和子例程库的影响,有时这种影响会以意外的形式发生。

表 7-4 影响 ACL 条目的命令和调用

说明命令或者调用

缺省情况下删除 HFS ACL。使用 -A 选项可保留 HFS ACL。chmod

删除 HFS ACL 条目。使用 getacl() 和 setacl() 可保存和恢复 HFS ACL 条目。

chmod()

不设置文件的可选 ACL 条目。cpset

识别其 ACL 条目与 HFS 或 JFS 文件系统中的特定 ACL 模式匹配或包含此种模式的文件。

find

长形式,通过在文件的权限位后显示加号 (+) 来表示存在ACL。

ls -l

不支持 /var/mail/* 文件上的可选 ACL 条目。mailx

将 ACL 条目复制到新建的文件中。compact、compress、cp、ed、pack、unpack

只使用这些命令来选择性地恢复和备份文件。当在 ACL 系统上进行备份以便在不支持 ACL 的系统上进行恢复时,请使用 -A 选项。

frecover、fbackup

7.3 使用 HFS ACL 103

Page 104: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

表 7-4 影响 ACL 条目的命令和调用 (续)

说明命令或者调用

这些命令在进行归档和恢复时不保留 ACL。它们使用stat() 返回的 st_mode 值。

ar、cpio、ftio、shar、tar、dump、restore

这些命令不支持 ACL。rcs、sccs

当创建新的文件系统时,HFS 访问控制列表使用附加的“延续 I 节点”。当使用下列命令时,可以考虑使用这些 I 节点:

• fsck:返回以 ACL 条目作为 icont 的值的文件数。使用 -p 选项可清除未引用的延续 I节点。请参阅 fsck(1M)。

• diskusg、ncheck:忽略延续 I 节点。请参阅 diskusg(1M) 和 ncheck(1M)。

• mkfs:允许在新的磁盘上使用延续 I 节点。请参阅 mkfs(1M)。

7.4 使用 JFS ACL本节描述 JFS ACL 以及如何使用这些列表。

注释: 要使用 JFS ACL,必须具有使用磁盘布局版本 4 的 VxFS 文件系统。有关将文件系统升级到版本 4 的信息,请参阅 vxupgrade(1M)。

7.4.1 JFS ACL 的定义JFS ACL 包含一行条目,这些条目命名特定的用户和组,并指出对各个用户和组授予哪些权限。JFS ACL 还会更改使用 ls -l 命令显示的 group 权限位的含义。JFS ACL 中总是有至少四个条目:一个 user 条目、一个 group 条目、一个 class 条目以及一个 other 条目。如果 JFS ACL 只包含这四个条目,则它授予的权限与标准 UNIX 系统权限位所代表的权限完全相同。

7.4.2 系统如何生成 JFS ACL无论何时在 JFS 文件系统中创建文件,系统都会对该文件的最小 JFS ACL 进行初始化,其中包含一个对应属主权限的 user 条目,一个对应所属组权限的 group 条目,一个对应所属组权限的 class 条目,以及对应其他组权限的 other 条目。可以由用户添加其他条目,或由于在父目录中指定了缺省条目而添加其他条目。

7.4.3 最小 JFS ACL具有前面定义的四个基本条目的 ACL 称为最小 JFS ACL。以下是一个最小 ACL 示例:user::rw-group::r--class:r--other:---

104 文件系统安全

Page 105: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

• user 条目指出文件属主所获得的权限,并直接对应属主的权限位。由于第一个条目应用于文件的属主,因此不需要指出用户名。本示例 ACL 条目授予文件属主读取和写入的权限。

• group 和 class 条目指定授予文件所属组的成员的权限。本示例 ACL 条目授予文件所属组只读权限。有关 group 和 class 条目的详细信息,请参阅“JFS ACL 组和类条目”。

• other 条目是全捕获条目,它对未被其他任何条目授予或拒绝权限的任何人指定权限。该示例 other 条目拒绝对既非文件的属主也不在文件所属组中的所有用户的权限。

ls -l 对该文件显示的权限位应如下所示:rw-r-----

下一节介绍附加 JFS ACL 条目如何影响文件访问权限以及权限位的解释。

7.4.4 附加 JFS ACL 用户和组条目如果要对系统中的特定用户和组授予或拒绝访问权限,可以在上一节介绍的最少四个条目外,再添加最多 13 个 user 和 group 条目。例如,ACL 中的以下条目向以 boss 身份登录的用户授予读取、写入和执行的访问权限:user:boss:rwx

在下例中,具有以下条目的 ACL 对 spies 组中的用户拒绝访问权限:group:spies:---

7.4.5 JFS ACL 组和类条目在具有最小 ACL 的文件中,所属的 group 和 class ACL 条目完全相同。但是,在具有附加条目的文件中,所属的 group 和 class ACL 条目截然不同。所属 group 条目对特定的组:即所属的 group 授予权限。class 条目更加通用;它指定可以由任何附加 user 和 group 条目授予的最大权限。如果未在 class 条目中授予特定权限,则任何 ACL 条目都无法授予该权限,除第一个 user(属主)条目和 other 条目外。可以对特定的用户或组拒绝任何权限。class 条目充当文件权限的上限。

如果 ACL 包含多个 group 或 user 条目,则附加 user 和 group 条目也称为 group class条目,因为其中任何附加条目所授予的有效权限都受到 class 条目的限制。

7.4.6 使用 setacl 和 getacl 命令使用 setacl 和 getacl 命令更改和查看 ACL。使用 setacl 命令以下列方法之一更改 ACL:

• 替换文件的整个 ACL,包括目录上的缺省 ACL。

• 添加、修改或者删除一个或多个条目,包括目录上的缺省条目。

getacl 命令显示 ACL 中的条目。user 和 group 的文件权限位会转换为这些条目的特例:

7.4 使用 JFS ACL 105

Page 106: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

• 代表属主权限的位由不具有特定用户 ID 的 user 条目表示。

• 代表组权限的位由不具有特定组 ID 的 group 条目表示。ACL 必须包含一个特殊的 user 条目和一个特殊的 group 条目。ACL 可以具有任意数量的附加 user 条目和 group 条目,但这些条目必须都各自包含一个用户 ID 或组 ID。ACL只有一个 other 条目,该条目代表要授予其他用户的权限的权限位。

有关对命令的说明,请参阅 setacl(1) 和 getacl(1)。

7.4.7 chmod 对类条目的影响如果文件具有最小 ACL,则所属的 group 和 class ACL 条目完全相同,并且 chmod 会同时影响到二者。但是,如果文件的 ACL 中包含附加的可选条目,会产生下列后果:

• class ACL 条目将不再必须与所属的 group ACL 条目相等。

• chmod 命令影响 class ACL 条目,但不影响 group 条目。

• 必须使用 setacl 命令来更改所属的 group 条目。

7.4.8 最小 JFS ACL 的更改示例为了举例说明 JFS ACL class 条目的作用,本节说明了 chmod 和 setacl 如何影响具有最小JFS ACL 的文件以及具有 group class 条目的文件。

注释: 有关 getacl 和 setacl 命令的详细使用信息,请参阅“通过 setacl 命令更改 JFSACL”。另请参考 getacl(1) 和 setacl(1)。

考虑文件 exfile,该文件具有只读 (444) 权限和最小 JFS ACL。ls -l 命令显示了 exfile的权限:

$ ls -l exfile-r--r--r-- 1 jsmith users 12 Sep 20 15:02 exfile

getacl 命令列出了 exfile 的以下输出,这是一个最小 JFS ACL:$ getacl exfile# file: exfile# owner:jsmith# group:usersuser::r--group::r--class:r--other:r--

使用 chmod 命令对 exfile 添加写入权限可同时更改所属的 group 和 class ACL 条目。例如,查看 getacl 命令的输出:$ chmod 666 exfile$ getacl exfile# file: exfile

106 文件系统安全

Page 107: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

# owner:jsmith# group:usersuser::rw-group::rw-class:rw-other:rw-

现在添加一些附加的用户和组条目,这会影响到 class ACL 条目,但不会影响到所属的 group条目。下面的第一个 setacl 命令对用户 guest 授予只读权限;其他 ACL 条目不受影响。但是,第二个 setacl 命令向组 dev 授予读取-执行权限,并且会扩展权限的上限(class 条目)以包括执行权限。

$ setacl -m u:guest:r-- exfile$ setacl -m g:dev:r-x exfile$ getacl exfile# file:exfile# owner:jsmith# group:usersuser::rw-user:guest:r--group::rw-group:dev:r-xclass:rwxother:rw-

接着,chmod 命令删除 group 的写入和执行权限,实际是将 class 权限减少到只读。所属的group 权限虽然未发生变化,但也被有效地减少到只读。$ chmod g-wx exfile$ getacl exfile# file: exfile# owner:jsmith# group:usersuser::rw-user:guest:r--group::rw- # effective:r--group:dev:r-x # effective:r--class:r--other:rw-

other 权限未发生变化。class 条目不限制可以由第一个 user(属主)条目或 other 条目授予的权限。

接着,ls -l 命令列出了 exfile 的权限。权限字符串末尾的加号 (+) 表示该文件存在 ACL。$ ls -l exfile-rw-r--rw-+ 1 jsmith users 12 Sep 20 15:02 exfile

7.4 使用 JFS ACL 107

Page 108: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

7.4.9 缺省 JFS ACL您可能希望在一个目录中创建的所有文件都具有某些 ACL 条目。例如,您可以允许另一个用户对您目录中的任何文件进行写入操作,这样您和该用户就可以一起处理某些文件。

您可以通过对该目录中的每个文件设置一个 ACL 条目来授予需要的权限,但每次创建新文件时,都必须再次添加该条目。使用缺省的 ACL 条目,可以使系统在每次有文件创建出来时自动为您完成此项工作。

缺省的 ACL 条目如下所示:default:user:boss:rw-

缺省 ACL 只能放置在目录中,并且不会影响已授予用户的目录访问权限。缺省 ACL 将应用于在目录中创建的文件。

如果新创建的文件是一个目录,则缺省 ACL 条目具有两个作用:

• 创建对应的非缺省 ACL 条目,以便对该目录授予和拒绝相应的权限,此时的作用与对该目录中创建的任何文件的作用相同。

• 复制缺省条目自身,使新的子目录与父目录具有相同的缺省 ACL。

例如,如果希望在目录 projectdir 中创建的任何文件对于某些用户而言是可读的,应创建相应的缺省条目,如下所示:$ setacl -m d:u:boss:r,d:u:jjones:r,d:u:dev:r projectdir

$ getacl projectdir# file:projectdir# owner:jsmith# group:usersuser::rw-user:boss:rw-user:jjones:rw-user:jdoe:---group::rw-group:dev:rw-class:rw-other:---default:user:boss:r---default:user:jjones:r--default:group:dev:r--

如果新创建的文件是一个目录,则生成相同的 ACL 条目。此外,缺省条目自身也放置在 ACL中。

这些条目准备好后,在目录 projectdir 中创建的任何新文件都将具有与前面显示的 ACL 类似的 ACL(没有缺省目录)。

7.4.10 通过 setacl 命令更改 JFS ACL本节介绍使用 setacl 命令的更多示例。

108 文件系统安全

Page 109: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

7.4.10.1 使用修改和删除选项下面的 setacl 命令使用 -m(修改)选项向用户 boss 授予对 junk 文件的只读访问权限。$ setacl -m u:boss:r-- junk

要对组 dev 中的每个人授予读取和写入权限,请使用带组 (g:) 参数的setacl -m 命令:$ setacl -m g:dev:rw- junk

-d 选项的作用是删除条目。如果使用 -d,则不会在 ACL 条目中指定任何权限。例如,下列命令删除组 dev 所对应的条目:$ setacl -d g:dev junk

7.4.10.2 使用 -f 选项如果要添加或更改多个条目,可以使用不同的过程。可以将 ACL 保存到某个文件,编辑文件,然后将新 ACL 应用到该文件。例如,可以使用以下命令将 ACL 保存到文件:$ getacl junk > junk.acl

编辑文件,使其内容如下所示:

$ cat junk.acl# file:junk# owner:user1# group:group1user::rw-user:user2:rw-user:user3:rw-user:user4:---user:user5:r--group::rw-group:group2:rw-group:group3:r--group:group4:---group:group5:rw-class:rw-other:r--

使用 setacl -f 命令将 ACL 应用到文件:$ setacl -f junk.acl junk

7.4.10.3 有效权限和 setacl -n通常,setacl 会重新计算 class 条目,以确保授予在附加 ACL 条目中授予的权限。如果指定 -n 选项,则不会重新计算 class 条目;将使用现有值。这意味着在实际使用中,将不会授予 ACL 条目授予的一些权限。

7.4 使用 JFS ACL 109

Page 110: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

例如,使用 setacl -n 命令修改 ACL,以便对组 dev 添加读取和执行权限,如下所示:$ getacl exfile# file: exfile# owner:jsmith# group:usersuser::rw-group::rw-class:rw-other:rw-

$ setacl -n -m group:dev:r-x exfile$ getacl exfile# file: exfile# owner:jsmith# group:usersuser::rw-group::rw-group:dev:r-x #effective r--class:rw-other:rw-

组 dev ACL 条目按照指定的要求添加,但不会真正地被授予执行权限。执行权限被 class 条目拒绝,并且 class 条目不会重新计算,因为指定了 -n。如果不使用 -n,class 将会被重置为 class:rwx,并且不会出现 effective 注释。

7.5 JFS 和 HFS ACL 的比较JFS ACL 遵守 POSIX ACL 标准。JFS ACL 在格式(内部和外部)和功能上均与 HFS ACL 不同。JFS 和 HFS ACL 在功能上的区别包括下列几点:

• JFS 目录的 ACL 可以有缺省条目,缺省条目适用于随后在该目录中创建的文件。HFS ACL不具有此项功能。

• HFS ACL 的属主可以不同于 ACL 控制的文件的属主。JFS ACL 由相应文件的属主所有。

• HFS ACL 可以有对应于特定组中的特定用户的不同条目。例如,userx 在作为组 users的成员时可以具有读取和写入权限,但在作为组 other 的成员时只具有读取权限。

7.5.1 JFS 和 HFS 的命令和功能对照表 7-5 “HFS ACL 和 JFS ACL 的等价命令”列出了 JFS ACL 和 HFS ACL 的等价命令和功能的联机帮助页。

110 文件系统安全

Page 111: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

表 7-5 HFS ACL 和 JFS ACL 的等价命令

JFS 等效命令HFS 名称

setacl(1)chacl(1)

getacl(1)lsacl(1)

acl(2)getacl(2)

—无—fgetacl(2)

acl(2)setacl(2)

—无—fsetacl(2)

—无—acltostr(3C)

—无—chownacl(3C)

—无—cpacl(3C)

—无—setaclentry(3C)

—无—strtoacl(3C)

aclsort(3C)—无—

aclv(5)acl(5)

7.6 ACL和 NFS网络文件系统 (NFS) 不能传递有关远程文件的 ACL 信息。因此,在远程文件上,ACL 对于 NFS来说是不可见的。ls -l 命令将不会显示远程文件上的 ACL,但是 ACL 对于访问权限的控制仍然有效。

各联机帮助页条目指定了各个系统调用、库调用以及命令在这些环境下的行为。

重要信息: 在网络中传输具有可选条目的文件或操作远程文件时应小心,因为 NFS 会在没有任何提示的情况下删除可选条目。

7.7 关于 /dev 设备专用文件的安全性考虑对系统中所有设备的访问是由设备特有文件来控制的,这些文件使得程序是“设备无关”的。这些文件自带权限设置,从而可以实现正确的使用以及最大安全性。

如果要安装任何其他设备专用文件,请参阅 insf(1M) 了解正确的权限设置信息。由于设备专用文件与其他任何文件一样容易被篡改,因此需采取下列预防措施:

• 将所有设备专用文件都保存在 /dev 目录中。• 防止内存文件、/dev/mem 和 /dev/kmem 被不经意地访问,原因是这些文件包含敏感的

用户信息。例如,监视用于调用 login 程序的内存的程序,可能会在用户键入口令时从login 程序缓冲区复制该口令。该文件保护应设置为:crw-r----- 1 bin sys 3 0x000001 Jun 9 2006 /dev/kmem

crw-r----- 1 bin sys 3 0x000000 Jun 9 2006 /dev/mem

7.6 ACL和 NFS 111

Page 112: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

• 保护所有磁盘特有文件:

针对常规用户对所有磁盘特有文件实施写保护,以防止数据无意中被破坏。对 group和other 关闭写访问。

• 对磁盘特有文件实施读保护,以防止数据暴露。对 other 关闭读访问。

文件保护应设置为:

brw-r----- 1 bin sys 31 0x002000 Feb 18 2004 /dev/dsk/c0t2d0

crw-r----- 1 bin sys 188 0x002000 Aug 3 2004 /dev/rdsk/c0t2d0

brw-r----- 1 root sys 64 0x000002 Jun 11 2006 /dev/vg00/lvol2

crw-r----- 1 root sys 64 0x000002 Jun 11 2006 /dev/vg00/rlvol2

• 如果允许用户使用 write 或 talk 程序进行通信,则 HP-UX 系统上的终端端口对于任何人而言都是可写的。应只允许属主具有读取权限。

• 不要允许单个用户拥有除终端设备或个人打印机以外的任何设备专用文件。

• 在服务中使用来源未知的磁盘或其他可安装设备之前,应检查其文件以了解是否有专用文件和 setuid 程序。请参阅“挂接和卸除文件系统的安全指南”。

7.8 保护磁盘分区和逻辑卷Logical Volumn Manager (LVM) 是一种常用的磁盘管理工具。LVM 划分磁盘的方式比磁盘分区更容易,并且卷可以跨多个磁盘。卷是以物理磁盘分区形式存在的逻辑设备。在创建文件系统或者数据库时,可以将卷用作此类应用程序的虚拟磁盘分区。

下面是有关磁盘分区和逻辑卷的一些安全性考虑:

• 确保磁盘分区和逻辑卷的设备专用文件只对超级用户(可能还包括用于进行磁盘备份的帐户)是可读的。请参阅“关于 /dev 设备专用文件的安全性考虑”。

• 因为所有权和权限存储在 I 节点中,所以对挂接的分区具有写入权限的任何人都可以对该分区中的任何文件设置用户 ID。无论是否为属主,都可以避开 chmod() 系统调用和其他安全性检查,来更改文件。

如果设备专用文件是可写的,则用户可以打开文件并且访问原始磁盘。然后,用户就可以直接编辑文件系统、读取文件或者更改文件权限和属主。

请确保禁止对设备专用文件的文件访问权限,并仅允许超级用户可以对其进行读取。

• 如果某程序(例如数据库)要求直接访问分区,该分区应仅为该程序保留。如果用户可以直接访问某个分区,则不要将该分区挂接为文件系统。如果将分区挂接为文件系统,则用户可以编辑该基础文件系统。

通知程序用户,文件的安全是通过其权限设置而不是通过 HP-UX 文件系统强制实现的。

7.9 挂接和卸除文件系统的安全指南使用 mount 命令可以将可移动的文件系统以及磁盘或磁盘分区附加到现有文件树。mount 命令使用名为 /etc/fstab 的文件,该文件包含可用文件系统及其相应挂接点的列表。使 /etc/fstab 文件只对于超级用户可写,但对于其他用户可读。有关挂接文件系统的详细信息,请参阅 fstab(4)。

112 文件系统安全

Page 113: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

挂接文件系统或磁盘时应采取下列预防措施:

• 创建一个用来挂接新文件系统的挂接点目录(如 /mnt)。永远不要在已包含文件的目录中挂接文件系统,否则这些文件将变得不可访问。

已挂接文件系统的挂接点将获得文件系统根目录的权限和所有权。

• 对磁盘路径名设置权限和访问控制列表条目来控制对磁盘的访问。

• 使用 mount 命令的 -r 选项来挂接只读的文件系统。必须通过这种方式挂接物理写保护的文件系统。

• 挂接新的或外来的文件系统时,应假定介质是不安全的。

确保 PATH 环境变量不包括 “.”(当前目录);否则,在检查新的文件系统时可能会运行特洛伊木马版的 ls 或一些类似的命令。

• 运行 fsck 命令来确认文件系统未遭到技术上的破坏。请参阅 fsck(1M)。

• 运行 ncheck_hfs -s 或 ncheck_vxfs -s 命令来扫描 setuid 和 setgid 程序和设备文件,并调查任何可疑的发现。-s 选项用于发现对安全策略的潜在破坏。F有关详细信息,请参阅 ncheck_hfs(1M) 和 ncheck_vxfs(1M)。

• 创建仅限于超级用户使用的目录,方法是将其权限设置为 700 (drwx------)。# mkdir /securefile# chmod 700 /securefile

• 在该位置挂接只读的外来文件系统:

# mount -r /dev/disk1 /securefile

• 检查所有目录中的特权程序,并验证每个程序的身份。

• 重新挂接系统读取和写入权限,并从上一步骤中发现的文件中删除任何不必要的 setuid和 setgid 权限。如果是用户请求您挂接个人的文件系统,则上述预防措施尤其重要。

只有在执行这些测试后,才应卸装文件系统并将它重新挂接到需要的位置。

• 对于要禁用或删除其帐户的用户,应务必卸装其已挂接的所有文件系统。

有关 NFS 环境中已挂接的文件的信息,请参阅“在 NFS 环境中挂接的文件”。

7.10 控制网络上的文件安全从安全的角度考虑,联网的系统比独立的系统更容易受到攻击。联网增加了系统的可访问性,但也增加了安全遭到破坏的风险。

虽然无法通过网络完全控制安全性,但可以控制网络上每个节点的安全性,以限制系统被侵入的风险,同时不会降低系统的有效性或用户的生产率。

确保所有网络管理程序都由受保护的网络专用帐户所有,例如 uucp、nso 或者 daemon,而不是超级用户。

7.10 控制网络上的文件安全 113

Page 114: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

7.10.1 检查网络控制文件上的权限设置应认真设置所有系统文件上的模式、属主和组。定期检查这些文件的更改。记录并改正对原始值的任何更改。

应特别注意 /etc 目录中的网络控制文件。这些文件对试图获得非授权访问权限的人员来说非常有用,因为这些文件提供对网络自身的访问。网络控制文件对于公众而言应该是永远不可写的。这些文件包括:

exports 要导出到 NFS 客户端的文件系统列表hosts 网络主机及其地址

hosts.equiv 与本地主机等效的、允许访问的远程主机

inetd.conf Internet 配置文件netgroup 网络范围组列表

networks 网络名称及其地址

protocols 协议名称数据库

services 服务名称数据库

7.10.2 在 NFS 环境中挂接的文件网络文件系统 (NFS) 的用途表现在下面几个方面:

• 节省文件空间。

• 维护一致的文件使用。

• 提供协作式的用户环境。

NFS 通过 /etc/exports 文件来控制访问,从而优化了服务器和客户端系统之间的文件共享。/etc/exports 中的条目提供将服务器上现有文件系统挂接到任何客户端计算机或指定计算机的权限。文件系统一旦被输入到 /etc/exports 中,即意味着可以进行 NFS 挂接的任何人都可以访问其中的信息。因此,NFS 客户端用户无需登录到服务器系统,即可访问服务器文件系统。有关对导出的文件系统的访问控制的信息,请参阅 exports(4),并参阅“如何保护 NFS安装的文件”以了解安全准则。

7.10.2.1 服务器弱点通过在文件 /etc/exports 中设置有限的权限,可以维护服务器的安全性。NFS 中不维护超级用户特权。因此,即便您对客户端系统具有超级用户特权,也不具备对服务器的特殊访问权限。

服务器对客户端进行远程的权限检查,就像对自己的用户所进行的本地检查一样。服务器端通过将客户端的用户 ID 和组 ID(通过网络接收)与服务器文件的用户 ID 和组 ID 进行比较,来控制客户端对服务器文件的访问。检查过程发生在内核层。

在 NFS 客户端上具有特权的用户可以利用该特权来获得对 NFS 服务器的无限制访问权限。

注释: 永远不要将任何文件系统导出到其授予特权的策略比您自己节点的策略更为宽松的节点。

114 文件系统安全

Page 115: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

7.10.2.2 客户端漏洞在用于工作站的 NFS 的早期版本中,/dev I 节点必须驻留在客户端的磁盘中。NFS 现在允许包含客户端安装设备专用文件的主次编号的 /dev I 节点存在于服务器端。这使得某些人可以通过在服务器端找到的文件和 I 节点编号来访问设备专用文件,从而创建特洛伊木马来改写客户端安装设备专用文件上的权限集。

虽然缺乏在客户端上制作设备专用文件的权限,但是系统攻击者可以利用服务器端的超级用户权限来创»º设备专用文件,例如/dev/kmem。新建的 /dev 文件与客户端上的目标设备具有相同的主次编号,但具有下列权限:crw-rw-rw-。

然后攻击者可以转到客户穀¯,以普通用户登录,并使用 NFS 打开新创建的服务器端设备专用文件,将它用于破坏性目的。

7.10.2.3 如何保护 NFS 安装的文件下面是对保护 NFS 挂接的文件的建议:

• 如果可能,应确保将客户端和服务器系统交由同一个人来管理。

• 维护用户 ID 和组 ID 在服务器和客户端系统之间的一致性。

• 定期检查从服务器导出的文件系统中的 /dev 文件。

• 限制可以对 /etc/passwd 客户端文件进行写入访问的用户。

• 要实施最严格的控制,应审核可通过网络访问的每一台主机。

• 考虑使用 fstab nosuid 命令来保护系统不受 setuid 程序的破坏,该程序可以以超级用户身份运行并破坏系统。缺省挂接选项为 suid, 该选项允许具有 setuid 权限的安装程序时具有其属主的权限,而无论是谁启动这些程序。因此,如果具有 setuid 权限的程序由超级用户所有,则该程序将在超级用户权限下运行,而无论是谁启动该程序。

7.10 控制网络上的文件安全 115

Page 116: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

116

Page 117: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

8保护对系统的远程访问HP-UX 提供了多种远程访问服务,例如文件传输、远程登录、远程命令执行、管理 IP 地址和网络客户端、路由协议、邮件交换、网络服务以及由 Internet 超级守护程序 inetd 产生的安全机制。

本章包含下列主题:

• “Internet Services 和远程访问服务概述”

• “inetd 守护程序”

• “使用 TCP Wrappers 防止欺骗”

• “Secure Internet Services”

• “控制管理域”

• “使用 HP-UX Secure Shell (SSH) 保护远程会话”

8.1 Internet Services 和远程访问服务概述本节简要说明各种 Internet Services 使用的验证或授权机制,以及安全风险。HP-UX Internet Services 在《HP-UX Internet Services Administrator's Guide》和《Using HP-UXInternet Services》中进行了说明,可从以下网站获得这些文档:http://www.docs.hp.com/en/netcom.html#Internet%20Services另请参阅《HP-UX Remote Access Services Administrator's Guide》,可从以下网站获得该文档:http://www.docs.hp.com/en/netcom.html#Internet%20ServicesHP-UX Internet Services 通过口令验证或在配置文件中设置的授权来提供验证。有关 InternetServices 组件的列表及其访问验证或授权机制的信息,请参阅表 8-1 “Internet Services 组件和访问验证、授权和验证”。

表 8-1 Internet Services 组件和访问验证、授权和验证

访问验证、授权或验证机制Internet Services 组件

口令验证。也可以使用在 /etc/inetsvcs.conf 中定义的 Kerberos 验证机制。请参阅 ftp(1)。

ftp(文件传输)

$HOME/.rhosts 或者 /etc/hosts.equiv 文件中的条目。也可以使用在 /etc/inetsvcs.conf 中定义的 Kerberos 验证机制。请参阅 rcp(1)。

rcp(远程副本)

$HOME/.rhosts 或者 /etc/hosts.equiv 文件中的条目。请参阅 rdist(1)。rdist(远程文件分发)

$HOME/.rhosts 或者 /etc/hosts.equiv 文件中的条目。也可以使用在 /etc/inetsvcs.conf 中定义的 Kerberos 验证机制。请参阅 remsh(1)。

remsh、rexec(从远程 Shell执行)

$HOME/.rhosts 或者 /etc/hosts.equiv 文件中的口令验证或条目。也可以使用在 /etc/inetsvcs.conf 中定义的 Kerberos 验证机制。请参阅 rlogin(1)。

rlogin(远程登录)

口令验证。如果通过 telnetd 守护程序启用了 TAC 用户 ID 选项,telnet 将使用$HOME/.rhosts 或 /etc/hosts.equiv 文件。请参阅 telnet(1) 和 telnetd(1M)。

telnet(使用 TELNET 协议的远程登录)

8.1 Internet Services 和远程访问服务概述 117

Page 118: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

注释: 信息(包括口令)在两个系统之间以明文形式传递,并且未加密。应仅在已知的并已相互进行定义的主机之间使用 Internet Services,并且应在防火墙后的专用内部网络中使用。当在不受信任的网络上进行通信时,应使用 IPSec 或者 Kerberos 保护通信的安全。

远程访问服务连接网络中的远程系统。在缺省情况下,远程访问服务在非安全环境中运行。要在安全环境中运行,请启用 Kerberos V5 网络验证。在非安全环境中,必须拥有一个登录名称和口令才能访问远程系统,并且不针对验证和授权而检查登录名称。在安全环境中,不需要拥有登录名称和口令。当试图与远程系统连接时,Kerberos 协议将检查是否允许用户访问远程系统。

8.1.1 保护 ftp未经授权的用户可能会试图通过使用 ftp 命令来获得对系统的访问权限。下面是用于防止此问题的一些建议:

• 通过使用 ftpd -l 命令启用 /etc/inetd.conf 中的 ftp 登录。

• 在 /var/adm/syslog/syslog.log 和 /var/adm/syslog/xferlog 中的 ftp 日志中查看异常的远程访问尝试。请参阅 syslogd(1M) 和 xferlog(5)。

• 通过在 /etc/ftpd/ftpusers 中列出 guest、root 和其他帐户,来拒绝对这些帐户的ftp 访问。请参阅 ftpusers(4)。

• 定期搜索和移除用户的 ~/.netrc 文件。.netrc 文件包含 ftp 自动登录进程、rexec()库例行程序、rexec 命令使用的登录、口令以及帐户信息,请参阅 netrc(4)。

8.1.2 保护匿名 ftp如果将一个 $HOME/.rhosts 文件放置在 /home/ftp 中,则一个未经授权的用户可以使用rlogin 以用户 ftp 登录。.rhosts 文件指定主机和用户,允许这些主机和用户在没有口令的情况下使用 rcp、remsh或者 rlogin 命令访问本地帐户。有关详细信息,请参阅hosts.equiv(4)。以下是保护匿名 ftp 安全的一些建议:

• 确保 /home/ftp 和它的子级都不可写:$ chmod -R a -w /home/ftp

• 确保正确配置 /etc/passwd 中的 ftp 条目:ftp:*:500:100:Anonymous FTPuser:/var/ftp:/usr/bin/false

• 确保 ~ftp/etc/passwd 中的所有口令都为星号 (*):$ more ~ftp/etc/passwd

root:*:0:3::/:/usr/bin/false daemon:*:1:5::/:/usr/bin/false

• 如果必须拥有一个可写入的 pub 目录,则使用 1733 权限:$ chmod 1733/home/ftp/pub

• 使用磁盘配额或 cron 作业控制 /home/ftp/pub 的大小:0 1 * * * find/home/ftp/pub/* -atime +1 exec rm -rf {} \;

• 检查 /var/adm/syslog/syslog.log 中的匿名 ftp 活动:$ tail/var/adm/syslog/syslog.log

118 保护对系统的远程访问

Page 119: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

8.1.3 使用 /etc/ftpd/ftpusers 拒绝访问当 /etc/services 中指出的端口收到服务请求时,inetd 守护程序将运行文件传输协议服务器 ftpd。ftpd 服务器拒绝对 /etc/ftpd/ftpusers 中列出的本地用户帐户的远程登录。这些用户帐户称为受限帐户。请参阅 ftpd(1M) privatepw(1) 和 services(4)。在 /etc/ftpd/ftpusers 文件中,每个受限帐户名必须以单独的一行出现。其中还添加了在/etc/passwd 中定义的具有受限登录 Shell 的用户帐户,这是因为 ftpd 访问本地帐户时无需使用其登录 Shell。如果 /etc/ftpd/ftpusers 不存在,则 ftpd 不会执行安全检查。有关详细信息,请参阅ftpusers(4)。在 HP-UX 11i 上,ftpd 守护程序是基于 WU-FTPD 的。WU-FTPD 是在 Washington 大学开发的ftpd 守护程序的 HP 实现。WU-FTPD 包含改进的访问控制、增强的登录功能、虚拟主机支持以及 RFC1413(身份识别协议)支持。有关详细信息,请参阅位于以下网站的《HP-UX RemoteAccess Services Administrator's Guide》:http://www.docs.hp.com/en/netcom.html#Internet%20Services

8.1.4 针对欺骗的其他安全解决方案欺骗是一种伪装成有效用户或主机以获得对系统进行未经授权的访问的方法。因为可以欺骗 IP地址和主机名称,所以使用 inetd(Internet 守护程序)的 /var/adm/inetd.sec 安全文件并不是能保证安全的解决方案。有关 inetd 的信息,请参阅“inetd 守护程序”。下面是可用作备用安全解决方案的安全功能或产品:

• IPFilter 是一个 TCP/IP 数据包筛选器,适用于作为保护应用程序服务器的系统防火墙。有关详细信息,请参阅《HP-UX IPFilter Administrator's Guide》,可从以下网站获得该文档:http://www.docs.hp.com/en/internet.html#HP-UX%20IPFilter

• TCP Wrappers 提供了一个 TCP 包装守护程序 tcpd,该守护程序由 inetd 调用以提供附加的安全性。请单击下面链接以参阅“使用 TCP Wrappers 防止欺骗”和《HP-UX InternetServices Administrator's Guide》,可从以下网站获得该文档:http://www.docs.hp.com/en/netcom.html#Internet%20Services

• Secure Internet Services 允许对 ftp、rcp、remsh、rlogin 和 telnet 使用 Kerberos验证和授权。在网络上传送加密的 Kerberos 验证记录,而不是用户口令。请参阅《Installingand Administering Security Services》的“Secure Internet Services”,可从以下网站获得该文档:http://www.docs.hp.com/en/netcom.html#Internet%20Services,以及《ConfigurationGuide for Kerberos Client Products on HP-UX》,可从以下网站获得该文档:http://www.docs.hp.com/en/internet.html#Kerberos

• IPSec 是一个 IP 安全协议套件,它为 IP 网络提供安全,例如数据完整性、验证、数据隐私、应用程序透明安全以及加密。

请参阅“构建安全通道”以及《HP-UX IPSec Administrator's Guide》,可从以下网站获得该文档:http://www.docs.hp.com/en/internet.html#HP-UX%20IPSec

8.2 inetd 守护程序Internet 守护程序 /usr/sbin/inetd 是许多 Internet Services 的主服务器。在引导过程中,inetd 守护程序通常是由 /sbin/init.d/inetd 脚本自动启动的。

8.2 inetd 守护程序 119

Page 120: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

inetd 守护程序监视对 /etc/inetd.conf 配置文件中列出的服务的连接请求,同时该守护程序在接收到请求的时候产生相应的服务器。也就是说,用户使用诸如 telnet 的 Internet Services与远程系统连接。inetd 守护程序在连接完成之前确定是否允许来自主机的 telnet 连接。允许或者拒绝访问的主机信息保存在 /var/adm/inetd.sec 文件中。inetd 守护程序的工作方式如下:1. 系统引导过程中,在运行级别 2 启动(如果以下命令在系统启动脚本

中:/sbin/init.d/inetd start)。

2. 则请检查 /etc/inetd.conf 以确定提供哪些服务。有关详细信息,请参阅 ftp(1) 和inetd.conf(4)。

3. 检查 /etc/services 以确定对哪个端口监视在 /etc/inetd.conf 中列出的服务。/etc/services 文件将服务名称映射到端口号。有关详细信息,请参阅 services(4)。

4. 接收来自客户端的 Internet Services 连接请求。例如,运行 telnet。5. 请查阅 /var/adm/inetd.sec 以确定是否允许客户端访问。有关详细信息,请参阅

inetd.sec(4)。6. 如果启用了日志记录,则将请求记录在 /var/adm/syslog/syslog.log 中。有关详细

信息,请参阅 syslogd(1M)。7. 如果 inetd 由于安全原因拒绝连接,则连接将被关闭。8. 如果连接请求有效,则 inetd 会启动一个服务器进程来处理有效的连接请求。除了 inetd

之外,服务器进程还可以具有

9. 其他安全功能。

8.2.1 保护 inetd/etc/inetd.conf 文件是 inetd 配置文件,该文件列出了 inetd 守护程序可以启动的服务。在 /etc/inetd.conf 中列出的每个服务也都必须出现在 /etc/services 文件中。/etc/services 文件将服务名称映射到端口号。每个端口号都有一个相关的协议名称,例如 tcp 或udp。协议的每个条目必须在 /etc/protocols 文件中有一个与之匹配的条目。下列建议可以使 inetd 更加安全:

• 启用 /etc/rc.config.d/netdaemons 中的 inetd 登录。有关详细信息,请参阅rc.config.d(4)。

• 查看 /etc/inetd.conf 和 /etc/services 中的更改。未经授权的用户可能获得超级用户访问权限从而修改了 /etc/services 和 /etc/inetd.conf 文件。在 /etc/inetd.conf 中,查找未使用的服务的名称。在 /etc/services 中,查找未由 Internet编号分配机构(Internet Assigned Numbers Authority,IANA)在 http://www.iana.org 注册的端口号。验证列出的 Internet Services 的端口号是否与 LANA 注册的端口号相匹配。

• 在 /etc/inetd.conf 中注释掉不需要的服务,例如 finger。finger 命令在不需要口令的情况下显示用户信息。

• 在 /etc/inetd.conf 中注释掉远程过程调用 (RPC)。

• 在 /etc/inetd.conf 中注释掉 inetd“内部日常”服务,以避免拒绝服务攻击。恶意用户可能会使用 chargen(字符生成器)请求使 inetd 超负荷。有关详细信息,请参阅inetd(1M) 和 inetd.conf(4)。

120 保护对系统的远程访问

Page 121: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

8.2.1.1 使用 /var/adm/inetd.sec 拒绝或允许访问除配置 /etc/inetd.conf 文件外,还可以配置一个称为 /var/adm/inetd.sec 的可选安全文件,以限制对 inetd 启动的服务的访问。/var/adm/inetd.sec 文件列出了允许或者拒绝访问每个服务的主机。有关详细信息,请参阅 inetd.conf(4)。例如:

login allow 10.3-5 192.34.56.5 ahost anetwork

login deny 192.54.24.5 cory.example.edu.testlan

8.3 使用 TCP Wrappers 防止欺骗Transmission Control Protocol (TCP) Wrappers 为由 inetd 生成的服务提供了增强的安全性。TCP Wrappers 是一种对使用 /etc/inetd.sec 的替换方法。TCP Wrappers 提供防止主机名和主机地址欺骗的保护。欺骗是一种伪装成有效用户或主机以获得对系统进行未经授权的访问的方法。

TCP Wrappers 使用访问控制列表 (ACL) 来防止欺骗。ACL 是 /etc/hosts.allow 和 /etc/hosts.deny 文件中的系统列表。在配置为验证主机名到 IP 地址映射,以及拒绝使用 IP 源路由的软件包时,TCP Wrappers 提供某些防止 IP 欺骗的保护。但是,TCP Wrappers 不提供口令验证或数据加密。与 inetd 类似,信息是以明文形式传递的。TCP Wrappers 是 HP-UX Internet Services 软件的一部分。有关详细信息,请参阅《HP-UX InternetServices Administrator's Guide》,可从以下网站获得该文档:http://www.docs.hp.com/en/netcom.html#Internet%20Services,以及下列联机帮助页:tcpd(1M)、tcpdmatch(1)、tcpdchk(1)、tcpd.conf(4)、hosts_access(3)、hosts_access(5) 和hosts_options(5)。当启用 TCP Wrappers 时,inetd 运行 TCP wrapper 守护程序 tcpd,而不是直接运行被请求的服务。TCP Wrappers 的工作方式如下:1. 客户跟通常一样向 inetd 发送连接请求,例如 telnet。2. inetd 调用 TCP Wrapper 守护程序 (tcpd),而不是调用服务器进程。3. TCP Wrapper 守护程序确定客户端连接请求的有效性。tcpd 守护程序对请求进行记录并

检查访问控制文件(/etc/hosts.allow 和 /etc/hosts.deny)。4. 如果客户端有效,则 tcpd 将调用相应的服务器进程。5. 服务器进程处理客户端的请求,例如 telnet 连接完成。

8.3.1 TCP Wrappers 的其他功能还可以在 /etc/tcpd.conf 配置文件中定义一些配置参数,例如登录行为、用户名查询、反向查找失败行为。tcpd 守护程序读取配置文件以查找运行期间的配置参数。可以针对其他安全功能配置 /etc/hosts.allow 和 /etc/hosts.deny 文件,例如陷阱设置和标题消息。

通过 TCP Wrappers 的陷阱设置功能,可以根据被拒绝的远程主机的连接尝试的数量,在主机上触发相应的操作。

当访问控制文件中包含了 ACL 规则时,标题消息功能将会导致向客户端发送一条消息。

8.3 使用 TCP Wrappers 防止欺骗 121

Page 122: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

8.3.2 TCP Wrappers 不使用 RPC 服务TCP Wrappers 不能通过 TCP 使用远程过程调用 (RPC)。这些服务在 /etc/inetd.conf 文件中被注册为 rpc 或 tcp。受该限制影响的唯一重要的服务是 rexd,该服务由 on 命令使用。

8.4 Secure Internet ServicesSecure Internet Services (SIS) 是一种可选择启用的机制,该机制合并了 Kerberos V5 验证和下列远程访问服务的授权:ftp、rcp、remsh、rlogin 和 telnet。Secure Internet Services 是 HP-UX Internet Services产品的一部分,相关说明请参阅位于http://www.docs.hp.com/en/netcom.html#Internet%20Services 的《Using HP-UX InternetServices》,以及下列联机帮助页:sis(5)、kinit(1)、klist(1)、kdestroy(1M)、krbval(1M)、k5dcelogin(1M)、inetsvcs_sec(1M) 和inetsvcs(4)。当运行 SIS 命令时,因为不再通过网络传送可读形式的口令,所以可加强安全性。

注释: SIS 库不会超越授予用户权限或验证服务所必需的范围来加密会话。因此,这些服务不对数据或远程服务提供完整性检查或加密服务。要加密数据,请使用 OpenSSL。有关详细信息,请位于以下网站的《OpenSSL Release Notes》:http://docs.hp.com/en/internet.html#OpenSSL。

当两个系统均运行在基于 Kerberos V5 的安全环境中时,Secure Internet Services 确保本地和远程主机以安全和受信任的方式相互识别,并且授予用户访问远程帐户的权限。

对于 ftp/ftpd、rlogin/rlogind 和 telnet/telnetd,Kerberos V5 验证机制发送加密的凭证,而不是在网络中发送口令来验证和识别用户。对于 rcp/remshd 和 remsh/remshd,这些服务的安全版本可以确保授予用户访问远程帐户的权限。

8.5 控制管理域。

所有网络管理程序都应由受保护的网络专用帐户(例如 uucp、nso)或守护程序所有,而不是由超级用户所有。

管理域是由网络服务连接起来的一组系统,它允许用户访问另一个系统而无需口令验证。管理域假定系统用户已经过其主机系统的验证。请使用下列步骤来识别并控制管理域:

1. 在 /etc/exports 中列出文件系统要导出到的节点。/etc/exports 文件包含的条目包括文件系统的路径名以及被允许访问该文件系统的系统或系统组列表。/etc/exports 条目可能包含系统组的名称。可以通过检查 /etc/netgroup 来查明系统组中包括哪些系统。

2. 在 /etc/hosts.equiv 中列出具有等价口令数据库的节点。3. 确认管理域中的每个节点都不会将特权延伸到任何未包括的节点。对域中的每个节点重复

第 2 步和第 3步。4. 控制管理域中每个节点上的超级用户和本地安全。在域中的任何计算机上拥有超级用户特

权的用户可以在域中的每台计算机上获得这些特权。

5. 维护用户名、uid 以及 gid 在管理域中的口令文件之间的一致性。6. 维护管理域中所有节点上的任何组文件之间的一致性。例如,要检查与 hq 和 mfg 系统的

一致性,如果 mfg 系统的根文件系统被作为 /nfs/mfg/ 远程挂接到 hq,请输入以下

122 保护对系统的远程访问

Page 123: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

diff 命令:$ diff /etc/group /nfs/mfg/etc/group。如果显示了任何不一致,则两个 /etc/group 文件不一致,而它们应该是一致的。

8.5.1 检验网络控制文件上的权限设置/etc 目录中的网络控制文件是安全目标,这是因为它们提供对网络自身的访问。网络控制文件对于公众而言应该是永远不可写的。

应谨慎设置所有系统文件上的模式、属主和组。定期检查这些文件的更改,并纠正任何更改。

最常用的网络控制文件包括:

• /etc/exports

可导出到 NFS 客户端的文件目录的列表。有关详细信息,请参阅 exports(4)。

• /etc/hosts

网络主机及其 IP 地址的列表。有关详细信息,请参阅 hosts(4)。

• /etc/hosts.equiv

拥有访问权限并且等效于本地主机的远程主机的列表。有关详细信息,请参阅hosts.equiv(4)。

• /etc/inetd.conf

Internet Services 配置文件。有关详细信息,请参阅 inetd.conf(4)。

• /etc/netgroup

网络范围组的列表。有关详细信息,请参阅 netgroup(4)。

• /etc/networks

网络名称及其网络编号的列表。有关详细信息,请参阅 networks(4)。

• /etc/protocols

协议名称及编号的列表。有关详细信息,请参阅 protocols(4)。

• /etc/services

带端口号和服务所使用协议的服务正式名称及别名列表。有关详细信息,请参阅 services(4)。

8.6 使用 HP-UX Secure Shell (SSH) 保护远程会话HP-UX Secure Shell 基于 OpenSSH 产品,该产品是一种开放源代码 SSH 产品(http://www.openssh.org)。它启用客户端与远程主机之间的安全连接,在其他情况下该网络将是不安全的。以下是该安全连接的主要属性:

• 对客户端和远程主机都进行加强验证。

• 客户端与远程主机之间的通信使用加强的加密和公用密钥加密。

• 供客户端用于在远程主机上执行命令的安全通道。

HP-UX Secure Shell 为常用功能和命令(例如 telnet、remsh、rlogin、ftp 和 rcp)提供安全替代。

8.6 使用 HP-UX Secure Shell (SSH) 保护远程会话 123

Page 124: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

有关 HP-UX Secure Shell 的信息,请参阅针对 ssh 客户端的 ssh(1) 联机帮助页,以及针对 sshd服务器的 sshd(8) 联机帮助页。以上联机帮助页都包含了对随该产品附带的其他 HP-UX SecureShell 联机帮助页的引用。另请参阅位于以下网站的《HP-UX Secure Shell Release Notes》:http://www.docs.hp.com/en/internet.html#Secure%20Shell

8.6.1 HP-UX Secure Shell 的主要安全功能HP-UX Secure Shell 的主要安全功能包括:

• 加强的加密

客户端和远程主机之间的所有通信都使用无专利的加密算法(例如 Blowfish、3DES、AES、和 arcfour)进行加密。诸如口令等验证信息不再在网络中以明文形式发送。结合基于公用密钥的加强加密也为防止潜在的安全攻击提供了保护。

• 加强的验证

HP-UX Secure Shell 支持客户端和服务器之间的加强的验证方法。验证可以是双向的:服务器验证客户端,客户端验证服务器。这样可保护会话不受各种安全问题的影响。有关支持的验证方法,请参阅“HP-UX Secure Shell 验证”。

• 端口转发

客户端和远程主机之间的 TCP/IP 连接的重定向(以及向后)被称为端口转发或 SSH 通道。HP-UX Secure Shell 支持端口转发。例如,可以使用端口转发来重定向客户端和服务器之间的 ftp 通信(或邮件客户端和 POP/IMAP 服务器之间的邮件通信)。客户端并不与其服务器直接通信,而是将通信通过安全通道重定向到一台 sshd 服务器,然后 sshd 服务器将通信转发到真实服务器计算机上的指定端口。

• 与基础 HP-UX 安全功能集成。HP-UX Secure Shell 产品与重要的 HP-UX 安全功能进行了集成。有关详细信息,请参阅“HP-UX Secure Shell 和 HP-UX 系统”。

8.6.2 HP-UX Secure Shell 的软件组件HP-UX Secure Shell 软件包含一系列客户和服务器组件。请参阅表 8-2 “HP-UX Secure Shell 的软件组件”。

表 8-2 HP-UX Secure Shell 的软件组件

等效的非安全组件位置说明组件

remsh、telnet、rlogin

客户端Secure Shell 客户端是 telnet 和 remsh 的安全替代;它与具有安全功能的 remsh 最相似。

ssh

remsh、telnet、rlogin

客户端指向 ssh 的符号链接slogin

rcp客户端和服务器安全副本客户端和安全副本服务器scp

ftp客户端安全 ftp 客户端sftp

remshd、telnetd、rlogind

服务器Secure Shell 守护程序sshd

124 保护对系统的远程访问

Page 125: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

表 8-2 HP-UX Secure Shell 的软件组件 (续)

等效的非安全组件位置说明组件

ftpd服务器安全 ftp 守护程序sftp-server

不可用服务器随机数生成器,当 sshd 不能在服务器上找到/dev/random 或者 /dev/urandom 时将使用该生成器。HP-UX 附带有一个驻留内核的随机数生成器 rng。如果已解除配置 rng,则 sshd 将使用prngd。

ssh-rand-helper

rhosts 文件机制客户端和服务器从客户端基于密钥“自动”登录到服务器的工具ssh-agent

不可用客户端生成 ssh-agent 可识别的客户端的密钥对的工具。

ssh-add

不可用客户端生成用于公共密钥验证的密钥对的工具ssh-keygen

不可用客户端客户端收集一组运行 Secure Shell 守护程序 (sshd)的主机的公共密钥的工具

ssh-keyscan

不可用客户端生成基于主机的验证过程中所需的数字签名工具,并且 ssh() 使用该工具在基于主机的验证过程访问基于本地主机

ssh-keysign

8.6.3 运行 HP-UX Secure Shell在运行任何表 8-2 “HP-UX Secure Shell 的软件组件”中列出的 Secure Shell 客户端之前,应首先启动 Secure Shell 服务器守护程序 sshd。sshd 守护程序从 sshd_config 文件中获取其初始配置值,该文件位于服务器系统的 /opt/ssh/etc 目录中。sshd_config 中最重要的配置指令之一是由 sshd 守护程序支持的验证方法集。有关详细信息,请参阅“HP-UX Secure Shell 验证”。

8.6.3.1 运行 ssh 客户端ssh 客户端应用程序建立与 sshd 服务器的套接字连接。sshd 服务器生成子 sshd 进程。该子进程继承连接套接字并且验证基于选定验证方法来验证客户端。只有在成功验证的基础上才能建立成功的安全客户端会话。

创建会话以后,所有后续的通信都直接在客户端和该子 sshd 进程之间进行。客户端现在可以在服务器上执行远程命令。来自 ssh 客户端的每个命令请求都会使子 sshd 进程生成一个执行该命令的 Shell 进程。概括地说,一个运行着的 ssh 客户-服务器会话包括下列进程:

• 在与 sshd 服务器连接的每个客户端系统上,对于当前在该客户端系统上建立的每个 ssh连接都有一个 ssh 客户端进程。

• 在服务器系统上,有一个父 sshd 进程以及很多子 sshd 进程,还有并发连接到服务器的ssh 客户端。如果在服务器上启用权限分离,则服务器上运行的子 sshd 进程的数量会加倍。请参阅“HP-UX Secure Shell 权限分离”。

• 在服务器系统上,对于来自 ssh 客户端的每个命令执行请求来说,对应的子 sshd 进程将生成一个 Shell 进程,然后使用 UNIX 管道与发往该 Shell 进程的命令请求进行通信。该Shell 进程使用 UNIX 管道向子 sshd 进程返回命令执行结果,并在命令执行完成时终止。

8.6 使用 HP-UX Secure Shell (SSH) 保护远程会话 125

Page 126: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

8.6.3.2 运行sftp 客户端sftp 客户端应用程序使 sftp 客户端进程生成 ssh 客户端,然后使用 UNIX 管道与其进行通信。然后,ssh 客户端建立与 sshd 服 ¡器的套接字连接。其余服务器交互与在“运行 ssh 客户端”中说明的 ssh 客户端情况相似。区别在于,子 sshd 进程生成 sftp-server 进程,而不是生成 Shell 来执行远程命令。该 sftp 会话期间所有后续的通信都在下列进程之间发生:

• 客户端系统上的 sftp 客户端和 ssh 客户端,使用 UNIX 管道。

• ssh 客户端和子 sshd 进程,通过已建立的套接字连接。

• 子 sshd 进程和 sftp 服务器进程,使用 UNIX 管道。

8.6.3.3 运行 scp 客户端scp 客户端的情况几乎与 sftp 客户端的执行是相同的。区别在于,子 sshd 进程生成 scp 进程,而不是生成 sftp-server 进程。scp 会话期间的所有后续通信在下列进程之间进行:

• 客户端系统上的 scp 客户端和 ssh 客户端,使用 UNIX 管道。

• ssh 客户端和子 sshd 进程,通过已建立的套接字连接。

• 子 sshd 进程和 scp 服务器进程,使用 UNIX 管道。

8.6.4 HP-UX Secure Shell 权限分离HP-UX Secure Shell 通过权限分离功能提供增强级别的安全性。如“运行 HP-UX Secure Shell”中所述,父 sshd 进程和子 sshd 进程都以特权用户身份运行。当启用权限分离时,将为每个用户连接生成一个附加进程。

当一个 ssh 客户端连接到一台已经配置为权限分离的 sshd 服务器时,父 sshd 进程将生成一个特权子 sshd 进程。当启用权限分离时,子 sshd 进程生成一个附加的非特权子 sshd 进程。然后,该非特权子 sshd 进程继承连接套接字。客户端和服务器之间的所有后续通信都与该非特权子 sshd 进程进行。大多数来自客户端的远程命令执行请求都是非特权的,它们由在该非特权子 sshd 进程下生成的 Shell 处理。当非特权子 sshd 进程需要执行一个特权功能时,它使用 UNIX 管道与其特权父sshd 进程进行通信。权限分离有助于抑制来自入侵者的潜在破坏。例如,如果在 Shell 命令执行期间发生缓冲区溢出攻击,因为控制处于非特权进程中,所以可抑制潜在的安全风险。

注释: 权限分离是 HP-UX Secure Shell 的缺省配置。可以通过在 sshd_config 文件中设置UsePrivilegeSeparation NO 来关闭权限分离。由于有潜在的安全风险,请仔细考虑后再关闭特权分离。

8.6.5 HP-UX Secure Shell 验证HP-UX Secure Shell 支持下列验证方法:

• GSS-API(基于 Kerberos 的客户端验证)

• 公共密钥验证

126 保护对系统的远程访问

Page 127: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

• 基于主机的验证

• 口令验证

当客户端与远程 sshd 守护程序连接时,它首先应选择所需的验证方法(前面列出的方法之一),然后在连接请求过程中提供相应的凭据,或者对由服务器发送回的提示进行响应。所有验证方法的工作方式都是如此。

服务器要求客户端提供相应的密钥、密码短语、口令或凭据,才能成功地建立连接。

可以根据安全要求,选择使 sshd 实例仅支持所支持的验证方法的子集。尽管 HP-UX Secure Shell 支持前面列出的验证方法,系统管理员可以根据环境的特定安全要求,限制 sshd 实例提供的验证方法。例如,HP-UX Secure Shell 环境可以要求所有客户端必须使用公用密钥或者 Kerberos 方法进行验证,从而禁用其他方法。对支持的验证方法的启用和禁用,是通过在 sshd_config 文件中指定配置指令进行的。当生成 ssh 客户端连接请求时,服务器首先以它支持的验证方法的列表进行响应。该列表显示sshd 服务器支持的验证方法以及尝试这些方法的顺序。客户端可以省略这些验证方法中的一个或者多个。客户端还可以更改尝试这些方法的顺序。可以在客户端配置文件 /opt/ssh/etc/ssh_config 中使用配置指令进行更改。下列各节中概述了HP-UX Secure Shell 支持的验证方法。

8.6.5.1 GSS-API对于使用通用安全服务应用程序编程接口 (GSS-API) 的基于 Kerberos 的客户端验证,客户端必须提前获得 Kerberos 凭据,并且在相应的客户端目录中拥有一个 Kerberos 配置文件。当客户端与 sshd 守护程序连接时,它将在连接时显示凭据。服务器将这些凭据与指定用户的凭据副本进行匹配。此外,服务器还可以可选地建立客户端主机环境的合法性。

有关详细信息,请参阅 gssapi(5)、kerberos(9) 以及位于以下网站的 Kerberos 管理文档:http://www.docs.hp.com/en/internet.html#Kerberos.

8.6.5.2 公用密钥验证对于公用密钥验证,必须对 Secure Shell 环境进行下列设置:

• 客户端和服务器都必须拥有一个密钥对。每个 ssh 客户端和 sshd 服务器都必须使用ssh-keygen 实用程序为自己生成一个密钥对。

• 客户端必须使所有它要与之通信的 sshd 服务器都知道它的公用密钥。可通过将每个客户端的公用密钥复制到每台相关服务器的预定的目录中,来实现该目的。

• 客户端必须获得它要与之通信的每台服务器的公用密钥。客户端使用 ssh-keyscan 实用程序获得公用密钥。

完成此设置后,将使用公用密钥和专用密钥对与 sshd 服务器连接的 ssh 客户端进行验证。HP-UX Secure Shell 提供了简约化公用密钥验证的附加功能。对于某些环境来说,您可能希望不必一直对口令提示作出响应。可以结合使用都在客户端计算机上运行的 ssh-agent 和 ssh-add进程,来去除对口令提示的响应要求。客户端通过 ssh-add 实用程序使用 ssh-agent 进程注册其所有密钥信息。然后,客户端和服务器之间的公用密钥验证由 ssh-agent 实现,而 sshd守护程序无须与客户端进行交互。

8.6 使用 HP-UX Secure Shell (SSH) 保护远程会话 127

Page 128: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

8.6.5.3 基于主机的公用密钥验证基于主机的公用密钥验证是对公用密钥验证方法的更安全的扩展。除客户端和服务器都拥有的密钥对之外,通过该方法,客户端环境还可以限制它要与之通信的服务器。该限制是通过在客户端的主目录中创建 .rhosts 文件实现的。

8.6.5.4 口令验证口令验证方法依赖于存在单个用户 ID 和基于口令的登录。该登录可以基于在 /etc/passwd 中指定的用户登录,也可以基于 PAM。HP-UX Secure Shell 与服务器系统上的可用 PAM 模块完全集成。出于该目的,/opt/ssh/etc/sshd_config 文件包含一个 UsePAM 配置指令。如果将其配置为 YES,任何来自客户端的口令验证请求将导致 sshd 读取 PAM 配置文件 (/etc/pam.conf)。然后,将通过已配置的 PAM模块依次进行口令验证,直到验证成功。有关 PAM 验证的详细信息,请参阅 pam.conf(4)。将 UsePAM 指令设置为 NO 将忽略 PAM 验证。之后,任何来自客户端的口令验证请求将导致sshd 忽略服务器上的 PAM 配置设置。而是由 sshd 通过直接调用 getpwnam() 库调用,来获取用户口令信息。

HP-UX Secure Shell 已通过 PAM_UNIX、PAM_LDAP 和 PAM_KERBEROS 的测试。此外,它还将可以用于其他PAM 模块,例如 PAM_DCE 和 PAM_NTLM。

8.6.6 通信协议HP-UX Secure Shell 用户可以使用 SSH-1 或 SSH-2 协议与远程 sshd 守护程序进行连接。SSH-2更加安全,因此强烈推荐使用 SSH-2 而不要使用 SSH-1。

8.6.7 HP-UX Secure Shell 和 HP-UX 系统HP-UX Secure Shell 实际上并不是一个真正的 Shell。它是一种在客户端与远程主机之间创建安全连接的机制,以在主机上安全地执行远程 Shell 会话。为生成安全连接,HP-UX Secure Shell自身完成大部分的验证和会话创建工作。以下是 HP-UX Secure Shell 使用的部分功能的列表:

• login 尝试的日志记录与 telnet 或 remsh 类似,HP-UX Secure Shell 分别在 /var/adm/wtmp 和 /var/adm/btmp 文件中记录成功的会话和不成功的会话。有关详细信息,请参阅 utmp(4)。

• PAM 模块如“HP-UX Secure Shell 验证”所述,HP-UX Secure Shell 可以对客户端会话使用 PAM 验证。选择 PAM 以后,HP-UX Secure Shell 使用 /etc/pam.conf 文件并且调用用于验证的相应 PAM 模块。有关 /etc/pam.conf 文件的详细信息,请参阅 pam.conf(4)。

• /etc/default/security 文件的使用这是一个系统范围内的配置文件,它包含定义登录行为、口令以及其他安全配置的属性。HP-UX Secure Shell 允许对这些属性进行有限制的使用,相关信息在 HP-UX Secure Shell 的/opt/ssh/README.hp 文件进行了说明。有关 /etc/default/security 文件的详细信息,请参阅 security(4)。

• 影子口令

HP-UX Secure Shell 集成了 HP-UX 影子口令功能。有关详细信息,请参阅 shadow(4)。

128 保护对系统的远程访问

Page 129: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

• 控制系统日志 (syslog)HP-UX Secure Shell 使用 syslog 写入重要消息。有关详细信息,请参阅 syslog(3C) 和syslogd(1M)。

• 审核记录

HP-UX Secure Shell 在自身编码中实现了审核记录(在可信任的模式下)。有关详细信息,请参阅 audit(5)。

8.6.8 相关技术HP-UX Secure Shell 已通过下列技术的测试:

• Kerberos 5 和 GSS-API

• OpenSSL

• IPv6

• TCP Wrappers

• PAM(PAM_UNIX、PAM_Kerberos、PAM_LDAP)

• HP-UX 加强随机数生成器

8.6.9 加强随机数生成器要求和所有基于加密密钥的产品一样,HP-UX Secure Shell 需要一个随机数生成器。它将查找 HP-UX加强随机数生成器的专用设备文件 /dev/urandom 和 /dev/random,然后使用找到的第一个专用设备文件。如果这两个文件在系统上都不存在,则 HP-UX Secure Shell 使用它自己的内置随机数生成器 ssh-rand-helper。HP-UX 加强随机数生成器改善了 HP-UX Secure Shell 的性能和随机计量单位(随机性的一种度量标准,因此也是生成的密钥的安全性的度量标准)。它生成不可再生成的、真实的随机数。强烈建议对 HP-UX Secure Shell 使用 HP-UX 加强随机数生成器。缺省情况下,HP-UX 加强随机数生成器是可用的。有关详细信息,请参阅 random(7)。

8.6.10 TCP Wrappers 支持HP-UX Secure Shell 守护程序 sshd 与归档库 libwrap.a 链接,以支持TCP Wrappers。另请参阅“使用 TCP Wrappers 防止欺骗”。

8.6.11 chroot 目录监管程序chroot 是一个目录监管程序。它启动指定目录中的应用程序,并限制用户对该目录以及该目录下的目录进行访问。它阻止用户更改该指定目录之上的目录。它旨在限制用户在使用应用程序时对该应用程序的文件和目录进行访问。

必须启用应用程序的 chroot。必须创建新的目录,然后将相关的文件复制到这些新建目录中。可以可选地使用 chroot 目录设置 ssh、scp 和 sftp。/opt/ssh/README.hp 中的 HP-UX Secure Shell README 文件说明了 chroot 功能、chroot设置脚本以及该脚本复制的特定文件,以针对 chroot 环境启用 ssh、sftp 以及 scp。另请参考 chroot(1M)。

8.6 使用 HP-UX Secure Shell (SSH) 保护远程会话 129

Page 130: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

chroot 设置脚本在 /opt/ssh/utils/ssh_chroot_setup.sh 文件中,它是 HP-UX SecureShell 软件产品 (Secure Shell 4.30.004/005) 的一部分。

130 保护对系统的远程访问

Page 131: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

9审核管理审核的目的是有选择地记录事件,用于分析和检测安全违例。审核数据记录在日志文件中。因此,审核系统起到了制止系统滥用并发现潜在安全弱点的作用。

审核系统记录按主题访问系统上的对象的实例;它可以对绕开保护机制及滥用权限的任何(重复)尝试进行检测;此外,它还有助于发现系统中的潜在安全弱点。

当某个用户登录时,将生成一个称为“审核标记”的唯一审核会话 ID,并与该用户的进程关联。审核标记在每个登录会话期间保持不变。即使用户在单个会话中更改了身份,系统仍会使用同一审核标记记录所有事件,并在原始登录用户名下进行说明。

为与安全相关的选择性系统事件生成审核记录。每个审核记录均包含有关事件的信息,例如,事件是什么、事件发生的时间、生成事件的用户的 ID 以及生成事件的进程的 ID 等。审核记录以二进制格式收集在审核日志(或文件)中。HP-UX 11i v3 发行版上的 HP-UX 审核系统可以使用多个写入程序线程将日志数据记录到文件中。每个写入程序线程写入到一个文件。这样有助于提高数据的吞吐量。因此,审核记录在文件系统上以包含多个审核文件的目录形式存在。

压缩审核记录中的记录以节省文件空间。首次审核一个进程时,将向审核记录(其中包含的信息在进程的整个生命周期中保持不变)写入进程标识记录 (PIR)。这些信息包括进程 ID、父进程ID、审核标记、实际用户 ID、实际组 ID、有效用户 ID、有效组 ID、组 ID 列表、有效权限、允许权限及保留权限、隔离专区 ID 和终端 ID。对于每个审核记录和每个进程,PIR 仅输入一次。本章包含下列主题:

• “审核组件”

• “审核系统”

• “审核用户”

• “审核事件”

• “审核记录”

• “查看审核日志”

• “自审核”

• “HP-UX RBAC 审核”

9.1 审核组件HP-UX 11i 的审核功能包括配置文件、命令和联机帮助页。下列各节将介绍这些组件:

9.1.1 命令表 9-1 “审核命令”包含对每个审核命令的简要说明。

9.1 审核组件 131

Page 132: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

表 9-1 审核命令

说明命令

更改或显示事件或系统调用状态。audevent

显示审核记录。audisp

设置审核文件监视和大小参数。audomon

启动和停止审核;设置并显示审核文件或目录信息。audsys

通过指定 AUDIT_FLAG=1 选项来选择要审核的用户。userdbset

9.1.2 审核配置文件表 9-2 “审核配置文件”包含对每个与审核功能关联的配置文件的简要说明。

表 9-2 审核配置文件

说明文件

包含预定义事件分类信息的文件。/etc/audit/audit.conf

包含站点特定事件分类信息的文件。/etc/audit/auditr_site.conf

包含系统范围审核缺省值的文件。/etc/default/security

包含每个用户的审核信息的数据库。/var/adm/userdb

包含在系统重新引导时指示审核启动的配置信息。/etc/rc.config.d/auditing

9.1.3 审核联机帮助页表 9-3 “审核联机帮助页”包含对每个与审核功能关联的联机帮助页的简要说明。

表 9-3 审核联机帮助页

说明联机帮助页

介绍 audevent 的功能和语法。audevent(1M)

介绍 audisp 的功能和语法。audisp(1M)

介绍 audomon 的功能和语法。audomon(1M)

介绍 audsys 的功能和语法。audsys(1M)

介绍 userdbset 的功能和语法。getfilexsec(1M)

介绍 /etc/audit/audit.conf 文件。audit.conf(4)

简介有关 HP-UX 审核的信息。audit(5)

9.2 审核系统使用以下步骤来计划、启用和监视对系统的审核。

132 审核管理

Page 133: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

9.2.1 计划审核实现要计划审核实现,请执行下列步骤:

1. 确定要审核的用户。缺省情况下,将选择所有用户进行审核。

2. 确定要审核的事件或系统调用。使用 audevent 命令显示当前选择进行审核的事件和系统调用的列表。

可将事件和系统调用分组到多个配置文件。

3. 确定将审核日志文件(审核记录)放置在系统上的位置。有关配置审核日志文件的详细信息,请参阅“审核记录”。

4. 创建一个归档和备份审核文件的策略。如果不仔细地计划文件管理,审核文件通常会占用大量的磁盘空间并可能会溢出。请使用 audomon 命令和 -X 选项进行自动归档。

有关可帮助计划审核实现的审核系统性能和管理的其他信息,请参阅“性能因素”和“管理审核系统准则”。

9.2.2 启用审核要在系统上启用审核,请执行下列步骤:

1. 使用 userdbset 命令配置要审核的用户。有关配置用户审核的详细信息,请参阅“审核用户”。

2. 使用 audevent 命令配置要审核的事件。例如,要根据 MySitePolicy 执行审核,请输入以下命令:

# audevent -P -F -r MySitePolicy

MySitePolicy 必须在 /etc/audit/audit_site.conf 文件中进行定义。使用不带有任何选项的 audevent 命令,来显示当前配置进行审核的事件和系统调用的列表。

有关配置事件审核的详细信息,请参阅“审核事件”。

3. 设置 /etc/rc.config.d/auditing 文件中的 audevent 参数,使得审核系统在系统重新引导时保留当前配置的参数。例如,要保留在第 2 步中配置的参数,请按如下所示设置参数:

AUDEVENT_ARGS1 = –P –F –r MySitePolicy

4. 使用 audsys 命令启动审核系统并定义审核记录:#audsys -n -c primary_audit_file -s 1000

5. 在 /etc/rc.config.d/auditing 文件中设置日志文件和日志文件切换参数。请执行下列步骤:

a. 将 PRI_AUDFILE 设置为主审核日志文件的名称。b. 将 PRI_SWITCH 设置为主审核日志文件的最大大小(以 KB 为单位),在达到最大值时,审核记录将切换到辅日志文件。

c. 将 SEC_AUDFILE 设置为辅日志文件的名称。d. 将 SEC_SWITCH 设置为辅助审核日志文件的最大大小(以 KB 为单位)。

9.2 审核系统 133

Page 134: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

有关设置主审核日志文件和辅审核日志文件的详细信息,请参阅“审核记录”。

6. 启动 audomon 守护程序(如果尚未启动的话)。audomon 守护程序将监视当前审核记录的增长情况,并在必要时切换到备用审核记录。例如:

#audomon -p 20 -t 1 -w 90 -X "/usr/local/bin/rcp_audit_trail hostname"

有关配置 audomon 守护程序的详细信息,请参阅“监视和管理审核记录”。7. 设置 /etc/rc.config.d/auditing 文件中的 audomon 参数,以便在系统重新引导后

保留当前设置。

8. 将 /etc/rc.config.d/auditing 文件中的 AUDITING 标记设置为 1,使审核系统在系统引导时自动启动。

9.2.3 禁用审核要在系统上禁用审核,请执行下列步骤:

1. 使用以下命令停止系统审核:

# audsys -f

2. 将 /etc/rc.config.d/auditing 文件中的 AUDITING 标记设置为 0,以防止审核系统在系统重新引导时启动。

3. (可选)要停止 audomon 守护程序,请输入:# kill `ps -e | awk '$NFS~ /audomon/ {print $1}'`

只有在重新配置 audomon 守护程序时,才使用该步骤。要重新配置并重新启动 audomon守护属,请执行第 6 步和第 7 步,如“启用审核”中所述。

9.2.4 监视审核文件要查看、监视和管理审核文件,请执行下列步骤:

1. 使用 audisp 命令查看审核日志文件:# audisp audit_file

有关使用 audisp 命令的详细信息,请参阅“查看审核日志”。

2. 设置 /etc/rc.config.d/auditing 文件中的审核日志文件监视参数。设置与第 2 步中所用值相同的值。

3. (可选)使用以下命令停止系统审核:

#audsys -f

4. (可选)将 /etc/rc.config.d/auditing 文件中的 AUDIT 标记设置为 0,以防止审核系统在下次系统重新引导时启动。

134 审核管理

Page 135: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

9.2.5 性能因素审核会增加系统开销。在性能很重要的情况下,可选择要审核的事件和用户。这有助于减小审核对性能的影响。

9.2.6 管理审核系统准则管理系统时应遵守下列准则:

• 依据安全策略检查审核日志。联机审核文件应至少保留 24 小时,脱机存储的所有审核记录应至少保留 30 天。

• 检查审核日志中是否出现异常的活动,例如:在很晚的时间登录、登录失败、访问系统文件失败,以及尝试执行与安全相关的任务时失败。

• 每天归档以防止审核文件溢出。

• 定期修改最新的可选事件,尤其在安装新版的 HP-UX 后,因为新的版本通常会引入新的系统调用。

• 定期修改已审核的用户。

• 选择事件或用户时不要遵守任何模式或日程表。

• 设置站点准则。确定这些准则时应征询用户和管理人员的意见。

• 如果预期审核数据所占空间很大,则在由多个物理磁盘和多个物理 I/O 卡组成的逻辑卷上配置审核记录。使用 audsys 命令和 -N 选项将审核记录拆分为多个文件。

9.3 审核用户缺省情况下,当系统审核打开时,所有用户的审核状态均为打开。添加到系统中的新用户自动经过审核。

通过使用审核,可以在 HP-UX 系统上监视用户的操作。要更改审核的用户,请选择下列选项之一:

• 审核所有用户。

缺省情况下,当系统审核打开时,所有用户的审核状态都为打开。添加到系统中的新用户自动经过审核。

如果关闭对所有用户的审核,则在 /etc/default/security 文件中设置AUDIT_FLAG=1。

• 不审核任何用户。

要关闭对所有用户的审核,请执行下列步骤:

1. 检查已在审核的用户。要进行检查,请执行下列步骤:

a. 检查 /etc/default/security 文件中的 AUDIT_FLAG 设置。b. 使用以下命令检查存储在用户数据库中的 AUDIT_FLAG 设置:

# userdbget -a AUDIT_FLAG

2. 在 /etc/default/security 文件中设置 AUDIT_FLAG=0。

9.3 审核用户 135

Page 136: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

• 审核特定用户要配置审核特定用户,请执行下列步骤:

通过在 /etc/default/security 文件中设置 AUDIT_FLAG=0,取消选择审核所有用户。

1.

2. 使用以下命令配置对特定用户的审核:

# /usr/sbin/userdbset -u user-name AUDIT_FLAG=1.

如果审核系统尚未启动,则使用 audsys -n 命令启动审核系统。审核更改将在用户下次登录时生效。

9.4 审核事件事件是具有安全意义的操作,例如,创建文件、打开文件或登录到系统。可以通过审核 HP-UX系统上的事件,从而检测潜在的违例,来增强安全性。但是,选择进行审核的事件越多,占用的系统资源也越多,对系统性能的影响也更大。安全设计者必须根据业务需要和任何适用的政府法规,来确定要审核的事件。

audevent 命令用于指定将要审核的系统活动(可审核事件)。可审核事件划分为多个事件类别和配置文件,以方便配置。只要选择了一个事件类别或一个配置文件,就选择了与该事件类别或配置文件关联的所有系统调用和自审核事件。安装审核系统时,在 /etc/audit/audit.conf 文件中提供了一组缺省的事件分类信息。此外,还可以在 /etc/audit/audit_site.conf 文件中定义站点特定的分类和配置文件。

注释:HP 建议您至少需要审核下列事件:

• admin 事件

• login 事件

• moddac 自审核程序

• execv、execve 事件

• pset 事件这些事件在 /etc/audit/audit.conf 文件中预定义为基本配置文件。

在打开审核系统之前配置要审核的事件。audevent 命令的语法如下:# audevent [options]

下列选项是在 audevent 命令中常用的选项。

表 9-4 audevent 命令选项

说明audevent 选项

指定要记录的事件-e [event]

记录失败的事件操作-F

显示事件类型和相关系统调用的完整列表-l

136 审核管理

Page 137: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

表 9-4 audevent 命令选项 (续)

说明audevent 选项

记录成功事件的操作-P

指定要记录的事件的配置文件。配置文件在 /etc/audit/audit.conf 文件中进行定义。

-r [profile]

更改事件或系统调用的审核状态-S [system call] 或 -s[system call]

显示选定事件或系统调用的当前状态无选项

要配置用于审核的 admin、login 和 modaccess,请输入以下命令:# audevent -P -F -e admin -e login -e moddac

要配置用于审核的基本配置文件中的事件,请使用以下命令:

# audevent -P -F -r basic

将 Audit Success 和 Audit Failure 设置为监视成功和失败的事件或系统调用的事件类型。对于运行某系统而言,这是建议的最小事件类型选择。

通常,当选定对该事件进行审核,并已选定对启动该事件的用户进行审核时,将写入一条记录。但是,在用户启动会话和结束会话时,仍预期会生成一些记录,即使未选择该用户进行审核也是如此。这些记录被认为是基于事件选择(而非用户选择)的系统范围信息。执行自审核的程序可能会随意确定忽略用户选择,但不建议自审核执行此操作。

9.5 审核记录所有审核数据都将写入审核记录中。在常规模式下,在文件系统中审核记录以目录形式存放,并由一个或多个日志文件组成。日志文件的数目取决于用于数据记录的写入程序线程的数量。并且,如果要进行分析或显示,则只有整个目录(而不是该目录中的一个或多个文件)才能代表有意义的数据。与常规模式相反,HP-UX 11i v3 发行版同时提供兼容模式,来生成以单一文件形式存放的审核记录。支持兼容模式的唯一目的是为了向后兼容,将在 HP-UX 11i v3 之后的任何将来版本中放弃这一模式。有关详细信息,请参阅 audsys(1M) 联机帮助页。每次启用审核系统时,必须至少有一条审核记录。可使用 audsys 来指定审核记录的名称和各种属性。当前审核记录超过预定的容量(其 Audit File Switch (AFS) 大小),或驻留它的文件系统接近预定的容量(其 File Space Switch (FSS) 大小)时,审核子系统将发出警告。达到当前审核记录的 AFS 或 FSS 时,审核子系统将查找辅助审核记录。如果某个审核记录可用,记录将切换到该辅助审核记录。如果未指定辅助审核记录,则审核子系统将创建一个具有相同基本名称,但时间戳扩展名不同的新审核记录,并开始在其中记录数据。Audomon 还在审核记录成功切换之后使某命令行运行,以处理上一审核记录。该处理操作可能涉及到数据备份、归档、从站点拆离、清除内容或数据报告,视站点特定的需要而定。如果自动切换失败,将发送警告消息以请求相应的管理员操作,同时当前审核记录将继续增大。

9.5 审核记录 137

Page 138: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

注释:

1. 对于 HP-UX 11i v3,不再需要手动并显式地指定用于切换的辅助审核记录。审核系统会自动切换审核记录。

2. 如果自动切换失败,并且当前审核记录继续增长以致于超过 FSS 点,可能会达到系统定义的参数 minfree。此时将挂起常规用户的所有可审核操作。可以通过归档审核数据,或在具有空间的文件系统上指定新的审核日志文件,来恢复系统的运行。

3. 如果其他活动消耗了文件系统上的空间,或选定的文件系统所具有的空间相对于选定的 AFS大小而言不足,则可能在达到 Audit File Switch 点之前即达到 File Space Switch 点。

选择具有存放审核日志文件所需的足够空间的文件系统。可以使用 bdf 命令访问文件系统的大小。HP 建议您至少使用下列参数来配置日志文件:

• 文件系统必须具有 5000 KB 以上的可用空间来存放主审核日志文件。

• 必须具有 20% 以上的可用总文件空间。

审核日志文件的增长由审核溢出监视守护程序 audomon 密切监视,以确保审核数据不会丢失。

9.5.1 配置审核记录使用 audsys 命令指定主审核日志文件和(可选)辅审核日志文件,以收集审核数据:#audsys -n -N2 -c my_audit_trail -s 5000

该示例启动审核系统,并使用两个写入程序线程在 my_audit_trail 目录中记录数据。AFS大小设置为 5000K 字节。有关详细信息,请参阅 audsys(1M)。

9.5.2 监视和管理审核记录审核溢出监视守护程序 (audomon) 用于监视和管理审核记录。在系统引导时启动审核之后,audomon 守护程序将自动启动(/sbin/init.d/auditing 文件中 AUDITING=1)。audomon守护程序还可以由特权用户启动。启动之后,audomon 守护程序将监视当前审核记录的容量和其驻留的文件系统。以下是一个用于启动 audomon 守护程序示例命令:# audomon -p 20 -t 1 -w 90 -X "/user/local/bin/rcp_audit_trail hostname"

该命令用于启动 audomon 守护程序,并产生下列行为,假定已使用以下命令启动了审核系统:# audsys -n -N 2 -c /var/.audit/my_trail -s 500

• audomon 休眠的时间间隔至少为一分钟

• 当前审核记录的大小达到 4500 KB,或者审核记录所在的文件系统已使用 80% 的空间时,audomon 守护程序将停止向当前审核记录中记录数据,并开始向新审核记录中记录数据:/var/.audit/my_trail.<yyyymmddHHMM>

• 成功切换到新审核记录之后,audomon 守护程序将调用以下命令:sh -c "/usr/local/bin/rcp_audit_trail hostname /var/.audit/my_trail"

138 审核管理

Page 139: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

该脚本是站点特定的,可用于复制旧审核记录、执行数据备份或归档功能,以及创建审核报告。有关 audomon 的详细信息,请参阅 audomon(1)。

注意:

• 如果包含审核记录的文件系统已满,则生成审核数据的任何非超级用户进程都将在内核中被阻止。此外,如果非超级用户进程连接到系统终端,它也将被终止。有关详细,请参阅audsys(1M) 的“警告”一节。

• 请不要将审核记录置于根文件系统上。

提示: HP 建议您编写一个脚本来实现数据存储的长期策略,并使用 -X 选项将该脚本传递到audomon 守护程序。

audomon 命令使用下列参数:-p fss 在审核系统切换到辅日志文件之前,包含主审核日志文件的文件系统

上剩余空间的最小百分比。缺省的 fss 值为 20%。-t sp_freq 最小唤醒时间间隔(以分钟为单位),在此期间系统将在控制台上输

出审核日志文件切换点的警告消息。缺省的 sp_freq 值为 1 分钟。-w warning 在警告消息发送到控制台之后,已使用审核日志文件空间的百分比,

或已使用文件系统最小可用空间的百分比。缺省的警告值为 90%。-X 命令 该命令在每次 audomon 切换审核记录时执行。有关详细信息,请参阅 audomon(1M)。

9.6 查看审核日志审核过程中会累积大量的数据。可使用 audisp 命令选择要查看的数据。#/usr/sbin/audisp audit_trail

下列选项可与 audisp 命令一起使用:-f 仅显示失败的事件。

-p 仅显示成功的事件。

-c system_call 显示选定的系统调用。

-t 显示在指定时间之后发生的事件。

-s 显示在指定时间之前发生的事件。

-u 用户名 显示特定用户的信息。

-l 终端名称 显示特定终端的信息。

-e 事件名称 显示指定事件的信息。

> 文件名 将输出写入到指定的文件。

9.6 查看审核日志 139

Page 140: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

处理大型审核日志时,可能需要几分钟的时间来准备要查看的记录。查看审核数据时,应注意下列异常现象:

• 当调用可审核系统调用的程序提供错误的参数时,审核数据可能会不准确。审核数拀®显示哪些用户程序传递给了内核。例如,如果不使用参数调用 kill() 系统调用,则会在审核记录的参数部分产生无法预料的值。

• 采用文件名参数的系统调用可能不会正确记录设备和 I 节点信息。如果调用未成功完成,值将为 -1。

• 对正在更改事件或系统调用参数的超级用户进行审核会产生很长的审核记录。例如,添加一个要审核的事件类型时,将会对已启用审核的每个事件类型和系统调用产生一条记录,而不仅仅对新添加的事件类型产生记录。

9.6.1 使用 audisp 命令的示例下列示例说明了使用 audisp 命令显示的审核信息:

• 在屏幕上显示日志输出:

#/usr/sbin/audisp audit_trail

• 将日志输出定向到 /tmp/mylogoutput:#/usr/sbin/audisp audit_trail > /tmp/mylogoutput

• 仅查看成功的事件:

#/usr/sbin/audisp -p audit_trail

• 查看用户 joe 的活动:#/usr/sbin/audisp -u joe audit_trail

• 查看终端 ttypa 上的活动:#/usr/sbin/audisp -l ttypa audit_trail

• 仅查看登录事件:

#/usr/sbin/audisp -e login audit_trail

9.7 自审核一些进程调用一系列可审核的操作。为了减少收集的审核日志数据量并在审核日志文件中提供更有意义的表示法,可以对其中的一些进程进行编程,以挂起对它们所调用的操作的审核,并产生一个审核日志条目来说明已发生的进程。以这种方式编程的进程称为自审核程序;使用自审核程序可简化审核日志数据。

140 审核管理

Page 141: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

注释: 自审核进程的列表随系统的不同而不同。

自审核进程

下列进程具有自审核功能:

chfn 更改 finger 条目chsh 更改登录 Shelllogin 登录实用程序

newgrp 更改有效组

passwd 更改口令

audevent 选择要审核的事件

audisp 显示审核数据

audsys 启动或暂停审核系统

audusr 选择要审核的用户

init 更改运行级别、用户注销

lpsched 调度行式打印机请求

fbackup 灵活的文件备份

ftpd 文件传输协议守护程序

remshd 远程 Shell 服务器守护程序rlogind 远程登录服务器守护程序

telnetd Telnet 服务器守护程序privrun 调用传统应用程序。1

privedit 允许授权用户编辑文件。1

roleadm 编辑角色信息。1

1

authadm 编辑授权信息。1

cmdprivadm 编辑命令授权和权限。1

2

大多数自审核程序在单个事件类别中生成审核数据。例如,audsys 命令在 admin 事件中生成审核数据。某些命令在多个事件类别中生成审核数据。例如,init 命令在 login 和 admin事件中生成审核数据。

9.8 HP-UX RBAC 审核privrun、privedit、roleadm、authadm 和 cmdprivadm HP-UX RBAC 命令中的每个命令均生成审核记录。每个审核记录中均包含下列属性:

• 用户名

• UID

• 角色

1. 有关详细信息,请参阅第 4 章 (第 55 页)。2. 有关详细信息,请参阅第 4 章 (第 55 页)。

自审核进程 141

Page 142: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

• 授权(操作和对象)

• 事件发生的时间

• 事件的结果(成功或失败)

9.8.1 根据 HP-UX RBAC 标准和 /etc/rbac/aud_filter 文件进行审核HP-UX RBAC B.11.23.02 及更高版本支持使用审核过滤文件,来识别特定的 HP-UX RBAC 标准进行审核。可以创建一个名为 /etc/rbac/aud_filter 的过滤文件来识别特定的角色、操作和对象,以生成审核记录。只有进程的属性与在 /etc/rbac/aud_filter 中找到的所有三个条目(角色、操作和对象)匹配,才能生成审核记录。如果在该文件中未找到用户的角色和关联的授权,或者未明确地匹配,则不会生成特定于角色授权的审核记录。

授权用户可以使用文本编辑器编辑 /etc/rbac/aud_filter 文件,并指定要审核的角色和授权每个授权均以成对的操作、对象形式指定。必须在单个条目中指定与角色关联的所有授权。在每行上,只能为每个角色指定一个授权,但支持 * 通配符。以下是支持的条目和/etc/rbac/aud_filter 文件的格式:角色、操作、对象

以下列表对每个 /etc/rbac/aud_filter 条目进行了说明:角色 在 /etc/rbac/roles 中定义的任何有效角色。如果指定了 *,则操作可以访问所有的

角色。

操作 可在某对象上执行的特定操作。例如,hpux.printer.add 是添加打印机的操作。另外,hpux.printer.* 可以是添加打印机的操作,也可以是删除打印机的操作。如果指定了 *,则该操作可以访问所有的操作。

对象 用户可以访问的对象。如果指定了 *,则操作可以访问所有的对象。下列示例 /etc/rbac/aud_filter 条目指定了如何为具有 (hpux.passwd, /etc/passwd)授权的角色 SecurityOfficer 生成审核记录,以及如何为具有对所有对象执行 hpux.printer.add操作的授权的 Administrator 角色生成审核记录。SecurityOfficer, hpux.passwd, /etc/passwdAdministrator, hpux.printer.add, *

注释: 可以使用编辑器(例如 vi)直接编辑 /etc/rbac/aud_filter 文件。HP-UX RBAC管理命令不通过界面与 /etc/rbac/aud_filter 连接。

9.8.2 审核 HP-UX RBAC 标准的步骤下列步骤说明如何配置审核进程来审核系统上的 HP-UX RBAC 标准:1. 使用以下命令配置系统,以审核通过的或失败的管理员事件:

# audevent -PFe admin

2. 使用以下命令配置审核输出文件的位置和名称,并在系统上启用审核:

# audsys -n -c /tmp/aud.out -s 2048

142 审核管理

Page 143: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

3. 执行 HP-UX RBAC 命令,例如:# /usr/sbin/authadm add newauth

4. 使用以下命令打开审核输出文件,并搜索有关 authadm 命令的记录:# audisp /tmp/aud.out |fgrep authadm

注释: 有关审核 HP-UX 系统的详细信息,请参阅 audit(5)、audevent(1M)、audsys(1M) 和audisp(1M)。

9.8 HP-UX RBAC 审核 143

Page 144: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

144

Page 145: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

A受信任的系统本附录介绍如何设置和管理受信任的系统。本附录包含下列主题:

• “设置受信任的系统”• “审核受信任的系统”• “管理受信任的口令和系统访问”• “受信任的备份和恢复准则”

注释: 不建议使用受信任的系统。HP-UX 11i v3 是支持该产品的最后一个版本。

A.1 设置受信任的系统要设置受信任的系统,请执行下列步骤:

1. 建立适合于您的工作站点的总体安全策略。2. 检查系统中所有现有文件存在的安全风险,并找到相应的解决办法。在转换到受信任的系统之前,这一步骤很重要。此后,应定期检查文件,或者在怀疑有安全违例的情况下进行检查。请参阅第 7 章“文件系统安全”中的“挂接和卸除文件系统的安全指南”。

3. 备份文件系统,以便以后可以恢复用户文件。转换前,还应将 /etc/passwd 文件备份到磁带。

对于初始备份和恢复,可以使用 HP-UX 提供的任何备份和恢复程序。但是,实现安全功能后,只能使用 fbackup 和 frecover,以便可以保存和恢复访问控制表列 (ACL)。有关详细信息,请参阅 fbackup(1M) 和 frecover(1M)。

4. 转换到受信任的系统。转换到受信任的系统是一个可逆操作。

要转换到受信任的系统,请运行 HP SMH,并单击 System Security Policies。将会转至Convert to trusted system 提示符处。可能会出现确认提示。按 Y 开始转换进程。转换到受信任的系统时,转换程序执行下列 操作:

• 在 /tcb/files/auth/ 中新建一个受保护的口令数据库。• 将加密的口令从 /etc/passwd 文件移动到受保护的口令数据库,并用星号 (*) 替代

/etc/passwd 中的口令字段。• 强制所有用户使用口令。

• 为每个用户创建一个审核 ID 号。审核 ID 在用户的整个历史记录中保持不变。它唯一地标识一个用户。请注意,审核 ID 随 HP-UX 11i v3 中的受信任系统一起逐渐过时,它将被用户每次成功启动新登录会话时动态指定的审核标记代替。有关审核标记的详细信息,请参阅第 9 章。

• 对现有的所有用户打开审核标记。

• 转换 at、batch 和 crontab 输入文件以使用提交者的审核 ID。5. 确认系统上存在审核文件:

1. 使用 swlist -l fileset 列出已安装的文件集。查找名为 SecurityMon 的文件集,该文件集包含审核程序文件。要减少列表内容,请输入以下命令:# swlist -lfileset | grep Security

A.1 设置受信任的系统 145

Page 146: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

2. 此外,还应确认下列文件(SecurityMon 中未指定)也存在:• /etc/rc.config.d/auditing 中包含用于控制审核的参数。可以使用 SMH

修改该文件,或使用文本编辑器手动修改该文件。

• /sbin/rc2.d/S760auditing 是用于启动审核的脚本。请不要修改该文件。

6. 转换到受信任的系统之后,即可使用审核子系统并将 HP-UX 系统作为受信任的系统运行。

注释: 在 HP-UX 11i v3 上,审核系统无须转换为受信任的系统也可在系统上正常工作。

有关详细信息,请参阅第 9 章。

如果需要从受信任的系统重新转换为标准系统,应运行 HP SMH 并使用 Auditing and Security窗口。Audited Events、Audited System Calls 和 Audited Users 屏幕均提供一个取消转换选项。

提示: 确定系统是否已转换为受信任的系统的一种方法是查找 /tcb 文件。如果存在这些文件,那么系统便为受信任的系统。

A.2 审核受信任的系统审核受信任的系统与审核未转换为受信任模式的系统非常类似。有关审核的信息,请参阅第 9 章。唯一的区别在于如何选择审核的用户。在未转换为受信任模式的系统上,可使用 userdbset命令指定将要审核的用户。请参阅 userbdset(1M) 和userdb(4)。相关的属性称为 AUDIT_FLAG,在 security(4) 中进行了介绍。在受信任的系统上,可使用 audusr 命令指定将要审核的用户。有关详细信息,请参阅 audusr(1M)。

A.3 管理受信任的口令和系统访问口令是最重要的单个用户标识符。通过它,系统可验证一个用户的身份,以便允许该用户访问系统。由于口令在使用、存储或已知的情况下容易泄露,因此必须始终秘密保存。

另请参阅第 3 章“管理用户和系统安全性”以获取有关口令的信息。

安全管理员的职责

安全管理员以及系统中的每个用户必须共同承担保护口令安全性的职责。安全管理员执行下列安全任务:

• 为新用户生成临时口令。首次登录时必须使用该口令。该编号一旦经过验证,将提示新用户输入新口令。

• 在所有系统文件(包括标准口令文件 /etc/passwd 和受信任的数据库文件 /tcb/files/auth/*)中维护正确的权限。

• 建立口令时限性。

• 管理口令复用。

• 对于不再有权访问系统的用户,应删除其过期口令、用户 ID 和口令,或使其过期口令、用户 ID 和口令无效。

用户的职责

每个用户必须遵守下列规则:

• 记住口令,并始终将它秘密保存。

146 受信任的系统

Page 147: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

• 立即更改初始口令,并在之后定期更改口令。

• 报告任何状态变更,以及任何值得怀疑的安全违规现象。

• 确保输入口令时无人监视。

• 在拥有帐户的每台计算机上分别选择不同的口令。

A.3.1 口令文件受信任的系统维护多个口令文件:/etc/passwd 文件以及受保护的口令数据库 /tcb/files/auth/ 中的文件(请参阅“/tcb/files/auth/ 数据库”)。每个用户在两个文件中都分别拥有一个条目,并且 login 会查看这两个条目来验证登录请求。所有口令都在输入后立即被加密,并存储在用户的受保护的口令数据库文件 /tcb/files/auth/用户字符/用户名中。在比较过程中仅使用加密的口令。

每个口令文件中都不允许有任何空的口令字段。在受信任的系统上,将忽略 /etc/passwd 中的口令字段。具有空口令的用户在登录到受信任的系统时,将被强制设置口令。但是,即便这样仍存在潜在的安全违例,登录到该帐户的任何人均需要设置口令。

不要直接编辑口令文件。请使用 HP SAM、useradd、userdel 或 usermod 修改口令文件条目。

A.3.1.1 /etc/passwd 文件在用户登录时,受信任的系统使用 /etc/passwd 文件来识别用户。对于 HP-UX 系统中的每个帐户,该文件都包含一个相应的条目。每个条目均由冒号分隔的七个字段组成。受信任的系统中 /etc/passwd 的典型条目如下所示:robin:*:102:99:Robin Hood,Rm 3,x9876,408-555-1234:/home/robin:/usr/bin/sh

字段包含下列信息(按顺序列出),各信息之间用冒号分隔:

1. 用户(登录)名,最多由八个字符组成。(本例中的用户名为 robin)2. 未使用的口令字段中的实际口令由星号替代。 (*)3. 用户 ID,0 到 MAXINT-1(等于 2,147,483,646 或 231 -2)之间的整数。(102)4. 组 ID,来自 /etc/group,为 0 到 MAXINT-1 之间的整数。 (99)5. 注释字段,用于标识诸如用户的全名、位置和电话号码等信息。由于历史原因,该字段也

称为 gecos 字段。(Robin Hood,Rm 3,x9876,408-555-1234)6. 主目录,用户的初始登录目录。(/home/robin)7. 登录程序路径名,用户登录时执行。(/usr/bin/sh)用户可以分别通过 chfn 命令和 chsh 命令来更改注释字段(第五个字段)和登录程序路径名(第七个字段)。余下的字段由系统管理员设置。用户 ID 应是唯一的。有关详细信息,请参阅chfn(1)、chsh(1)、passwd(1) 和 passwd(4)。用户可以使用 passwd 来更改受保护的口令数据库中的口令。

A.3.1.2 /tcb/files/auth/ 数据库系统转换到受信任的系统后,会将加密口令(通常位于 /etc/passwd 的第二个字段)移动到受保护的口令数据库,并在 /etc/passwd 文件中用星号替代。受保护的口令数据库文件存储在 /tcb/files/auth/ 分层结构中。根据用户帐户名的第一个字母,用户验证配置文件存储在相应的这些目录中。例如,用户 david 的验证配置文件存储在文件 /tcb/files/auth/d/david 中。

用户的职责 147

Page 148: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

在受信任的系统上,关键安全元素存放在受保护的口令数据库中,只有超级用户才能访问。请使用 HP SMH 来设置口令数据条目。缺省情况下,对用户未设置的口令数据采用存储在文件/tcb/files/auth/system/default 中的系统缺省值。受保护的口令数据库中包含该用户的许多验证条目。有关这些条目的详细信息,请参阅 prpwd(4),其中包括:

• 用户名和用户 ID• 加密的口令

• 帐户属主

• 引导验证以允许指定的用户引导系统;请参阅 security(4)。• 用户的审核 ID 和审核标记(审核是否打开)• 两次口令更改之间的最短时间

• 口令最大长度

• 口令到期时间,在该时间之后,必须更改口令

• 口令生命周期,在该时间之后该帐户将被锁定

• 上一次成功和不成功的口令更改的时间

• 帐户到期的绝对时间(日期)

• 锁定帐户之前所允许的两次登录之间的最长时间

• 到期之前的天数,该时间内将出现警告

• 口令是用户生成的还是系统生成的

• 对口令执行细小的检查,以防止使用普通的词或众所周知的术语作为口令

• 系统生成的口令的类型

• 空口令

• 上一次更改口令的用户(如果不是帐户属主)的用户 ID• 该帐户可以用于登录的时间限制

• 与该帐户的上一次成功和不成功登录关联的终端或远程主机的标识

• 不成功的登录尝试次数;将在成功登录后清除

• 所允许的最大登录尝试次数,超过该次数后帐户将被锁定

A.3.2 口令选择和生成在受信任的系统上,可以使用下列口令生成选项:

• 用户生成的口令。

可以使用口令放映选项来检查登录和组名称的使用、登录和组名的排列以及回文的使用。

新口令与旧口令必须至少有 3 个字符不同。

• 系统生成的口令仅使用字母组合。

• 系统生成的口令使用字母、数字和标点符号的组合。

• 系统生成的口令使用可发音的无意义音节。

148 受信任的系统

Page 149: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

可以为系统设置口令生成选项。此外,还可以基于每个用户设置口令生成选项,以改写系统缺省设置。

必须为每个用户至少设置一个口令生成选项。如果用户可以使用多个选项,则在该用户更改其口令时会显示口令生成菜单。

A.3.3 口令时限性可以针对每个用户启用或禁用口令时限性。如果启用口令时限性,系统将维护口令的下列方面:

最短时间 两次口令更改之间所要求的最短时间。这样可防止用户通过更改口令后又立即改回去来避免存储新口令。

到期时间 该时间之后,用户必须在登录时更改该口令。警告时间 到期之前的时间,该时间内系统将发出警报。生命周期 如果不更改口令,与口令关联的帐户将被锁定的时间。帐户一旦被锁定,只有系统

管理员才能够将其解锁。一旦解锁,用户仍然必须更改口令,才能登录到该帐户。

口令更改后,到期时间和生命周期值将重置。生命周期为零意味着不指定口令时限性,在这种情况下,其他口令时限性时间无效。

A.3.4 口令历史记录和口令重新使用可以在系统范围内启用口令历史记录功能,以限制用户重新使用以前的口令。

可以通过定义文件 /etc/default/security 中的 PASSWORD_HISTORY_DEPTH 属性来启用口令重新使用检查:

PASSWORD_HISTORY_DEPTH=n

其中,n 是一个整数,用于指定要检查的以前口令的数目。用户更改口令时,会将新口令与以前的 n 个口令进行对照,并从当前口令开始检查。如果系统找到匹配的口令,则拒绝新口令。n 为 2 可防止用户交替使用两个口令。有关详细信息,请参阅 passwd(1) 和 security(4)。

A.3.5 基于时间的访问控制在受信任的系统上,可以指定允许每个用户在一天中的哪些时间以及一周中的哪些天登录。当用户试图在允许的访问时间以外登录时,将记录该事件(如果对登录失败和成功启用了审核)并终止登录。超级用户可以在允许的访问时间以外登录,但也会记录该事件。允许的访问时间范围存储在用户的受保护口令数据库中,可以使用 HP SAM 来设置。在时间范围的两端登录的用户不会被注销。

A.3.6 基于设备的访问控制对于受信任的系统上的每个 MUX 端口和专用 DTC 端口,可以指定允许访问的用户的列表。如果某个设备的该列表为空,则意味着允许所有用户访问。

设备访问信息存储在设备分配数据库 /tcb/files/devassign 中。对于受信任的系统上的每个终端设备,该数据库均包含一个相应的条目。该条目中的一个字段列出了允许访问该设备的用户。

受信任的系统上的终端登录信息存储在终端控制数据库 /tcb/files/ttys 中,该数据库为每个终端提供下列数据:

• 设备名称

• 上一次成功登录到终端的用户的用户 ID

用户的职责 149

Page 150: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

• 上一次成功登录到终端的时间

• 上一次不成功的终端登录的时间

• 连续登录失败的次数,超过该次数后终端将被锁定

• 终端锁定标记

只有超级用户才能访问这些受信任的系统数据库,并且可以使用 HP SAM 设置条目。请参阅devassign(4) 和 ttys(4)。

A.3.7 操作受信任的系统数据库可以使用下列联机帮助页中所述的库例程来访问口令文件以及其他受信任的系统数据库中的信息。

getdvagent(3) 操作 /tcb/files/devassign 中的设备条目getprdfent(3) 操作 /tcb/files/auth/system/default 中的系统缺省值getprpwent(3) 获取 /tcb/files/auth/ 中的口令条目getprtcent(3) 操作终端控制数据库 /tcb/files/ttysgetpwent(3C) 获取 /etc/passwd 中的口令条目putpwent(3C) 将口令文件条目写入到 /etc/passwd 中getspwent(3X) 获取 /tcb/files/auth/ 中的口令条目,为向后兼容而提供putspwent(3X) 将口令条目写入到 /tcb/files/auth/ 中,为向后兼容而提

供putprpwnam(3) 将口令文件条目写入到 /tcb/files/auth/ 中

A.4 受信任的备份和恢复准则要在受信任的系统上进行备份和恢复,请遵循下列准则:

• 只能选择使用 fbackup 和 frecover 来备份和恢复文件。只有 fbackup 和 frecover可以保留 ACL。当备份和恢复文件以便在未实现 ACL 的系统上使用时,应对这些命令使用-A 选项。有关详细信息,请参阅 fbackup(1M) 和 frecover(1M)。

• 如果计划将文件恢复到另一个系统,请确保用户在两个系统上的用户名和组名一致。

• 请记住,备份介质是很敏感的材料。只有经过证实确有需要时,才允许访问介质。

• 应标记备份磁带并将其存放在安全的位置。最安全的方式是存放在现场外。档案至少应保留 6 个月,之后可以循环使用介质。

• 使用适当的步骤清除磁性介质来删除数据,以便重复使用介质。

• 执行每日增量备份以及完整的每周备份。

使备份日程与组织中的信息流保持同步。例如,如果主数据库每周五更新,则需要在周五晚上调度每周备份。

• 如果根据日程表必须备份所有文件,应在执行备份之前要求所有用户注销。但是,如果某个文件在备份执行过程中发生变更,fbackup 会向您发出警告。

• 检查上一次备份的日志文件,以确定备份期间出现的问题。对备份日志文件设置限制性权限。

• frecover 命令允许覆盖文件。但是,文件备份后会保留权限和 ACL 集。• 必须事先测试恢复进程,以确保在出现紧急情况时可以完全恢复数据。

150 受信任的系统

Page 151: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

• 从另一台计算机恢复文件时,如果新的系统上没有用户和组,则可能要执行 chown 命令,来为它们现在所在的系统设置用户 ID 和组 ID。如果文件要恢复到没有指定组的新系统,则这些文件将取得运行 frecover 的用户的组所有权。如果属主和组的名称在不同的系统上具有不同的含义,可能会出现意外的恢复结果。

• 电源故障不应导致文件丢失。但是,如果用户报告在电源故障后文件丢失,则在从备份磁带将其恢复之前先在 /lost+found 中查找。

• 要检验待恢复的磁带中的内容,可使用 frecover 的 -I 选项来预览磁带上的文件索引。但是,需注意的是,备份过程不会更改文件系统的现有权限;frecover 可防止您在文件的权限不允许的情况下读取文件。

• 永远不要在当前目录恢复任何关键文件,例如 /etc/passwd 或 /tcb/files 中的文件。而应将文件恢复到临时目录(不要使用 /tmp),并授予该目录 drwx------ 权限,以防止其他任何人使用。将已恢复的文件与要替换的文件进行比较。进行任何必要的更改。

• 系统恢复后,不会自动启用审核。确保使用 audsys 命令打开审核功能。

A.4 受信任的备份和恢复准则 151

Page 152: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

152

Page 153: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

B 其他安全产品本附录引用了可用于 HP-UX 的其他安全产品。可从 HP Software Depot(位于http://www.hp.com/go/softwaredepot)免费下载这些产品。

B.1 HP-UX BastilleBastille 是一个安全强化锁定工具,用于增强 HP-UX 操作系统的安全性。它通过编码类似于堡垒主机和其他强化/锁定清单的功能逐个系统地提供定制锁定功能。Bastille 是一个系统强化/锁定程序,可增强 UNIX 主机的安全性。它配置守护程序、系统设备和防火墙以获得更高的安全性。它能够关闭不需要的服务和工具(rcp 和 rlogin),并帮助创建 chroot 监视程序,以限制通用 Internet 服务(如 Web 服务器和 DNS)的漏洞。有关详细信息,请参阅 bastille(1M)。

B.2 HP HIDS通过 HP Host Intrusion Detection System (HIDS),安全管理员可以主动监视、检测和响应网络内的如下攻击:

• 防止现有的攻击方案和一些未知的攻击方案。它通过检查来自各种数据源的系统活动信息,以发现可能具有安全违例或滥用的模式。此类非法活动可能包括:黑客企图入侵或中断用户系统、恶意的“内部人员”的活动,或有人尝试传播病毒

• 检测产品以增强网络内部本地主机级别的安全性。这样,可以自动监视网络内部的每个已配置主机,从而发现任何潜在的恶意破坏性入侵与的可能迹象。如果未进行检测,则可能导致失去密钥系统的可璀¨性,也可能会危及系统集成的安全。HP-UX HIDS 为多种类型的行为生成警报。

• 提供连续的保护,以防止现有的攻击方案和未知的攻击方案,这与其他入侵检测系统不同。它通过检测模板来检测入侵。检测模板是一些构建块,用于识别基本类型的未授权系统活动或经常在企业网络中出现的安全攻击。

• 在出现可能进行攻击的可疑活动时提供通知。与此相比,其他入侵检测系统完全依赖操作员对系统日志文件的主动分析。操作员通常在这一天结束时对系统日志文件进行分析。如果推迟对攻击的分析,则会空出相当长的时间使系统遭受破坏的风险。

B.3 安全修补软件Security Patch Check 是一个工具,借助该工具可以自动执行检查 HP-UX 安全修补软件和公告板的当前列表,并确定是否需要修补、更新或手动配置您的系统以使其符合此公告板上的内容。Security Patch Check 在运行时,会分析系统的当前状态,并显示推荐的安全修补软件列表、出现警告消息的已安装修补软件列表以及软件的分析结果。

HP 提供了最新的软件修补程序以解决允许未经授权的超级用户访问系统的已知安全问题。可以通过 Security Patch Check 安排自动更新安全修补程序。有关详细信息,请参阅第 2 章。

B.4 HP-UX IPFilterHP-UX IPFilter 是一个系统防火墙,它通过过滤 IP 数据包来控制流入和流出计算机的数据包流。它可以减少计算机上暴露点的数量,从而起到安全防护作用。

B.1 HP-UX Bastille 153

Page 154: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

B.5 HP-UX Secure ShellHP-UX Secure Shell 使用散列来确保数据的完整性,并提供安全通道功能、端口转发和 SSH 代理,以维护客户端上的专用密钥。

凭借 HP-UX Secure Shell,可以通过网络安全地登录到其他系统,在远程系统上执行命令;也可以将文件从一个系统移动到其他系统。HP-UX Secure Shell 提供了一组命令(例如,rlogin、rsh、rcp、ftp 和 telnet)以取代一些不安全的命令。HP-UX Secure Shell 还可以保护网络以防止下列安全危害:IP 欺骗 一种用于获取未经授权访问计算机的技术。入侵者向某一计算机发送消息,其 IP

地址表明该消息来自受信任的主机。窃听 搜索系统以获取口令、信用卡号码或商业机密。劫持攻击 一种用于接管网络通信的技术,其方式是通过攻击者检查并修改通信各方之间传

输的数据实现的。

154 其他安全产品

Page 155: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

词汇表

3DES 三次数据加密标准。一种对称密钥块加密算法,将数据进行三次加密,每次加密使用不同的 56 位密钥(密钥为 168 位)。3DES 适用于对大量数据进行加密。

AAA 服务器 验证服务器、授权服务器和帐户服务器。AAA 服务器在网络入口点提供用户网络访问的验证服务、授权服务和帐户服务。HP-UX 提供基于 RADIUS 协议和Diameter Base 协议的 AAA 服务器。

ACL 访问控制列表。列表或数据库,用于定义用户或其他主体可以访问的资源,以及所允许的访问类型。

AES 高级加密标准。一种对称密钥块加密算法。HP-UX IPSec 支持带有 128 位密钥的 AES。AES 适用于对大量数据进行加密。

AH 验证头。AH 提供数据完整性、系统级验证,并可提供抗重放保护。AH 是 IPsec协议包的一部分。

CA 证书颁发机构。验证用户并颁发证书的受信任的第三方。除了绑定用户的公用密钥和证书中其他与安全有关的信息来建立信任之外,CA 还使用其专用密钥对证书信息进行数字签名。

chroot 监管程序

限制某进程以及该进程的用户访问文件和目录的一种方法。进程在指定的基目录(根目录)中启动,但无法访问该根目录之上的任何目录或文件。

CRL 证书吊销列表。颁发的证书具有特定的生命周期,由开始日期/时间和到期日期/时间来定义确定。但是,如果出现如密钥值已泄漏的情况,则必须吊销证书。在这种情况下,证书颁发机构可以吊销证书。这可以通过在 CA 定期更新并发布的 CRL 上包含证书的序列号、并使证书对用户可用来完成。请参阅 CA。

DES 数据加密标准。针对对称密钥块加密使用 56 位密钥。DES 适用于对大量数据进行加密。

DES 已被破解(第三方已对使用 DES 编码的数据进行解码)。

Diameter Base 一种基于 RADIUS 协议提供验证、授权和帐户 (AAA) 服务的协议。Diameter 协议与 RADIUS 协议提供相同的功能,提高了可靠性、安全性并改善了基础结构。另请参阅“RADIUS”。

Diffie-Hellman 一种生成对称密钥的公用密钥方法,双方均可以公开交换值并生成相同的对称密钥。以质数 p 和生成器 g 开始,这可以是公开已知的(通常这些数来自众所周知的Diffie-Hellman 组)。各方均选择一个专用值(a 和 b),并生成一个公共值 (g**a mod p) 和 (g**b mod p)。他们交换公共值。然后各方使用自己的专用值和另一方的公共值生成相同的对称密钥 (g**a)**b mod p 和(g**b)**a mod p,双方均计算 g**(a*b) mod p 的值供将来通信时使用。

Diffie-Hellman 方法必须与验证结合使用,以防止中间人攻击或第三方攻击(欺骗)。例如,Diffie-Hellman 可以与证书或预共享的密钥验证一起使用。

EAP 可扩展认证协议。该协议提供了一个框架,以便使用多种验证方法和协议,包括口令、Kerberos 和问题响应协议。

ESP 封装安全有效负载。它是 IPsec 协议包的一部分。ESP 提供保密性(加密)和抗重放服务。它应与验证一起使用,或者与可选的 ESP 验证字段(已验证的 ESP)一起使用,或者嵌入到验证头消息中。已验证的 ESP 还提供数据源验证和无连接完整性。在通道模式下使用时,ESP 还提供限定的通信流保密性。

HMAC 散列消息验证代码。另请参阅“MAC”。

155

Page 156: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

IKE Internet 密钥交换 (IKE) 协议是 IPsec 协议包的一部分。在 IPsec ESP 或 AH 协议交换之前使用 IKE,以确定将要使用的加密服务和(或)验证服务。IKE 还管理ESP 和 AH 使用的对称(共享)加密密钥的分发和更新。另见“ESP”和“AH”。

IPSec 策略 IPSec 策略依据安全传输的数据来指定规则。IPSec 策略通常包括包过滤信息和一个操作。包过滤用于为数据包选择一个策略,而操作则应用于使用该策略的数据包。

Keberos 一种网络验证协议,用于为客户端应用程序或服务器应用程序提供加强的验证。Kerberos 允许用户验证自身,而无须通过网络传输未加密的口令。

LDAP(轻量级目录访问协议)

LDAP 协议提供网络目录访问。LDAP 使用类似于 OSI X.500 目录服务的目标结构,但它将数据存储为字符串并使用 TCP/IP 网络堆栈(而不是 OSI 网络堆栈)。

MAC 消息验证码(Message Authentication Code,MAC)是一个验证标记,也称为校验和,由验证算法应用程序随专用密钥一起生成到消息中。MAC 通过相同的密钥进行计算并验证,以便只有预定的接收者才能验证它们,这一点与数字签名不同。

基于散列函数的 MAC (HMACS) 将一个或多个密钥与散列函数一起使用,来生成附加到消息中的校验和。其中一个示例是消息验证的 Keyed-MD5 方法。

MAC 还可以由块加密生成。消息块中的数据使用 DES CBC 加密,而加密文本中的最后一块用作为校验和。DES-CBC MAC 在美国应用广泛,并用作国际标准。

MD5 消息摘要 5 算法。此验证算法由 RSA 开发。MD5 使用 128 位密钥生成 128位的消息摘要。IPSec 将消息摘要截断为 96 位。

NAT 网络地址转换。允许内部专用网络中的多个系统共享一个公共 Internet IP 地址的方法。NAT 网关在将数据包从内部网络转发到公共 Internet 时,会将内部 IP 地址和端口替换(转换)为它的公共 IP 地址和端口,并且在返回路径中进行相反的转换。

PAM 可插拔验证模块。一个验证框架,允许系统管理员配置服务,以便对 HP-UX 实用程序(如系统登录实用程序)进行验证、帐户管理、会话管理和口令管理。

RADIUS 远程认证拨号用户服务(Remote Authentication Dial-In User Service,RADIUS)协议已广泛应用和实现,用于管理对网络服务的访问。它定义了网络访问设备与验证、授权和帐户 (AAA) 服务器之间的信息交换标准,以执行验证、授权和帐户操作。RADIUS AAA 服务器可以管理用于验证(验证用户名和口令)的用户配置文件、指定要提供的服务类型的配置信息,以及可以限制用户访问的强制执行的策略。

RADIUS 协议仅提供验证交换的框架,并可以与许多验证方法一起使用。

RBAC 基于角色的访问控制。一种 HP-UX 机制,用于向系统资源、命令和系统调用提供精细划分的访问权限。将用户分配到角色,并基于角色授予用户访问权限。

RSA 代表 Rivest、Shamir 和 Adelman。一种公用密钥-专用密钥加密系统,用于保密(加密)和验证(签名)。对于加密,系统 A 可以发送使用系统 B 的公用密钥加密的数据。只有系统 B 的专用密钥才能解密数据。对于验证,系统 A 使用数字签名(使用系统 A 的专用密钥加密的摘要或散列)发送数据。要验证签名,系统 B 将使用系统 A 的公用密钥来解密签名,并将解密的散列或摘要与它为消息计算的散列或摘要进行比较。

SASL 简单认证和安全层(Simple Authentication and Security Layer,SASL)。一种将验证服务添加到基于连接的网络应用程序的协议。SASL API 提供一个灵活的框架,允许编程人员使用一个通用的接口来访问多个验证服务。

156 词汇表

Page 157: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

SHA1 安全散列算法-1。使用 160 位的密钥生成 160 位的消息摘要的验证算法。

SSH 安全 Shell。一组网络服务,用于提供远程登录、文件传输和远程命令执行的安全替换。SSH 还提供安全通道功能、端口转发和 SSH 代理,以维护客户端上的专用密钥。

SSL 安全套接字层。一种用于加密网络数据的协议。SSL 协议位于数据堆栈中的 TCP之上。SSL 使用公用密钥/专用密钥来验证主体以及交换专用(共享)密钥。然后,SSL 使用专用密钥加密数据。

VPN 虚拟专用网络。公共网络(例如全球 Internet)内的专用网络。由于 VPN 使用通道在物理网络内部有效地创建独立的逻辑网络,因此它是虚拟的。因为外部的用户无法看到或修改正在传输的数据,所以 VPN 是专用的。使用主机身份验证的 VPN 还提供另一种保护,以防止 IP地址欺骗。

安全 Shell 见 SSH。

安全套接字层 见 SSL。

安全证书 见 证书。

包过滤 一种用于选择或限制网络数据包的过滤。包过滤会指定网络数据包的特性。包过滤通常指定源 IP 地址和目标 IP 地址、上层协议(例如 TCP 和 UDP)以及 TCP或 UDP 端口号。包过滤还可以定义其他数据包字段,例如 Ipv6 头类型、上层消息类型(例如 ICMP 消息类型)以及 TCP 连接状态。

堡垒主机 保护内部网络以防止入侵者进入的计算机系统。另请参阅“防火墙”和“强化的系统”。

操作 对一个或多个对象访问的特定模式。例如,写入到一个文件。在授权环境中,将授权主题对对象执行操作。

带外密钥交换 一种使用安全通信通道的密钥交换,该安全通信通道位于正常计算机通信通道之外(例如,现场会议或电话呼叫)。

第三方攻击 在第三方攻击中,攻击者截取两个受攻击方 A 和 B 之间的数据包,A 和 B 认为他们彼此之间在交换消息,但实际上他们在与第三方交换消息。攻击者冒充 A的身份与 B 进行交换消息。另请参阅“中间人攻击”。

堆栈缓冲区溢出攻击

通过致使进程执行恶意代码攻击系统的一种方式。其通常的实现方式是,使堆栈中的输入缓冲区溢出以插入恶意代码,然后修改堆栈指针来执行恶意代码。另请参阅“缓冲区溢出攻击”。

对称密钥加密 见 共享密钥加密。

对象 系统或网络资源,例如系统、文件、打印机、终端和数据库记录等。在授权环境中,将授权主题对对象执行操作。

遏制 用于限制进程的访问权限的一种机制或一组机制。

在 RBAC 环境中,遏制是强制访问控制和精细划分的权限的组合。请参阅 RBAC。

防火墙 一台或多台用作屏障的设备或计算机系统,用于阻止不受欢迎的用户或有害的入侵应用程序访问网络。另请参阅“堡垒主机”和“强化的系统”。

非对称密钥加密

见 公用密钥加密。

封装安全有效负载

见 ESP。

隔离专区 将各种系统组件彼此隔离的一种方法。如果配置正确,隔离专区将成为一种保护 HP-UX 系统及系统上数据的有效方法。

157

Page 158: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

公用密钥-专用密钥加密

见 专用密钥加密。

公用密钥加密 一种使用两个数学上相关的密钥(例如,k1 和 k2)的加密方法,使得只能使用K2 来解密通过 K1 加密的数据。此外,大多数算法还能保证仅 K1 的持有者才能正确地加密可由 K2 解密的数据。

其中的一个密钥必须是专用的(仅其所有者知道),但另一个密钥可以公开(公用),这样很容易管理密钥的分发。公用密钥加密在计算上十分耗时,因此对大量数据加密时不实用。因而,公用密钥加密通常用来验证数据。

也称为非对称密钥加密(两个密钥不相同)或公用密钥-专用密钥加密。

共享密钥加密 一种双方使用相同的密钥(双方共享同一密钥)进行加密数据或验证数据的加密方法。为提供数据保密或验证,只有双方可以知道密钥值(该密钥必须是专用的)。对于加密数据而言,共享密钥加密的效率要高于公用密钥-专用密钥加密,因此它经常用于对大量数据进行加密。但是,分发或生成共享密钥需要带外密钥交换(例如面对面的口头交换)、Diffie-Hellman 交换或其他机制。

也称为专用密钥加密或对称密钥加密。

过滤 一种机制,用于过滤不需要的对象,或指定允许访问或拒绝访问的对象的参数。通常过滤用于排除不需要的网络数据包(包过滤)。

缓冲区溢出攻击

通过导致进程错误或致使进程执行恶意代码来攻击系统的一种方法。通常通过溢出堆栈中的输入缓冲区来达到此目的。结果将导致内存违规,或导致进程终止或致使进程执行恶意代码的其他错误。另请参阅“堆栈缓冲区溢出攻击”。

基于角色的访问控制

见 RBAC。

加密 编码正常(或明文)数据,使得只有特定信息的持有者才能解码该数据的过程。

加密 将数据从可读格式转换为不可读格式以进行保密的过程。加密函数通常将数据和加密密钥(值或位序列)作为输入来处理。

角色 组织环境中的作业功能,具有与已分配到角色的用户的给定授权和责任相关的关联语义。

精细划分的权限

执行某特定的低级别操作的权限(例如,执行特定系统调用的权限)。

拒绝服务攻击 一种攻击方式,它阻止系统响应网络数据包,导致系统无法响应服务请求。拒绝服务攻击的实现方式可以是,通过使用消耗大量资源的错误请求,来使得易受攻击的系统过载而崩溃。拒绝服务攻击经常与主机欺骗同时使用,使得受欺骗的主机(其 IP 地址正被欺骗者占用的主机)不能参与欺骗者和其试图访问的系统之间的信息交换。

可插拔验证模块

见 PAM。

可传递信任关系

通过其他受信任的实体来扩展信任关系。如果 A 和 B 均信任 C,则 A 和 B 可以使用可传递信任关系来通过 C 实现相互信任。在层次结构中,如果 A 和 B 可以对共同的根建立信任链,则他们之间可以建立一个可传递信任关系。

可扩展认证协议

见 EAP。

强化的系统 具有最少操作系统功能、用户和应用程序的计算机系统,用作屏障以阻止不受欢迎的用户或有害的入侵应用程序访问网络。也称为堡垒主机。

权限 在计算机系统上执行某个操作的权限。

158 词汇表

Page 159: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

审核 事件的选择性记录,用于分析和检测安全违例。HP-UX 审核系统提供审核用户或进程的机制。

事件 一个操作,例如创建文件、打开文件或登录到系统。

手动密钥 为 IPSec 手动配置的加密密钥。一种使用 Internet 密钥交换 (IKE) 协议生成 IPSecSecurity Associations (SA) 的加密密钥和其他信息的替代方法。

授权 评估访问控制信息并确定是否允许主题(计算机网络中的用户、主机、设备或其他实体)对特定的资源或对象执行操作的过程。通常,只有在验证主题身份后,才执行授权。

在 RBAC 环境中,授权特指对对象的成对操作,也称为权限。请参阅 RBAC。

数据加密标准 见 DES。

数字签名 数字签名是使用公用密钥/专用密钥对的键入散列算法的变化形式。发送方使用其专用密钥和作为输入的数据来创建数字签名值。

完全转发保密(PFS)

使用完全转发保密时,如果有一个密钥泄露,则仅允许访问该密钥保护的数据。

问题响应验证 一种验证形式,在此过程中验证器将随机值 (challenge) 发送到待验证的用户或主体。用户将根据问题值和以前使用验证器设立的共享机密值(例如 MD5 散列值)进行响应。

与常规口令交换不同,问题响应对话变化多样,入侵者将无法重放用户的响应来获得验证。

验证 验证主题(计算机网络中的用户、主机、设备或其他实体)身份的过程。验证通常是允许访问系统中的资源的先决条件。此外,它也是验证数据的完整性或验证发送数据方身份的过程。

验证头 见 AH。

影子口令 一种为用户口令提供附加安全性的结构。影子口令结构 (spwd) 包含加密的用户口令和随 passwd 结构一起使用的其他信息。影子口令结构存储在通常只有特权用户才可读取的文件中。

预共享密钥 两个系统同意用于进行加密或验证的加密值。该密钥在计算机数据通信之前进行交换,并通常使用带外密钥交换(例如口头交换或面对面交换)。另请参阅“共享密钥加密”。

证书 安全证书将一个公用密钥和一个主体(特定的人员、系统设备或其他实体)相关联(或绑定)。安全证书由一个用户信任的实体颁发,该实体称为证书颁发机构 (CA),用于保证或确认相应专用密钥的持有者(人员、设备或其他实体)的身份。CA 使用 CA 的专用密钥对证书进行数字签名,以便可以使用 CA 的公用密钥来验证证书。公用密钥证书最常用的格式是国际标准化组织 (ISO) X.509标准(第三版)。

证书颁发机构 见 CA。

证书吊销列表 见 CRL。

中间人攻击 见 第三方攻击。

主体 人员、系统、设备或其他实体。

主体 计算机网络中的用户、主机、设备或其他实体。在授权环境中,对要求授权决策的对象执行操作的发起人。

专用密钥加密 见 共享密钥加密。

状态包过滤 一种包过滤的类型,它使用上层协议字段和状态信息(例如 TCP 连接状态)。

159

Page 160: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

160

Page 161: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

索引

符号/dev 专用设备文件安全性考虑, 111

/etc/d_passwd 文件控制访问, 50

/etc/default/security, 22

/etc/dialups 文件控制访问, 50

/etc/ftpd/ftpusers 文件更改访问, 119

/etc/group 文件, 147/etc/inetd.sec 文件, 121/etc/pam_user.conf 文件, 33/etc/pam.conf 文件, 32系统范围配置, 34

/etc/passwd受限帐户, 28

/etc/passwd file恢复, 25

/etc/passwd 文件, 145–147格式, 39更改, 38伪帐户示例, 41应用程序用户帐户, 28

/etc/rbac/aud_filter, 142/etc/rbac/cmd_priv, 68条目, 69

/etc/security.dsc file, 42/etc/shadow 影子口令文件, 39/sbin/rc2.d/S760auditing, 146/tcb/files/auth/ 受保护的口令数据库, 146–147/tcb/files/auth/*/*, 145, 147, 149–150/tcb/files/ttys, 149/tmp, 151/var.adm/userdb 文件, 43/var/adm/inetd.sec 文件配置, 121

AACL

JFS 和 HFS 的比较, 110和 NFS, 111缺省 JFS 条目, 108设置, 100设置 HFS, 100设置 JFS, 104受信任的系统备份/恢复, 150最小 JFS 的更改示例, 106

AES(高级加密标准), 155AH(验证头)

定义, 155at, 145audisp 命令查看审核日志输出, 139

authadm, 66示例, 67语法, 66

Bbatch, 145btmp 文件跟踪失败登录, 30

CCA(证书颁发机构)已定义, 155, 157

CDE 登录管理器登录, 29

CDE 锁定管理器配置, 49

chfn, 147chmod 命令对类条目的影响, 106更改文件访问权限, 98

chown, 25, 147, 151chroot 监管程序, 129chsh, 147cmdprivadm, 67示例, 68语法, 67

crontab, 145

DDES(数据加密标准), 155, 158Diffie-Hellman, 155组, 155

EESP(封装安全有效负载)定义, 155

/etc/ftpd/ftpusers, 119/etc/inetd.sec, 121/etc/passwd, 25

Ffbackup受信任的备份, 150

fbackup 命令, 24fileaccess设置访问权限, 98

frecover

161

Page 162: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

受信任的恢复, 150frecover 命令, 24fsck 命令纠正文件损坏, 99

FTP保护, 118保护匿名, 118

ftpd 服务器, 119

Ggetacl 命令查看 ACL, 105

getdvagent 函数, 150getfilexsec 命令, 80, 91getprdfent 函数, 150getprocxsec 命令, 80, 91getprpwent 函数, 150getprtcent 函数, 150getpwent 函数, 150getspwent 函数, 150GSS-API

SSH, 127guest 帐户监视, 28

HHFS, 100HFS ACL和 NFS, 111命令和调用, 102设置, 100与 JFS ACL 比较, 110

HP-UX RBAC故障排除, 73联机帮助页, 59命令, 58配置隔离专区, 70配置文件, 58缺省用户, 65审核, 141体系结构, 59运行, 60组件, 57

HP-UX RBAC 命令包装, 64

HP-UX 安全公告预订, 23

HP-UX 安装安全性考虑, 21安装安全修补软件, 23安装后的安全建议, 24防止在引导过程中发生安全违例, 21设置安装时安全选项, 22

IIKE(Internet 密钥交换)

协议, 156inetd 守护程序

TCP wrappers 和, 121保护, 120概述, 119

Internet Services, 117概述, 117

Internet 守护程序请参阅 inetd 守护程序, 119

IPSec 策略定义, 156

JJFS, 100JFS ACL更改最小的示例, 106和 NFS, 111设置, 104使用缺省条目 , 108通过 setacl 命令更改, 108与 HFS ACL 比较 , 110

Llast 命令用法示例, 31

LDAP 目录服务器保护存储的口令, 42

Logical Volumn Manager请参阅 LVM, 112

login 命令, 29, 147lost+found 目录, 25, 151LVM, 112

MMAC, 156

NNFS, 114保护 NFS 挂接的文件, 115保护服务器, 114保护客户端, 115和 ACL, 111

NIS保护存储的口令, 42

PPAM概述, 32系统范围配置, 34验证用户身份, 32

PAM 服务模块, 32PAM 库, 33PAM 验证登录示例, 36

parameter

162 索引

Page 163: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

PASSWORD_HISTORY_DEPTH, 149passwd, 147passwd 命令示例, 38

PASSWORD_HISTORY_DEPTH parameter, 149privedit, 72选项, 73语法, 72

privrun, 70-p, 69示例, 71选项, 71语法, 70运行, 60

prpwd, 148putprpwnam 函数, 150putpwent 函数, 150putspwent 函数, 150

Rroleadm, 64示例, 65语法, 64

RPC和 TCP wrappers, 122

RSA 加密系统, 156rsh 命令限制系统访问, 28

SSec00Tools 安全级别, 22Sec20MngDMZ 安全级别, 22Sec30DMZ 安全级别, 22Secure Shell请参阅 SSH, 123

Security Patch Check使用, 23

security_patch_check 命令示例, 24

SecurityMon 文件集, 145setacl 命令更改 ACL, 105更改 JFS ACL, 108

setfilexsec 命令, 80, 91setgid 程序, 25, 151管理, 45

setuid 程序, 25, 151管理, 45

SIS, 122SSH, 41

GSS-API, 127HP-UX 系统, 128TCP wrappers 支持, 129保护远程会话, 123端口转发, 124基于公用密钥的验证, 127

加密, 124口令验证, 128强随机数生成器, 129软件组件, 124特权模式执行, 126相关技术, 129验证, 124, 126运行, 125运行 scp 客户端, 126运行 sftp 客户端, 126运行 ssh 客户端, 125

SSH 功能摘要, 124

SSH-1 协议, 128SSH-2 协议, 128swlist 命令, 145

TTCP wrappers防止欺骗, 121和 SSH, 129

TMOUT 变量配置, 48

Uumask 命令更改缺省文件权限, 98

userdbset 命令用户属性定义示例, 44

V/var/adm/inetd.sec, 121

Wwho 命令获取用户登录信息, 31

wtmp 文件跟踪登录成功, 30

WU-FTPD, 119

A安全地挂接文件系统, 112安全地卸除文件系统, 112安全级别在安装过程中选择, 22

安全属性定义, 42

安全修补软件安装, 23

安装 HP-UX安全性考虑, 21安装安全修补软件, 23安装后的安全建议, 24防止在引导过程中发生安全违例, 21设置安装时安全选项, 22

163

Page 164: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

安装安全修补软件使用 Security Patch Check, 23

B保护远程会话, 123备份安全准则, 24受信任的系统, 145, 150

备份介质安全, 150

C操作创建的指导原则, 63

超级用户缺点, 55

超级用户访问保护, 51监视, 52检查, 52使用受限 SMH 生成器, 52

超级用户访问权限获取, 21

超级用户帐户保护, 51

磁盘分区安全性考虑, 112

D单用户模式引导进入, 22

到期时间口令时限性, 149

登录标题保护, 50

登录跟踪文件, 30登录过程说明, 29

电话保护, 49

电源故障, 25, 151文件丢失, 25

电子支持中心, 23调制解调器访问管理安全准则, 49

定期文件系统请参阅 JFS, 100

堆栈缓冲区溢出保护, 47

F访问基于设备的访问, 149基于时间的访问, 148–149口令, 148终端控制, 148

访问控制策略切换, 57定制, 73接口, 58

访问控制列表请参阅 ACL, 100

辅审核日志文件, 138

G高性能文件系统请参阅 HFS, 100

隔离专区, 75IPC 规则, 83创建规则, 81故障排除, 87, 96规划结构, 77激活, 78权限限制规则, 86网络规则, 84网络接口规则, 85文件系统规则, 82修改规则, 81

工作站保护无人照管, 47

管理对文件的访问, 97管理口令, 37管理域管理, 122

过滤定义, 158–159

H函数

getdvagent, 150getprdfent, 150getprpwent, 150getprtcent, 150getpwent, 150getspwent, 150putprpwnam, 150putpwent, 150putspwent, 150

恢复安全准则, 24

J基于公用密钥的验证

SSH 使用, 127以及基于主机的验证, 128

基于设备的访问控制, 149基于时间的访问控制, 149基于主机的验证

SSH 使用, 128以及基于公用密钥的验证, 128

加密定义, 155, 158–159

加密口令字段, 147

164 索引

Page 165: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

加强随机数生成器, 129检验网络控制文件上的权限, 123角色创建的指导原则, 61配置, 64缺省, 65组, 66

精细划分的权限, 91配置, 68

K口令, 148安全, 146好的标准, 38加密, 147加密字段, 147类型, 148生成, 148时限性, 146–149数据库, 145–146, 148条目操作, 150

完整性, 146影子, 39

口令管理, 37口令历史记录, 149口令时限性到期时间, 149生命周期, 149最短时间, 149

口令数据库/tcb/files/auth/, 146–147

口令文件受保护的口令数据库, 145–146, 148字段, 147

口令验证SSH 使用, 128

口令重新使用, 149

L历史记录口令, 149

临时帐户禁用, 28

逻辑卷安全性考虑, 112

M命令

login, 147swlist, 145

目录访问保护, 99

N匿名 FTP保护, 118

P屏幕锁定配置, 48

Q欺骗定义, 119使用 TCP wrappers 防止, 121

权限检查网络控制文件, 114检验网络控制文件, 123

R日志文件审核, 137

S设备分配数据库受信任的系统, 150

设置用户 ID 程序请参阅 setuid 程序, 45

设置组 ID 程序请参阅 setgid 程序, 45

身份验证PAM 登录示例, 36登录时, 29使用 PAM, 31使用引导, 22

审核恢复后打开, 25基本配置文件, 136启用, 131

审核 ID (aid), 145, 147–148审核标记, 148审核命令摘要, 131

审核日志文件, 137查看, 139覆盖现有的, 139简化数据, 140

审核事件, 136审核事件类型, 137审核用户, 131生命周期口令时限性, 149

受保护的口令数据库/tcb/files/auth/, 146–147

受信任, 148受信任的口令, 148受信任的口令数据库, 150受信任的系统

165

Page 166: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

数据库, 150转换到, 145转换来自, 146

授权, 56操作, 56对象, 56配置, 66

授权编号, 146随机数生成器, 129

W完全转发保密 (PFS)已定义, 159

网络管理, 123管理域, 122控制文件安全, 113

网络控制文件检查权限, 114检验权限, 123

唯一的用户名重要性, 29

伪帐户示例, 41

文件/etc/group, 147/etc/passwd, 145–147

文件安全/dev 专用文件的考虑, 111保护 NFS 挂接的文件, 115保护磁盘分区和逻辑卷, 112保护与用户帐户相关的文件, 99控制对文件的访问, 97在网络上控制, 113

文件集SecurityMon, 145

文件损坏使用 fsck 命令确定和纠正, 99

文件所有权设置, 98

文件系统挂接和卸除安全指南, 112

X系统安全性定义安全属性, 42

系统访问远程安全准则, 49

系统管理安全地安装 HP-UX, 21安全地挂接和卸除文件系统, 112安全违例, 21安装安全修补软件, 23保护 FTP, 118保护 HP-UX 文件系统, 97保护 inetd, 120保护 Internet Services, 117

保护超级用户访问, 51保护登录标题, 50保护无人照管的工作站和终端, 47备份准则, 24登录时验证用户身份, 29定义安全属性, 42防止堆栈缓冲区溢出攻击, 47管理 setuid 和 setgid 程序, 45管理管理域, 122管理口令, 37管理用户访问权限, 27管理远程访问, 49控制网络上的文件安全, 113设置安装时安全选项, 22审核用户, 131审核准则, 135使用 PAM 验证用户身份, 31使用引导身份验证功能防止未经授权的访问, 22

系统运行级别更改, 47控制访问, 47

修补软件安装, 23使用 Security Patch Check, 23

选择和生成, 148

Y验证, 146

SSH 使用的, 126移动连接保护, 49

引导防止在引导过程中发生安全违例, 21

引导进程获取, 21

引导身份验证使用, 22

影子口令, 39用户 ID (uid), 147–148用户安全性管理, 27

用户访问权限管理, 27

用户名创建唯一的, 29

用户身份验证PAM 登录示例, 36登录时, 29使用 PAM, 31

用户帐户受限, 28

预共享密钥定义, 156, 158–159

域管理, 122

远程访问管理安全准则, 49

远程访问服务, 117

166 索引

Page 167: HP-UX 系统管理员指南:安全管理read.pudn.com/downloads150/ebook/648720/hpuxAdv/共享资料/HP-… · hp-ux 系统管理员指南:安全管理 *5991-6498* hp 部件号:5991-6498

概述, 117远程过程调用请参阅 RPC, 122

远程会话使用 SSH 保护, 123

运行级别更改, 47控制访问, 47

Z粘滞位设置, 99

证书吊销列表 (CRL), 155, 157支持中心电子, 23

终端保护无人照管, 47配置屏幕锁定, 48

终端访问, 148终端控制数据库受信任的系统, 150

终端设备文件保护, 48

重新使用口令, 149

主审核日志文件, 138自审核程序, 141组 ID (gid), 147组帐户管理, 29

最短时间口令时限性, 149

167