再上一篇:4.3.4 关于 SDSF 的使用(System Display and Search Facility)
上一篇:4.4 关于JES3
主页
下一篇:6.2 用户和组的管理
再下一篇:6.3 数据集的保护
文章列表

第六章 RACF概述

IBM S390 系统管理基础(zSeries,IBMSystemz, z/VM,zOS等操作系统使用,命令的参数与用法等)

6.1 概论

RACF(Resource Access Control Facility)是OS/390的安全子系统。它可以证实 一个用户,并且保护数据不会被有意或无意地破坏、修改、泄漏或使用。RACF有四大功 能:
1.证实一个用户
RACF使用用户ID和口令来证实一个用户。当一个用户试图登录时,RACF将检查这 个用户是否在RACF中有定义,口令是否有效,用户是否已被挂起,用户是否被授权使用 这个终端,用户是否被授权使用这个应用,用户是否允许此时登录,终端是否允许此时 登录。所有的安全检查通过后,用户才会被允许登录进入系统。定义用户时,系统管理 员会给用户一个暂时的口令,用户登录后RACF会强制用户改变自己的口令,这样系统中 的任何用户都不会知道用户的口令,除非用户自己泄漏。当用户忘了自己的口令时,系 统管理员会给他改变口令,这样当用户再次登录时,又需要强制改变自己的口令。当一 个MVS用户已登录在系统中时,他也不能再次登录,只有在LOGOFF后才能在登录。
每一个RACF定义的用户均有一个PROFILE,其内容有用户ID、拥有者、口令、属性、 SECURITY CLASSIFICATION、组及段。
在RACF中用户可划分为组。一个用户组通常是许多具有类似权限的用户的集合。组 主要是为了管理方便,因为它可以简化PROFILE中的访问列表。一个用户可同时属于多
个组,当一个用户成为一个组中的成员时,我们说这个用户连接到这个组中,同时他也
具有了这个组的权限。
2.资源授权检查
当一个用户企图访问一个特定的资源时,系统会调用RACF去确定用户是否允许使用 该资源。RACF不仅控制用户对资源的访问,而且还控制用户如何去访问资源,比如是只 读还是可读可写,或者必须通过某种手段(诸如通过特定的程序)访问。RACF可用于控制 访问许多类的资源,诸如MVS数据集、终端、控制台、CICS和IMS交易甚至程序等。RACF 对资源的控制也是通过 PROFILE 来进行,资源 PROFILE 的主要内容有:PROFILE 名、拥 有者、UACC(通用访问权限)、访问控制列表、SECURITY CLASSIFICATION及审计信息。
资源授权检查的流程见图6.1:

