05 RACF概述.docx
- 文档编号:10821313
- 上传时间:2023-05-27
- 格式:DOCX
- 页数:61
- 大小:91.93KB
05 RACF概述.docx
《05 RACF概述.docx》由会员分享,可在线阅读,更多相关《05 RACF概述.docx(61页珍藏版)》请在冰点文库上搜索。
05RACF概述
第六章RACF概述
6.1概论
RACF(ResourceAccessControlFacility)是OS/390的安全子系统。
它可以证实一个用户,并且保护数据不会被有意或无意地破坏、修改、泄漏或使用。
RACF有四大功能:
1.证实一个用户
RACF使用用户ID和口令来证实一个用户。
当一个用户试图登录时,RACF将检查这个用户是否在RACF中有定义,口令是否有效,用户是否已被挂起,用户是否被授权使用这个终端,用户是否被授权使用这个应用,用户是否允许此时登录,终端是否允许此时登录。
所有的安全检查通过后,用户才会被允许登录进入系统。
定义用户时,系统管理员会给用户一个暂时的口令,用户登录后RACF会强制用户改变自己的口令,这样系统中的任何用户都不会知道用户的口令,除非用户自己泄漏。
当用户忘了自己的口令时,系统管理员会给他改变口令,这样当用户再次登录时,又需要强制改变自己的口令。
当一个MVS用户已登录在系统中时,他也不能再次登录,只有在LOGOFF后才能在登录。
每一个RACF定义的用户均有一个PROFILE,其内容有用户ID、拥有者、口令、属性、SECURITYCLASSIFICATION、组及段。
在RACF中用户可划分为组。
一个用户组通常是许多具有类似权限的用户的集合。
组主要是为了管理方便,因为它可以简化PROFILE中的访问列表。
一个用户可同时属于多个组,当一个用户成为一个组中的成员时,我们说这个用户连接到这个组中,同时他也具有了这个组的权限。
2.资源授权检查
当一个用户企图访问一个特定的资源时,系统会调用RACF去确定用户是否允许使用该资源。
RACF不仅控制用户对资源的访问,而且还控制用户如何去访问资源,比如是只读还是可读可写,或者必须通过某种手段(诸如通过特定的程序)访问。
RACF可用于控制访问许多类的资源,诸如MVS数据集、终端、控制台、CICS和IMS交易甚至程序等。
RACF对资源的控制也是通过PROFILE来进行,资源PROFILE的主要内容有:
PROFILE名、拥有者、UACC(通用访问权限)、访问控制列表、SECURITYCLASSIFICATION及审计信息。
资源授权检查的流程见图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属性也可授予一个特定的用户,使他只具有管理某个组或其子组的成员,这个属性称之为GROUPSPECIAL。
具有OPERATION属性的用户负责维护系统中的磁盘,可对数据集进行COPY、编目等工作,可看机密数据,甚至可改变删除数据集。
具有AUDIT属性的用户则可以规定系统的审计策略。
用户的SPECIAL、AUDIT、OPERATION三种属性可以赋予特定的某一个用户,使他只在某一个范围内有这个权力。
这样可以实现用户或组的放权管理。
只在特定范围内有效的这三种属性分别称为:
GROUPSPECIAL、GROUPAUDIT、GROUPOPERATION.属性。
利用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/390SecurityServer(RACF)SystemProgramer’sGuide》。
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示例如下:
//jobnameJOB...
//STEP1EXECPGM=IKJEFT01,DYNAMNBR=20
//SYSTSPRTDDSYSOUT=A
//SYSTSINDD*
ADDGROUPPROJECTA
ADDUSER(PAJ5ESH25)
ADDSD'PROJECTA.XYZ.DATA'
PERMIT'PROJECTA.XYZ.DATA'ID(PAJ5)ACCESS(UPDATE)
/*
6.2用户和组的管理
6.2.1用户和组的定义
定义用户和组可以使用多种方式,其中包括RACF菜单、命令以及JCL作业。
PROFILE的拥有者可以是用户或组,建议属于组。
1.组的定义
RACF中组的结构类似于一个单位中的树状组织管理的结构。
也就是说,每一个组中可以有多个成员,组中的成员可以是用户,也可以是组。
一个组中可以有多个用户,当一个用户成为一个组中的成员时,我们称该用户连接到了这个组中。
一个用户也可以同时连接到多个组中。
SYS1组是系统安装后权限级别最高的组,因此它没有前趋组或拥有者。
一个组中最多可以有5900个用户。
一个组中的用户实际上代表了工作性质类似的一组用户,比如一个单位中的一个部门或小组。
在RACF中每一个组,除了SYS1以外,均有一个前趋组(父组)和拥有者和若干个子组。
定义一个组的用户必须具有以下权限之一:
(1)具有SPECIAL属性。
(2)具有GROUPSPECIAL属性,并且要定义的组的前趋组在你的管理范围之内。
(3)用户是要定义的组的前趋组的拥有者。
(4)具有要定义的组的前趋组的JOIN授权。
当你定义一个组时,你实际上在RACF数据库中创建了一个组PROFILE。
如图6.2所示,是组PROFILE的格式:
GROUPNAME
OWNER
SUPGROUP
DATA
TERMUACC
MODEL
DFP
OMVS
图6.2组PROFILE的格式
由图中可以看出,组PROFILE由RACF段、DFP段和OMVS段及其他段组成。
每个段又由若干个FIELD组成。
你可以使用LISTGRP命令列出组中各段的属性。
RACF段包含了RACF所需要的最基本的信息,它由以下FIELD组成:
*GROUP-NAME:
组的名字。
*OWNER:
组的拥有者。
组的拥有者可以是组的前趋组也可以是一个用户。
默认为定义这个组的用户。
拥有者最好是一个组而不是一个用户,因为如果是一个用户,当这个用户被删除后,或者离开了工作岗位,原拥有者的拥有者成为这个组的拥有者,可能会出现安全上的漏洞。
*SUPGROUP:
组的前趋组。
*TERMUACC或NOTERMUACC:
指示对终端的访问控制是否可以基于终端PROFILE的UACC
*MODEL:
创建新组时使用的模版PROFILE。
*DATA:
有关组的描述信息。
组PROFILE的DFP段含有对SMS管理的数据集默认的管理属性和DASD存储器特性。
要定义或改变组PROFILE中的DFP段,用户必须具有SPECIAL属性。
它有以下FIELD组成:
*DATAAPPL:
用户DFP数据应用标识。
*DATACLAS:
分配性数据集时使用的默认的DATACLASS.
*MGMTCLAS:
数据集分配后默认的MANAGEMENTCLASS.
*STORCLAS:
组默认的STORAGECLASS.
OMVS段由GIDFIELD组成,指示该组在OE环境下的组标号。
它是一个整数。
尽管不同的组可以分配相同的GID,但不建议这样。
不同的组应该有不同的GID。
因为在OE中,相同的GID被认为是同一个组,这样会引起安全上的漏洞。
要改变用户的PROFILE中的OMVS段的内容,用户应具有SPECIAL属性,并授权访问FIELD类中的GROUP.OMVS.*PROFILE或GROUP.OMVS.GID两个PROFILE之一。
组的名字是1-8个字符组成的字母(包括#、$、@)数字串,并且不得以数字开头。
组不能与组或用户重名。
使用组后,管理员可以把对资源的控制以组为单位来进行,即把组名放在该资源PROFILE的访问列表中即可。
因此资源PROFILE的访问列表变得简短而易于维护。
比如你如果希望多个用户可以访问某一资源时,若不使用组,你必须在这个资源PROFILE的访问列表中加入有关这几个用户的权限说明。
使用组后,你可以创建一个组,在资源PROFILE的访问列表中加入有关这组的权限说明,然后将这些用户连接到这个组中即可。
在用ADDGROUP创建一个组或用ALTGROUP改变一个组时,你可指定组PROFILE的拥有者。
如果不指定拥有者,则创建者成为拥有者。
组的拥有者(或连接到该组的具有GROUP-SPECIAL属性的用户)具有以下权限:
(1)定义新用户(当然应在USERCLASS中具有CLAUTH属性)
(2)把用户从组中删除或连接的组中。
(3)改变组的属性,放权其他用户管理该组。
(4)改变、显示、删除组的PROFILE。
(5)定义、删除、显示该组的子组。
可以使一个RACF组作为一个用户、组、数据集或通用资源PROFILE的拥有者。
任何一个用户如果以GROUPSPECIAL的属性连接到一个组中,则他具有该组拥有者的权限。
组中的每个用户都有特定的授权级别,也就是说,每一个用户在连接到一个组中时,必须以一定的授权级别连接进来,这些授权级别是:
USE:
用户可以在组的权限内访问资源。
这是用户连接到一个组中的最低授权级别也是默认的授权级别,也就是说用户可以访问该组用户被授权访问的资源。
CREATE:
用户可以创建新的属于组的数据集并且控制这些数据集的访问权限。
CONNECT:
用户可以把其他用户连接到组中,并具有USE、CREATE及CONNECT授权。
JOIN:
用户可以创建新的组和用户,新创建的组成为该组的子组。
当然,要创建新用户,具有JOIN授权的用户还需要在USERCLASS具有CLAUTH属性。
显然,这四个授权级别以USE、CREATE、CONNECT、JOIN为顺序,其中JOIN级别最高,USE级别最低。
一般来讲,高级别的授权包含了低级别授权的权限。
定义一个组的命令格式如下:
ADDGROUP/AG(组名)DATA(‘注释’)[DFP([DATAAPPL(应用名)][DATACLA(DATACLASS名)][MGMTCLAS(MANAGEMENTCLASS名)][STORCLAS(STORECLASS名)][MODEL(模版名)])][OMVS([GID(组标识)])][OWER(用户或组名)][SUPGROUP(组名)][TERMUACC/NOTERMUACC]
其中,命令格式中出现的各段的内容大部分我们在前面已讲过,在此不再另行说明。
在此我们只讨论以前我们没有说明的内容。
注释是说明性的东西,对安全管理没有太大的作用,仅仅说明该用户的一些额外信息。
MODEL(模版名):
指示创建此PROFILE时,从指定的模版PROFILE复制信息到此PROFILE。
TERMUACC/NOTERMUACC:
一个组如果具有NOTERMUACC属性,则这个组的成员只能从RACF保护的并且用户授权登录的终端上登录,而不能基于终端的UACC。
如果具有TERMUACC属性,则无此限制。
定义一个组的步骤:
步骤1:
确定组的前趋组、组名、拥有者,如果系统中用RACF保护终端并且组中的用户限制使用特定的终端,创建组时应指定NOTERMUACC。
如果安装了DFSMS,则在组的DFP段中指定特定的初始值。
步骤2:
创建组PROFILE。
例如:
创建一个组,组名是DEPTA,组的拥有者是ALLDEPT,该组是ALLDEPT的一个成员,可以使用如下命令:
ADDGROUPDEPTAOWNER(ALLDEPT)SUPGROUP(ALLDEPT)
步骤3:
连接合适的用户到组中。
多数用户只需具有USE授权即可,根据实际安全管理的要求,少数几个用户可具有高于USE的授权。
例如:
将STEVEN、LIZS和GENEK三个用户连接到组的DEPTA中,其中STEVEN和LIZS连接的属性是CONNECT,也就是说这两个用户可以将其它用户连接到DEPTA中;用户GENEK的连接属性是USE,所以仅仅是一般用户。
CONNECT(STEVEHLIZS)GROUP(DEPTA)OWNER(DEPTA)AUTHORITY(CONNECT)
CONNECTGENEKGROUP(DEPTA)OWNER(DEPTA)
步骤4:
如果组要拥有数据集,则创建一个通用的数据集PROFILE。
例如:
定义一个HLQ是DEPTA的PROFILE,其UACC是NONE,以保护该组所拥有的数据集。
ADDSD'DEPTA.**'UACC(NONE)
步骤5:
如果组需要访问RACF保护的资源,则授权给该组。
例如:
允许该组成员对RACF.PROTECT.DATAPROFILE所保护的资源有读的权限,则发布如下命令:
PERMIT'RACF.PROTECT.DATA'ID(DEPTA)ACCESS(READ)
步骤6:
如果组需要访问OE的资源,则改变组的PROFILE,并赋予一个GID。
例如,使DEPTA组的成员登录到OE时,使用的GID是100,使用如下命令:
ALTGROUPDEPTAOMVS(GID(100))
删除一个组时,这个组首先必须要存在,并且没有子组,不再拥有组或用户,没有任何用户连接在其中。
其命令格式:
DELGROUP/DG(组名)
删除一个组的步骤:
步骤1:
移去组中的所有用户(REMOVE命令)。
步骤2:
找出所有与该组有关的数据集,一般来讲也就是HLQ是该组组名的数据集,把它们删除或改名。
步骤3:
把要删除的组的子组,其前趋组改为已存在的组。
步骤4:
如果组还拥有其他PROFILE,改变拥有者为其他组或用户。
步骤5:
在所有访问列表中删除该组。
步骤6:
用DELGROUP命令删除组的PROFILE。
改变一个组的属性所需要的权限与创建组命令一样,其命令格式如下:
ALTGROUP/ALG(组名)DATA(‘注释’)[DFP([DATAAPPL(应用名)][DATACLA(DATACLASS名)][MGMTCLAS(MANAGEMENTCLASS名)][STORCLAS(STORECLASS名)][MODEL(模版名)])][OMVS([GID(组标识)])][OWER(用户或组名)][SUPGROUP(组名)][TERMUACC/NOTERMUACC]
LISTGRP命令用于显示出组PROFILE的详细内容。
包括组的前趋组、拥有者、终端特性、所有子组、注释信息、模版PROFILE名、连接到该组中的用户信息(用户ID、用户在组中的授权、用户已该组作为当前连接的组进入系统的次数、用户的连接属性、挂起或RESUME的日期)以及DFP、OMVS段的信息。
要使用该命令,用户应具有以下权限之一:
(1)具有SPECIAL或AUDITOR属性
(2)在要显示的组中具有GROUPSPECIAL或GROUPAUDITOR属性。
(3)是组的拥有者。
(4)在组中具有JOIN或CONNECT权限。
其命令格式是:
LISTGRP/LG[(组名)/*][DFP][NORACF][OMVS]
以下是用LISTGRP命令列出某系统中SYS1组的内容:
INFORMATIONFORGROUPSYS1
SUPERIORGROUP=NONEOWNER=IBMUSER
NOINSTALLATIONDATA
NOMODELDATASET
TERMUACC
SUBGROUP(S)=SYSCTLGVSAMDSETADMINAPKOSASFTTY
OMVSGRPDCEGRPIMWEBEXTERNALEMPLOYEESPECIAL
SYSDATANOTESCMNGRP
USER(S)=ACCESS=ACCESSCOUNT=UNIVERSALACCESS=
IBMUSERJOIN006635READ
CONNECTATTRIBUTES=NONE
REVOKEDATE=NONERESUMEDATE=NONE
CICSUSERUSE000052NONE
CONNECTATTRIBUTES=NONE
REVOKEDATE=NONERESUMEDATE=NONE
SYSADMUSE000086NONE
CONNECTATTRIBUTES=NONE
REVOKEDATE=NONERESUMEDATE=NONE
SYSOPRUSE000000NONE
CONNECTATTRIBUTES=NONE
REVOKEDATE=NONERESUMEDATE=NONE
USERAUSE000310NONE
CONNECTATTRIBUTES=NONE
REVOKEDATE=NONERESUMEDATE=NONE
NODFPINFORMATION
OMVSINFORMATION
----------------
GID=0000000000
从以上列表中可以看出,系统中SYS1组没有前趋组,拥有者是IBMUSER,OE中的组ID是0,没有注释信息和模版数据集,具有TERMUACC属性。
组中有15个子组,它们是SYSCTLG、VSAMDSETADMIN、APK、OSASF、TTY、OMVSGRP、DCEGRP、IMWEB、EXTERNAL、EMPLOYEE、SPECIAL、SYSDATA、NOTES和CMNGRP,有5个用户,他们是IBMUSER、CICSUSER、SYSADM、SYSOPR、USERA。
2.用户的定义
定义一个用户就是在RACF数据库中创建一个用户PROFILE。
用户PROFILE由RACF段及DFP、TSO、CI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 05 RACF概述 RACF 概述
![提示](https://static.bingdoc.com/images/bang_tan.gif)