图中:
图6.1 资源授权检查的流程
(1) 用户通过一个资源管理器(比如TSO/E,CICS或IMS)请求访问资源。
(2) 资源管理器发布一个 RACF 请求确定用户是否可以访问资源。在大多数情 况下,这是一个RACROUTE宏,其它情况下则是一个独立的RACF宏。
(3) RACF访问RACF数据库(或者从RACF数据库拷贝到内存中的PROFILE).
(4) 检查合适的资源PROFILE.
(5) 传递PROFILE中的内容。
(6) RACF将请求的状态(即用户是否可以访问资源)通知资源管理器。
(7) 资源管理器获得或否决用户的请求。
3.记录和报告
RACF 决定允许或不允许用户访问系统后,它会检查是否应当记录这一事件(由安全 管理员或具有AUDITOR属性的用户指定)。具有AUDITOR属性的用户可以指定那些事件需 要记录,比如所有事件、企图访问成功时记录、失败时记录、或读时记录或写时记录。 如需要记录,则写到RMF数据集,同时送系统控制台,也可指定通知一个特定的用户。 具有 AUDITOR 属性的用户可以看 PROFILE,可以设置是否记录和 PROFILE 有关的访问事 件,或在什么条件下记录,但无权修改PROFILE,无权访问资源。
4.安全管理
在RACF中,大多数用户都是一般用户,他们有其自己的访问资源的权限。除一般用 户外,RACF 还可以定义具有 SPECIAL、OPERATIONS、AUDIT 属性的用户,它们各自具有 一定的系统管理、特殊访问权限和审计功能。
具有SPECIAL属性的用户有权管理系统中的安全。这种用户可以在RACF数据库中定 义、改变、查看、删除 PROFILE。这种用户并没有权限直接访问资源,但可以控制其他 用户的访问。SPECIAL 属性也可授予一个特定的用户,使他只具有管理某个组或其子组 的成员,这个属性称之为GROUP SPECIAL。
具有 OPERATION 属性的用户负责维护系统中的磁盘,可对数据集进行 COPY、编目 等工作,可看机密数据,甚至可改变删除数据集。
具有AUDIT属性的用户则可以规定系统的审计策略。
用户的SPECIAL、AUDIT、OPERATION三种属性可以赋予特定的某一个用户,使他只 在某一个范围内有这个权力。这样可以实现用户或组的放权管理。只在特定范围内有效
的这三种属性分别称为:GROUP SPECIAL、GROUP AUDIT、GROUP OPERATION.属性。
利用RACF可以控制对系统及系统中的子系统的访问。这些子系统包括JES,TSO, IMS,CICS,SMS,DB2,VTAM和APPC会话。也可控制对资源的访问,它们包括:终端,
控制台,数据(编目、数据集等),程序,交易等。
用户或组在使用资源时是否会得到授权取决于以下因素:
1) 用户标识(USERID):当用户被创建时,必须要有一个1到8字符的用户标识。 用户登录时使用这个标识及口令证实用户的身份。当用户使用资源时,RACF使
用这个标识确定用户是否有权访问资源。
2) 属性:用户属性确定了访问系统时的特权限制。它分为用户属性和组属性两类。 用户属性主要有:SPECIAL,AUDITOR,OPERATIONS,CLAUTH,REVOKE 等等。组
属性指当一个用户连接到一个组中时,连接的属性。主要有:USE,CREATE, CONNECT,JOIN。
3) 安全标识:每一个用户和资源的PROFILE都有一个安全标识。当用户访问一个
资源时,RACF 将资源与用户的安全标识相比较,如果用户的安全标识低于资源 的安全标识,则直接拒绝用户的访问。
4) 访问授权:访问授权有以下几种:NONE,EXECUTE,READ,UPDATE,CONTROL,
ALTER。其权限由低至高,逐次增加。 系统安全管理员或授权的用户可以定义用户、组、保护资源。RACF 使用 PROFILE
定义用户和组、保护资源。每一个PROFILE都有一个拥有者,或者是用户,或者是组。
建议PROFILE的拥有者是组。如果建立PROFILE时未指定拥有者,则默认的拥有者是建 立PROFILE的用户。
所有用户、组、数据集及其他资源的PROFILE 保存在RACF数据库中。因此每建立
一个PROFILE,实际上在RACF数据库中写入了一项。所以它应当有一个备份,有问题时 可以切换到备份。系统中也提供了一些工具,利用这些工具可以将RACF数据库中的内容
复制到 DB2 或其他数据处理子系统中,也可以将 DB2 或其它数据处理子系统中保存的
RACF数据恢复到RACF数据集中。
每一个PROFILE均属于RACF中的某一类,例如,保护终端的PROFILE属于TERMINAL 类,用户 PROFILE 则属于 USER 类。RACF 中的类至少有几十个,限于篇幅,本书只涉及
到其中的一部分,感兴趣的读者可参考 IBM 红皮书《OS/390 Security Server(RACF) System Programer’s Guide》。
PROFILE的类型有以下几种:
-用户PROFILE
-组PROFILE
-数据集PROFILE
-通用资源PROFILE
用户PROFILE和组PROFILE记录了用户或组的安全特性。
数据集PROFILE和通用资源PROFILE则描述了数据集和通用资源的访问权限。这些 访问权限分布在PROFILE中的两个地方,一个叫UACC,另一个叫访问列表。UACC表示一
般的访问权限,也就是说访问列表中没有记录的用户的访问权限。而访问列表则特别指 出特定的用户或组具有什么样的权限。在RACF中权限可以是以下几种:
-ALTER:对资源或数据集具有完全的控制。如果这一权限出现在一个通用 PROFILE
中,则表示不仅可以读、写、执行此PROFILE保护的数据集或资源,还可以创建此PROFILE 保护的数据集或资源。
-UPDATE:可读可写。
-READ:可读。
-EXECUTE:可执行。
-NONE:无任何权限。
PROFILE按其管理的内容的范围又可分为通用PROFILE和分散PROFILE:
通用PROFILE:PROFILE名字中可以有通配符,一个PROFILE可以覆盖多个名字类似 的资源,因此这种PROFILE允许你定义一个PROFILE保护多个名字类似的资源。显然,
使用这种 PROFILE 可以大幅度减少 RACF 数据库中的项目,方便管理。当然用一个这种 PROFILE保护的所有资源,安全要求是一样的。
分散PROFILE:PROFILE的名字预备保护的对象名字完全一致,每一个这种PROFILE
只对应一个被保护的对象,因此每一个PROFILE只保护一个资源。 RACF的管理方式可以有两种:
集中式:系统安全管理员管理所有的安全事务。
分散式:系统安全管理员放权给若干用户,使他们承担一部分安全管理工作。 可以通过命令、TSO的ISPF菜单及JCL使用RACF。最常用的方式是使用TSO的ISPF
菜单,但如果一次建立很多PROFILE时,采用JCL批处理的方式会更方便。本书主要以
命令方式讲述,但使用的命令中的选项或参数均可在菜单中找到。使用JCL批处理方式 的JCL示例如下:
//jobname JOB ...
//STEP1 EXEC PGM=IKJEFT01,DYNAMNBR=20
//SYSTSPRT DD SYSOUT=A
//SYSTSIN DD * ADDGROUP PROJECTA ADDUSER (PAJ5 ESH25)
ADDSD 'PROJECTA.XYZ.DATA'
PERMIT 'PROJECTA.XYZ.DATA' ID(PAJ5) ACCESS(UPDATE)
/*