admin 管理员组文章数量: 1086019
2024年12月28日发(作者:mvc开发流程)
使用BART(任务)
2
3
4
5
示例5–2
100
承担主管理员角色,或成为超级用户。
主管理员角色拥有主管理员配置文件。要创建角色并将角色指定给用户,请参见《System
AdministrationGuide:BasicAdministration》中的第2章,“WorkingWiththeSolaris
ManagementConsole(Tasks)”。
安装Solaris软件之后,使用以下选项之一创建自定义清单:
I
通过指定子树:
#bartcreate-Rroot-directory
I
通过指定一个或多个文件名:
#bartcreate-Ifi
例如:
#bartcreate-I/etc/system/etc/passwd/etc/shadow
I
通过使用rules文件:
#bartcreate-rrules-file
检查清单内容。
保存清单以便将来使用。
通过指定子树创建清单
此示例说明了如何创建仅包含有关/etc/ssh子树中文件的信息的清单。
#bartcreate-R/etc/ssh
!Version1.0
!Saturday,November29,2003(14:05:36)
#Format:
#fnameDsizemodeacldirmtimeuidgid
#fnamePsizemodeaclmtimeuidgid
#fnameSsizemodeaclmtimeuidgid
#fnameFsizemodeaclmtimeuidgidcontents
系统管理指南:安全性服务•2006年9月
使用BART(任务)
#fnameLsizemodeacllnmtimeuidgiddest
#fnameBsizemodeaclmtimeuidgiddevnode
#fnameCsizemodeaclmtimeuidgiddevnode
/D51240755user::rwx,group::r-x,mask:r-x,other:r-x3f81eab903
/ssh_configF861100644user::rw-,group::r--,mask:r--,
other:r--3f81e5ca0e2348cd998182
/ssh_host_dsa_keyF668100600user::rw-,group::---,mask:---,
other:---3f81eab9005cc28cdc97e833069fd41ef89e4d9834
/ssh_host_dsa_602100644user::rw-,group::r--,mask:r--,
other:r--3f81eab90016118c736995a4e4754f5ab4f28cf917
/ssh_host_rsa_keyF883100600user::rw-,group::---,mask:---,
other:---3f81eaa2006ff17aa968ecb20321c448c89a8840a9
/ssh_host_rsa_222100644user::rw-,group::r--,mask:r--,
other:r--3f81eaa2009ea27617efc76058cb97aa2caa6dd65a
.
.
.
示例5–3
通过指定文件名自定义清单
此示例说明了如何创建仅列出有关系统上/etc/passwd和/etc/shadow文件的信息的清单。
#bartcreate-I/etc/passwd/etc/shadow
!Version1.0
!Monday,December15,2003(16:28:55)
#Format:
#fnameDsizemodeacldirmtimeuidgid
第5章•使用基本审计报告工具(任务)101
使用BART(任务)
示例5–4
102
#fnamePsizemodeaclmtimeuidgid
#fnameSsizemodeaclmtimeuidgid
#fnameFsizemodeaclmtimeuidgidcontents
#fnameLsizemodeacllnmtimeuidgiddest
#fnameBsizemodeaclmtimeuidgiddevnode
#fnameCsizemodeaclmtimeuidgiddevnode
/etc/passwdF542100444user::r--,group::r--,mask:r--,
other:r--3fcfd45b03d6
84554f85d1de06219d80543174ad1a
/etc/shadowF294100400user::r--,group::---,mask:---,
other:---3f8dc5a003fd
c3931c1ae5ee40341f3567b7cf15e2
下面以比较的方式列出了同一系统上/etc/passwd和/etc/shadow文件的ls-al命令的标
准输出。
#ls-al/etc/passwd
-r--r--r--1rootsys542Dec417:42/etc/passwd
#ls-al/etc/shadow
-r--------1rootsys294Oct1516:09/etc/shadow
通过使用Rules文件自定义清单
此示例说明了如何通过使用rules文件仅列出/etc目录中的文件来创建清单。同一个rules
文件还包括由bartcompare命令用于监视/etc/system文件的acl属性更改的指令。
I
使用文本编辑器创建仅列出/etc目录中文件的rules文件。
#Listinformationaboutallthefilesinthe/etcdirectory.
系统管理指南:安全性服务•2006年9月
使用BART(任务)
CHECKall
/etc
#Checkonlyaclchangesinthe/etc/systemfile
IGNOREall
CHECKacl
/etc/system
有关创建rules文件的更多信息,请参见第95页中的“BARTRules文件”。
I
使用已创建的rules文件创建控制清单。
#-file>l-manifest
!Version1.0
!Thursday,December11,2003(21:51:32)
#Format:
#fnameDsizemodeacldirmtimeuidgid
#fnamePsizemodeaclmtimeuidgid
#fnameSsizemodeaclmtimeuidgid
#fnameFsizemodeaclmtimeuidgidcontents
#fnameLsizemodeacllnmtimeuidgiddest
#fnameBsizemodeaclmtimeuidgiddevnode
#fnameCsizemodeaclmtimeuidgiddevnode
/etc/systemF1883100644user::rw-,group::r--,mask:r--,
other:r--3f81db6103
I
在每次需要监视系统的更改时创建测试清单。使用相同的bart选项和同一个rules文件
并按照与控制清单完全相同的方式来准备测试清单。
第5章•使用基本审计报告工具(任务)103
使用BART(任务)
M
1
2
3
4
5
示例5–5
104
I
使用同一个rules文件比较清单。
如何比较同一系统在一段时间内的清单
当您要监视同一系统在一段时间内的文件层更改时,请使用此过程。此类清单可以帮助找
到损坏或异常的文件,检测安全性破坏,或对系统的性能问题进行疑难解答。
承担主管理员角色,或成为超级用户。
主管理员角色拥有主管理员配置文件。要创建角色并将角色指定给用户,请参见《System
AdministrationGuide:BasicAdministration》中的第2章,“WorkingWiththeSolaris
ManagementConsole(Tasks)”。
安装Solaris软件之后,创建系统上要监视的文件的控制清单。
#bartcreate-R/etc>control-manifest
在每次需要监视系统更改时创建一个在准备方式上与控制清单完全相同的测试清单。
#bartcreate-R/etc>test-manifest
将控制清单与测试清单进行比较。
#bartcompareoptionscontrol-manifesttest-manifest>bart-report
-r此比较的rules文件的名称。将-r选项和–一起使用意味着从标准输入
中读取指令。
-i允许用户从命令行设置全局IGNORE指令。
-p生成用于进行程序分析的标准非本地化输出的程序模式。
control-manifest控制系统的bartcreate命令输出。
test-manifest测试系统的bartcreate命令输出。
检查BART报告中的异常情况。
比较同一系统在一段时间内的清单
此示例说明了如何监视两个时间点之间/etc目录中发生的更改。此类比较使您可以迅速确
定系统上的重要文件是否受到威胁。
I
创建控制清单。
#bartcreate-R/etc>l.121203
!Version1.0
!Friday,December12,2003(08:34:51)
系统管理指南:安全性服务•2006年9月
使用BART(任务)
#Format:
#fnameDsizemodeacldirmtimeuidgid
#fnamePsizemodeaclmtimeuidgid
#fnameSsizemodeaclmtimeuidgid
#fnameFsizemodeaclmtimeuidgidcontents
#fnameLsizemodeacllnmtimeuidgiddest
#fnameBsizemodeaclmtimeuidgiddevnode
#fnameCsizemodeaclmtimeuidgiddevnode
/D409640755user::rwx,group::r-x,mask:r-x,other:r-x3fd9dfb403
/.cpr_configF2236100644user::rw-,group::r--,mask:r--,other:r--
3fd9991f00
67cfa2c830b4ce3e112f38c5e33c56a2
/.0100600user::rw-,group::---,mask:---,other:---3f81f14d
01d41
d8cd98f00b204e9800998ecf8427e
/.javaD51240755user::rwx,group::r-x,mask:r-x,other:r-x3f81dcb502
/.java/.systemPrefsD51240755user::rwx,group::r-x,mask:r-x,
other:r-x3f81dcb7
.
.
.
I
在需要监视/etc目录的更改时创建测试清单。
#bartcreate-R/etc>.121503
Version1.0
第5章•使用基本审计报告工具(任务)105
使用BART(任务)
106
!Monday,December15,2003(08:35:28)
#Format:
#fnameDsizemodeacldirmtimeuidgid
#fnamePsizemodeaclmtimeuidgid
#fnameSsizemodeaclmtimeuidgid
#fnameFsizemodeaclmtimeuidgidcontents
#fnameLsizemodeacllnmtimeuidgiddest
#fnameBsizemodeaclmtimeuidgiddevnode
#fnameCsizemodeaclmtimeuidgiddevnode
/D409640755user::rwx,group::r-x,mask:r-x,other:r-x3fd9dfb403
/.cpr_configF2236100644user::rw-,group::r--,mask:r--,other:r--
3fd9991f00
67cfa2c830b4ce3e112f38c5e33c56a2
/.0100600user::rw-,group::---,mask:---,other:---
3f81f14d01d41d8cd98f00b204e9800998ecf8427e
/.javaD51240755user::rwx,group::r-x,mask:r-x,other:r-x3f81dcb502
/.java/.systemPrefsD51240755user::rwx,group::r-x,mask:r-x,
other:r-x3f81dcb702
/.java/.systemPrefs/.0100644user::rw-,group::r--
,mask:r--,other:
r--3f81dcb502d41d8cd98f00b204e9800998ecf8427e
/.java/.systemPrefs/.systemRootModFileF0100644user::rw-,
group::r--,mask:r--,
系统管理指南:安全性服务•2006年9月
使用BART(任务)
other:r--3f81dd0b02d41d8cd98f00b204e9800998ecf8427e
.
.
.
I
将控制清单与测试清单进行比较。
#.121503
/vfstab:
modecontrol:100644test:100777
aclcontrol:user::rw-,group::r--,mask:r--,other:r--test:user::rwx,
group::rwx,mask:rwx,other:rwx
上面的输出指示vfstab文件的权限自创建了控制清单以来已发生更改。此报告可以用于检
查拥有权、日期、内容或任何其他文件属性是否已发生变化。具备此类信息有助于跟踪可
能的文件篡改者和更改可能发生的时间。
M
如何比较不同系统的清单与控制系统的清单
您可以运行系统间比较,这样可以迅速确定在基准系统和其他系统之间是否存在任何文件
层差异。例如,如果您已经在基准系统上安装了特定版本的Solaris软件,并且需要了解其
他系统是否也安装了相同的软件包,则可以创建那些系统的清单,然后将测试清单与控制
清单进行比较。此类比较会列出与控制系统比较的每个测试系统在文件内容方面的任何差
异。
1
承担主管理员角色,或成为超级用户。
主管理员角色拥有主管理员配置文件。要创建角色并将角色指定给用户,请参见《System
AdministrationGuide:BasicAdministration》中的第2章,“WorkingWiththeSolaris
ManagementConsole(Tasks)”。
2
安装Solaris软件之后,创建控制清单。
#bartcreateoptions>control-manifest
3
4
保存控制清单。
在测试系统上,使用相同的bart选项创建清单,并将输出重定向到文件中。
#bartcreateoptions>test1-manifest
第5章•使用基本审计报告工具(任务)107
使用BART(任务)
5
6
7
8
9
示例5–6
108
为测试清单选择一个特殊而有意义的名称。
将测试清单一直保存在系统的中心位置,直至准备比较清单为止。
需要比较清单时,将控制清单复制到测试清单的位置。或者,将测试清单复制到控制系
统。
例如:
#cpcontrol-manifest/net/test-server/bart/manifests
如果测试系统不是已挂载NFS系统,则使用FTP或一些其他某个可靠方法将控制清单复制
到测试系统。
将控制清单与测试清单进行比较并将输出重定向到文件。
#bartcomparecontrol-manifesttest1-manifest>
检查BART报告中的异常情况。
对于每个需要与控制清单比较的测试清单,重复执行步骤4至步骤9。
对于每个测试系统使用相同的bart选项。
比较不同系统的清单与控制系统的清单
此示例介绍了如何通过比较控制清单与不同系统的测试清单来监视/usr/bin目录内容的更
改。
I
创建控制清单。
#bartcreate-R/usr/bin>control-manifest.121203
!Version1.0
!Friday,December12,2003(09:19:00)
#Format:
#fnameDsizemodeacldirmtimeuidgid
#fnamePsizemodeaclmtimeuidgid
#fnameSsizemodeaclmtimeuidgid
#fnameFsizemodeaclmtimeuidgidcontents
#fnameLsizemodeacllnmtimeuidgiddest
系统管理指南:安全性服务•2006年9月
使用BART(任务)
#fnameBsizemodeaclmtimeuidgiddevnode
#fnameCsizemodeaclmtimeuidgiddevnode
/D1331240755user::rwx,group::r-x,mask:r-x,other:r-x3fd9e92502
/.sFuser::rwx,group::--x,mask:--x,other:--x
3f8dbfd6018ec7e52d8a35ba3b054a6394cbf71cf6
/ControlPanelL28120777-3f81dc7101jre/bin/ControlPanel
/HtmlConverterL25120777-3f81dcdc01bin/HtmlConverter
/acctcomF28300100555user::r-x,group::r-x,mask:r-x,other:r-x
3f6b575002d6e99b19c847ab4ec084d9088c7c7608
/activation-clientF9172100755user::rwx,group::r-x,mask:r-x,
other:r-x3f5cb90701b3836ad1a656324a6e1bd01edcba28f0
/adbF9712100555user::r-x,group::r-x,mask:r-x,other:r-x
3f6b5736025e026413175f65fb239ee628a8870eda
/addbibFuser::r-x,group::r-x,mask:r-x,other:r-x
3f6b580302a350836c36049febf185f78350f27510
.
.
.
I
为需要与控制系统进行比较的系统创建测试清单。
#bartcreate-R/usr/bin>system2-manifest.121503
!Version1.0
!Friday,December15,2003(13:30:58)
#Format:
#fnameDsizemodeacldirmtimeuidgid
第5章•使用基本审计报告工具(任务)109
使用BART(任务)
110
#fnamePsizemodeaclmtimeuidgid
#fnameSsizemodeaclmtimeuidgid
#fnameFsizemodeaclmtimeuidgidcontents
#fnameLsizemodeacllnmtimeuidgiddest
#fnameBsizemodeaclmtimeuidgiddevnode
#fnameCsizemodeaclmtimeuidgiddevnode
/D1331240755user::rwx,group::r-x,mask:r-x,other:r-x3fd9ea9c02
/.sFuser::rwx,group::--x,mask:--x,other:--x
3f8dbfd6018ec7e52d8a35ba3b054a6394cbf71cf6
/ControlPanelL28120777-3f81dc7101jre/bin/ControlPanel
/HtmlConverterL25120777-3f81dcdc01bin/HtmlConverter
/acctcomF28300100555user::r-x,group::r-x,mask:r-x,other:
r-x3f6b575002d6e99b19c847ab4ec084d9088c7c7608
.
.
.
I
需要比较清单时,将清单复制到同一位置。
#cpcontrol-manifest/net/l/bart/manifests
I
将控制清单与测试清单进行比较。
#>
/su:
gidcontrol:3test:1
/ypcat:
mtimecontrol:3fd72511test:3fd9eb23
系统管理指南:安全性服务•2006年9月
使用BART(任务)
上面的输出指示了/usr/bin目录中su文件的组ID与控制系统中的组ID不同。此信息有助
于确定测试系统上是否安装了不同版本的软件或是否有人篡改了文件。
M
如何通过指定文件属性自定义BART报告
此过程为可选过程,它介绍了如何通过从命令行指定文件属性来自定义BART报告。如果
创建了列出有关系统上所有文件或特定文件的信息的基准清单,则可以在需要监视特定目
录、子目录、一个或多个文件的更改的时运行bartcompare命令,并指定不同的属性。您
可以通过从命令行指定不同的文件属性来针对同一清单运行不同类型的比较。
1
2
确定需要监视的文件属性。
承担主管理员角色,或成为超级用户。
主管理员角色拥有主管理员配置文件。要创建角色并将角色指定给用户,请参见《System
AdministrationGuide:BasicAdministration》中的第2章,“WorkingWiththeSolaris
ManagementConsole(Tasks)”。
3
4
安装Solaris软件之后,创建控制清单。
在需要监视更改时创建测试清单。
按照准备控制清单的方式准备测试清单。
5
比较清单。
例如:
#bartcompare-idirmtime,lnmtime,mtimecontrol-manifest.121503
test-manifest.010504>.010504
请注意,使用逗号分隔在命令行语法中指定的各个属性。
6
检查BART报告中的异常情况。
M
如何通过使用Rules文件自定义BART报告
此过程也是可选过程,它介绍了如何通过使用rules文件作为bartcompare命令的输入来自
定义BART报告。通过使用rules文件,可以自定义BART报告,从而使您能够灵活地为多
个文件或子树指定多个属性。可以使用不同的rules文件来针对同一清单运行不同的比较。
1
承担主管理员角色,或成为超级用户。
主管理员角色拥有主管理员配置文件。要创建角色并将角色指定给用户,请参见《System
AdministrationGuide:BasicAdministration》中的第2章,“WorkingWiththeSolaris
ManagementConsole(Tasks)”。
第5章•使用基本审计报告工具(任务)111
使用BART(任务)
2
3
4
5
6
7
示例5–7
112
确定需要监视的文件和文件属性。
使用文本编辑器创建具有相应指令的rules文件。
安装Solaris软件之后,使用所创建的rules文件创建一个控制清单。
#bartcreate-rrules-file>control-manifest
创建在准备方式上与控制清单完全相同的测试清单。
#bartcreate-rrules-file>test-manifest
使用同一个rules文件比较控制清单与测试清单。
#bartcompare-rrules-filecontrol-manifesttest-manifest>
检查BART报告中的异常情况。
通过使用Rules文件自定义BART报告
以下rules文件同时包括bartcreate和bartcompare命令的指令。此rules文件指示bart
create命令列出有关/usr/bin目录内容的信息。此外,rules文件还指示bartcompare命令
仅跟踪同一目录中大小和内容方面的更改。
#Checksizeandcontentchangesinthe/usr/bindirectory.
#Thisrulesfileonlycheckssizeandcontentchanges.
#Seerulesfileexample.
IGNOREall
CHECKsizecontents
/usr/bin
I
使用已创建的rules文件创建控制清单。
#>usr_l-manifest.121003
I
在需要监视/usr/bin目录的更改时创建测试清单。
#>usr_-manifest.121103
I
使用同一个rules文件比较清单。
系统管理指南:安全性服务•2006年9月
BART清单、Rules文件和报告(参考)
#_l-manifest
usr_-manifest
I
检查bartcompare命令的输出。
/usr/bin/gunzip:add
/usr/bin/ypcat:
delete
在上面的输出中,bartcompare命令报告/usr/bin目录中的差异。此输出指示已删除了
/usr/bin/ypcat文件,并添加了/usr/bin/gunzip文件。
BART清单、Rules文件和报告(参考)
本节包含以下参考信息:
I
I
I
第113页中的“BART清单文件格式”
第114页中的“BARTRules文件格式”
第116页中的“BART报告”
BART清单文件格式
每个清单文件项均是单独的一行,具体取决于文件类型。每个项都以fname(即文件名)开
头。为了避免分析文件名中嵌入的特殊字符所导致的问题,已对文件名进行了编码。有关
更多信息,请参见第114页中的“BARTRules文件格式”。
后续字段表示以下文件属性:
type文件类型,可能值为:
I
I
I
I
I
I
I
B表示块设备节点
C表示字符设备节点
D表示目录
F表示文件
L表示符号链接
P表示管道
S表示套接字
size
mode
acl
以字节为单位的文件大小。
表示文件权限的八进制数。
文件的ACL属性。对于具有ACL属性的文件,它包含了acltotext()的输出。
第5章•使用基本审计报告工具(任务)113
BART清单、Rules文件和报告(参考)
114
uid此项的属主的数字用户ID。
gid此项的属主的数字组ID。
dirmtime目录上次修改的时间,以秒为单位,从1970年1月1日00:00:00UTC(国际协
调时间)开始计算。
lnmtime链接上次修改的时间,以秒为单位,从1970年1月1日00:00:00UTC开始计
算。
mtime文件上次修改的时间,以秒为单位,从1970年1月1日00:00:00UTC开始计
算。
contents文件校验和的值。此属性仅为常规文件指定。如果关闭上下文检查,或者无法
计算校验和,则此字段的值为–。
dest符号链接的目标。
devnode设备节点值。此属性仅用于字符设备文件和块设备文件。
有关BART清单的更多信息,请参见bart_manifest(4)手册页。
BARTRules文件格式
bart命令的输入文件为文本文件。这些文件由行组成,行中指定了要包括在清单中的文件
和要包括在报告中的文件属性。同一个输入文件可同时在两项BART功能中使用。工具将
忽略以#开头的行、空白行以及包含空格的行。
输入文件包含三种类型的指令:
I
子树指令,带有可选的模式匹配修饰符
I
CHECK指令
I
IGNORE指令
示例5–8
Rules文件格式
subtree3>[pattern3..]
subtree4>[pattern4..]
系统管理指南:安全性服务•2006年9月
BART清单、Rules文件和报告(参考)
示例5–8
Rules文件格式(续)
注–
所有指令均会按顺序进行读取,后面的指令可能会覆盖前面的指令。
每行都有一个子树指令。指令必须以绝对路径名开头,后面跟有零个或多个模式匹配语
句。
Rules文件属性
bart命令使用CHECK和IGNORE语句定义要跟踪或忽略的属性。每个属性都有一个关联的关
键字。
属性关键字有:
I
I
I
I
I
I
I
I
I
I
I
I
I
acl
all
contents
dest
devnode
dirmtime
gid
lnmtime
mode
mtime
size
type
uid
all关键字是指所有文件属性。
引用语法
BART所用的rules文件规范语言是用于表示非标准文件名的标准UNIX引用语法。嵌入的
制表符、空格、换行符或特殊字符以八进制格式编码,以保证工具能够读取文件名。这种
不一致的引用语法会阻止在命令管道中正确处理某些文件名,如包含嵌入的回车的文件
名。使用rules规范语言可表达复杂的文件名过滤条件,这些条件如果仅使用shell语法会很
难并且无法有效表达。
有关BARTrules文件或BART所用的引用语法的更多信息,请参见bart_rules(4)手册页。
第5章•使用基本审计报告工具(任务)115
BART清单、Rules文件和报告(参考)
116
BART报告
在缺省模式下,bartcompare命令会检查系统上安装的除已修改的目录时间标记(dirmtime)
外所有文件,如以下示例所示:
CHECKall
IGNOREdirmtime
如果提供了rules文件,则全局指令CHECKall和IGNOREdirmtime会按照以上顺序自动前置
到rules文件之前。
BART输出
将返回以下退出值:
0成功
1处理文件时出现非致命错误,如权限问题
>1出现致命错误,如无效的命令行选项
报告机制可提供两种类型的输出:详细输出和程序输出:
I
详细输出为缺省输出,已本地化并出现在多行中。详细输出已经过国际化并具有可读
性。如果使用bartcompare命令对两份系统清单进行比较,则会生成一个文件差异列
表。
例如:
filenameattributecontrol:xxxxtest:yyyy
filename在控制清单和测试清单中各不相同的文件的名称。
attribute在进行比较的清单中各不相同的文件属性的名称。xxxx是控制清单的属性
值,yyyy是测试清单的属性值。如果同一个文件中的多个属性出现差异,则
每个差异都将记录在单独的一行中。
下面是bartcompare命令的缺省输出的示例。/etc/passwd文件中出现属性差异。输出
指明size、mtime和contents属性已发生变化。
/etc/passwd:
sizecontrol:74test:81
mtimecontrol:3c165879test:3c165979
contentscontrol:daca28ae0de97afd7a6b91fde8d57afa
test:84b2b32c47207b48a6ec7
系统管理指南:安全性服务•2006年9月
BART清单、Rules文件和报告(参考)
I
如果在运行bartcompare命令时使用-p选项,则会生成程序输出。此输出以适合程序操
作的格式生成。程序输出可以由其他程序轻松分析并且旨在用作其他工具的输入。
例如:
filenameattributecontrol-valtest-val[attributecontrol-valtest-val]*
filename
attributecontrol-valtest-val
与缺省格式中的filename属性相同
每个文件在控制清单和测试清单中不同的文件属性的说明
有关bart命令支持的属性的列表,请参见第115页中的“Rules文件属性”。
有关BART的更多信息,请参见bart(1M)手册页。
第5章•使用基本审计报告工具(任务)117
118
第
控制对文件的访问(任务)
6
6章
本章介绍如何保护Solaris操作系统(SolarisOperatingSystem,SolarisOS)中的文件,还将介绍
如何防范其权限可能危及系统安全的文件。
以下是本章中信息的列表:
I
I
I
I
I
I
I
第119页中的“使用UNIX权限保护文件”
第125页中的“使用访问控制列表保护文件”
第127页中的“防止可执行文件危及安全”
第127页中的“保护文件(任务列表)”
第128页中的“使用UNIX权限保护文件(任务列表)”
第134页中的“使用ACL保护文件(任务列表)”
第140页中的“防止程序受到安全风险(任务列表)”
使用UNIX权限保护文件
通过UNIX文件权限和ACL可保证文件安全。带sticky位的文件和可执行文件要求特殊的安
全措施。
用于查看和保证文件安全的命令
下表给出了用于监视以及保证文件和目录安全的命令。
表6–1
保证文件和目录安全的命令
命令说明手册页
ls
chown
列出目录中的文件及其有关信息。
更改文件的拥有权。
ls(1)
chown(1)
119
使用UNIX权限保护文件
表6–1
保证文件和目录安全的命令
命令说明
(续)
手册页
chgrp
chmod
更改文件的组拥有权。
更改文件的权限。可以使用符号模式(使用字母和符号)或绝对模
式(使用八进制数字)更改文件的权限。
chgrp(1)
chmod(1)
文件和目录的拥有权
传统UNIX文件权限可以为三类用户指定拥有权:
I
用户-文件或目录的属主,通常为创建该文件的用户。文件的属主可以决定谁拥有读取
文件、写入文件(对文件进行更改)或执行文件(如果该文件为命令)的权限。
组-一组用户的成员。
其他用户-所有其他不是文件属主和组成员的用户。
I
I
文件属主通常可以指定或修改文件权限。此外,具有管理功能的用户或角色(如超级用户
或主管理员角色)可以更改文件的拥有权。要覆盖系统策略,请参见示例6–2。
文件可以是七种类型之一。每种类型由一个符号显示:
-(减号)
b
c
d
l
s
D
P
文本或程序
块特殊文件
字符特殊文件
目录
符号链接
套接字
门
命名管道(FIFO)
UNIX文件权限
下表列出并说明了可以为文件或目录的每类用户授予的权限。
表6–2
文件和目录权限
符号权限对象说明
r读文件指定的用户可以打开和读取文件内容。
120系统管理指南:安全性服务•2006年9月
使用UNIX权限保护文件
表6–2
文件和目录权限
符号权限对象
(续)
说明
目录
w写文件
目录
x执行文件
目录
-拒绝文件和目
录
指定的用户可以列出目录中的文件。
指定的用户可以修改文件的内容或删除该文件。
指定的用户可以在目录中添加文件或链接。这些用户也可以删除
目录中的文件或链接。
指定的用户可以执行文件(如果该文件为程序或shell脚本)。这
些用户也可以使用一个exec(2)系统调用来运行程序。
指定的用户可以打开或执行目录中的文件。这些用户也可以使该
目录以及该目录下的目录成为当前目录。
指定的用户无法读写或执行文件。
这些文件权限可应用于常规文件,也可应用于特殊文件(如设备、套接字和命名管道
(FIFO))。
对于符号链接,所应用的权限为链接指向的文件权限。
通过对目录设置受限文件权限,可以保护该目录及其子目录中的文件。但是请注意,超级
用户有权访问系统中的所有文件和目录。
特殊文件权限(setuid、setgid和Sticky位)
可执行文件和公共目录可以使用三种特殊类型的权限:setuid、setgid和sticky位。设置这
些权限之后,运行可执行文件的任何用户都应采用该可执行文件属主(或组)的ID。
设置特殊权限时必须非常小心,因为特殊权限会带来安全风险。例如,通过执行将用户ID
(userID,UID)设置为0(root的UID)的程序,用户可以获取超级用户功能。此外,所有
用户可以为其拥有的文件设置特殊权限,这会带来其他安全问题。
应对系统中未经授权使用setuid权限和setgid权限获取超级用户功能的情况进行监视。可
疑权限为用户而不是root或bin授予管理程序的拥有权。要搜索并列出所有使用此特殊权
限的文件,请参见第140页中的“如何使用特殊文件权限查找文件”。
setuid权限
对可执行文件设置setuid权限时,将对运行该文件的进程授予基于文件属主的访问权限。
该访问权限不是基于正在运行可执行文件的用户。使用此特殊权限,用户可以访问通常只
有属主才可访问的文件和目录。
例如,passwd命令的setuid权限使用户可以更改口令。拥有setuid权限的passwd命令与
以下类似:
-r-sr-sr-x3rootsys28144Jun1712:02/usr/bin/passwd
121第6章•控制对文件的访问(任务)
使用UNIX权限保护文件
此特殊权限会带来安全风险。一些确定的用户甚至可以在setuid进程执行完毕后,找到保
持由该进程授予他们的权限的方法。
注–
在程序中使用具有保留UID(0–100)的setuid权限可能无法正确设置有效的UID。请使
用shell脚本或避免将保留的UID用于setuid权限。
setgid权限
setgid权限与setuid权限类似。可将进程的有效组ID(groupID,GID)更改为拥有该文件的
组,并基于授予该组的权限对用户授权访问权限。/usr/bin/mail命令拥有setgid权限:
-r-x--s--x1rootmail67504Jun1712:01/usr/bin/mail
将setgid权限应用于目录时,该目录中已创建的文件将属于该目录所属于的组。这些文件
不属于创建进程所属于的组。在目录中拥有写和执行权限的任何用户都可以在其中创建文
件。但是,文件将属于拥有该目录的组,而不是用户所属于的组。
应对系统中未经授权使用setgid权限获取超级用户功能的情况进行监视。可疑权限为非常
规组而不是root或bin授予对此类程序的访问权限。要搜索并列出所有使用此权限的文
件,请参见第140页中的“如何使用特殊文件权限查找文件”。
Sticky位
sticky位是保护目录中文件的权限位。如果对目录设置了sticky位,则只有文件属主、目录
属主或特权用户才可以删除文件。root用户和主管理员角色即是特权用户。sticky位禁止用
户从公共目录(如/tmp)中删除其他用户的文件:
drwxrwxrwt7rootsys400Sep313:37tmp
在TMPFS文件系统中设置公共目录时,务必手动设置sticky位。有关说明,请参见示例
6–5。
缺省umask值
创建文件或目录时,将使用一组缺省权限进行创建。系统缺省值为空。文本文件拥有666
权限,该权限对所有用户授予读写权限。目录和可执行文件拥有777权限,该权限对所有
用户授予读写和执行权限。通常,用户会覆盖其/etc/profile文件、.cshrc文件或.login
文件中的系统缺省值。
由umask命令指定的值将从缺省值中减去。此进程的作用是以chmod命令授予权限的相同方
式拒绝这些权限。例如,chmod022对组和其他用户授予写权限。umask022命令拒绝组和
其他用户的写权限。
下表给出了一些典型umask设置及其对可执行文件的影响。
122系统管理指南:安全性服务•2006年9月
使用UNIX权限保护文件
表6–3
不同安全级别的umask设置
安全级别umask设置禁用的权限
许可(744)
中等(740)
中等(741)
严重(700)
022
027
026
077
w(组和其他用户)
w(组),rwx(其他用户)
w(组),rw(其他用户)
rwx(组和其他用户)
有关设置umask值的更多信息,请参见umask(1)手册页。
文件权限模式
使用chmod命令,可以更改文件的权限。要更改文件的权限,您必须是超级用户或是文件或
目录的属主。
可以使用chmod命令按照以下两种模式之一设置权限:
I
绝对模式-使用数字表示文件权限。使用绝对模式更改权限时,由八进制模式数字表示
每个三元字节权限。绝对模式是设置权限的最常用方法。
符号模式-使用字母和符号的组合来添加或删除权限。
I
下表列出了在绝对模式下设置文件权限的八进制值。可按顺序以三个一组的形式,使用这
些数字来设置属主、组和其他用户的权限。例如,值644为属主设置读写权限,为组和其
他用户设置只读权限。
表6–4
在绝对模式下设置文件权限
八进制值设置文件权限权限说明
0
1
2
3
4
5
6
7
---
--x
-w-
-wx
r--
r-x
rw-
rwx
无权限
仅执行权限
只写权限
写和执行权限
只读权限
读和执行权限
读写权限
读写和执行权限
下表列出了用于在符号模式下设置文件权限的符号。符号可以指定要设置或更改其权限的
用户、要执行的操作,以及要指定或更改的权限。
第6章•控制对文件的访问(任务)123
使用UNIX权限保护文件
表6–5
在符号模式下设置文件权限
符号功能说明
u
g
o
a
=
+
-
r
w
x
l
s
t
who
who
who
who
operator
operator
operator
permissions
permissions
permissions
permissions
permissions
permissions
用户(属主)
组
其他用户
所有
赋值
添加
删除
读
写
执行
强制锁定,setgid位打开,组执行位关闭
setuid或setgid位打开
Sticky位打开,对于其他用户,执行位打开
功能列中的名称whooperatorpermissions指定用于更改文件或目录的权限的符号。
who
operator
permissions
指定要更改其权限的用户。
指定要执行的操作。
指定要更改的权限。
可以在绝对模式或符号模式下设置文件的特殊权限。但是,必须使用符号模式设置或删除
目录的setuid权限。在绝对模式下,通过在权限三元字节的左侧添加新的八进制值,可设
置特殊权限。下表列出了用于对文件设置特殊权限的八进制值。
表6–6
在绝对模式下设置特殊文件权限
八进制值特殊文件权限
1
2
4
Sticky位
setgid
setuid
124系统管理指南:安全性服务•2006年9月
使用访问控制列表保护文件
使用访问控制列表保护文件
传统UNIX文件保护可为以下三类用户提供读写和执行权限:文件属主、文件组和其他用
户。访问控制列表(AccessControlList,ACL)通过允许您执行以下操作来提供更好的文件安
全性:
I
I
为文件属主、组、其他用户、特定用户和特定组定义文件权限
为上面的每一种类别定义缺省权限
例如,如果想要组中的每个用户都能够读取某文件,则只需要授予该组对该文件的读取权
限即可。现在,假设您希望组中只有一个用户能够写入该文件。标准UNIX不提供该级别
的文件安全性。但是,ACL可提供此级别的文件安全性。
ACL项定义文件的ACL。这些项通过setfacl命令设置。ACL项由以下字段组成并使用冒
号进行分隔:
entry-type:[uid|gid]:perms
entry-type
uid
gid
perms
设置文件权限的ACL项的类型。例如,entry-type可以是user(文件属主)或
mask(ACL掩码)。有关ACL项的列表,请参见表6–7和表6–8。
用户名或用户ID(userID,UID)。
组名或组ID(groupID,GID)。
表示entry-type中设置的权限。perms可以由符号字符rwx或八进制数字表示。
这些数字与用于chmod命令的数字相同。
在以下示例中,ACL项为用户stacey设置读写权限。
user:stacey:rw-
注意–
仅UFS文件系统支持UFS文件系统属性,例如ACL。因此,如果将具有ACL项的文
件恢复或复制到/tmp目录(通常挂载为TMPFS文件系统)中,则这些ACL项将丢失。使
用/var/tmp目录临时存储UFS文件。
文件的ACL项
下表列出了对文件设置ACL时可以使用的有效ACL项。前三个ACL项提供基本的UNIX文
件保护。
表6–7
文件的ACL项
ACL项说明
u[ser]::perms文件属主权限。
第6章•控制对文件的访问(任务)125
使用访问控制列表保护文件
表6–7
文件的ACL项
ACL项
(续)
说明
g[roup]::perms
o[ther]:perms
m[ask]:perms
文件组权限。
文件属主或文件组成员之外的用户的权限。
ACL掩码。掩码项表示允许用户(属主除外)和组拥有的最大权限。掩码是
一种可快速更改所有用户和组的权限的方法。
例如,mask:r--掩码项表示,用户和组只能拥有读取权限,即使他们可能拥
有写和执行权限。
u[ser]:uid:perms
g[roup]:gid:perms
特定用户的权限。对于uid,可以指定用户名或数字UID。
特定组的权限。对于gid,可以指定组名或数字GID。
目录的ACL项
除表6–7中说明的ACL项外,还可以对目录设置缺省ACL项。在具有缺省ACL项的目录中
创建的文件或目录将具有与缺省ACL项相同的ACL项。表6–8列出了目录的缺省ACL项。
首次为特定用户和组设置目录的缺省ACL项时,还必须为文件属主、文件组、其他用户和
ACL掩码设置缺省ACL项。这些项是必需的。这些项是下表中前四个缺省ACL项。
表6–8
目录的缺省ACL项
缺省ACL项说明
d[efault]:u[ser]::perms
d[efault]:g[roup]::perms
d[efault]:o[ther]:perms
d[efault]:m[ask]:perms
d[efault]:u[ser]:uid:perms
d[efault]:g[roup]:gid:perms
缺省文件属主权限。
缺省文件组权限。
文件属主或文件组成员之外的用户的缺省权限。
缺省ACL掩码。
特定用户的缺省权限。对于uid,可以指定用户名或数字UID。
特定组的缺省权限。对于gid,可以指定组名或数字GID。
用于管理ACL的命令
以下命令可管理文件或目录的ACL。
setfacl命令
getfacl命令
126
设置、添加、修改和删除ACL项。有关更多信息,请参见setfacl(1)手册
页。
显示ACL项。有关更多信息,请参见getfacl(1)手册页。
系统管理指南:安全性服务•2006年9月
保护文件(任务列表)
防止可执行文件危及安全
在将可执行栈的权限设置为读写和执行时,很多安全错误与缺省可执行栈有关。虽然允许
栈拥有执行权限,但大多数程序可以在不使用可执行栈的情况下正常运行。
使用noexec_user_stack变量,可以指定栈映射是否可执行。从Solaris2.6发行版开始,可
以使用该变量。缺省情况下,该变量被设置为零(64位应用程序中除外),这将提供兼容
ABI的行为。如果将该变量设置为非零值,则系统会将系统中每个进程的栈标记为可读
写,但不可执行。
设置此变量后,将向尝试执行其栈中代码的程序发送一个SIGSEGV信号。此信号通常将导致
程序终止,同时进行核心转储。这样的程序还将生成一条警告消息,该消息中包括违例程
序的名称、进程ID和运行该程序的用户的实际UID。例如:
[347]attempttoexecutecodeonstackbyuid555
将syslogkern功能设置为notice级别时,该消息由syslog守护进程记录。缺省情况下,
将在文件中设置此日志,这意味着,消息将发送到控制台和
/var/adm/messages文件。有关更多信息,请参见syslogd(1M)和(4)手册页。
syslog消息用于观察可能的安全问题。通过设置此变量,该消息还将确定依赖于可执行栈
(已被禁止,无法正确执行操作)的有效程序。如果不想记录任何消息,则可以在
/etc/system文件中将noexec_user_stack_log变量设置为零。即使未记录消息,SIGSEGV
信号仍可能会导致执行程序终止,同时进行核心转储。
如果希望程序显式将其栈标记为可执行,则可以使用mprotect()功能。有关更多信息,请
参见mprotect(2)手册页。
由于硬件限制,在大多数基于x86的系统中不能使用捕获和报告可执行栈问题的功能。
AMD64产品系列中的系统可以捕获和报告可执行栈问题。
保护文件(任务列表)
以下任务列表说明一组保护文件的过程。
任务说明参考
使用UNIX权限保护文件
使用ACL保护文件
查看文件的UNIX权限。使用UNIX权限保护文
件。
添加ACL,以便在比UNIX权限更周密的级别上
保护文件。
第128页中的“使用UNIX权限保
护文件(任务列表)”
第134页中的“使用ACL保护文件
(任务列表)”
第140页中的“防止程序受到安全
风险(任务列表)”
防止系统受到来自文件的安全风查找具有可疑拥有权的可执行文件。禁用可能会
险破坏系统的文件。
第6章•控制对文件的访问(任务)127
使用UNIX权限保护文件(任务列表)
使用UNIX权限保护文件(任务列表)
以下任务列表说明列出文件权限、更改文件权限,以及使用特殊文件权限保护文件的过
程。
任务参考
显示文件信息
更改文件拥有权
第128页中的“如何显示文件信息”
第129页中的“如何更改文件的属主”
第130页中的“如何更改文件的组拥有权”
更改文件权限第131页中的“如何在符号模式下更改文件权限”
第132页中的“如何在绝对模式下更改文件权限”
第133页中的“如何在绝对模式下更改特殊文件权限”
M
如何显示文件信息
使用ls命令显示有关目录中所有文件的信息。
键入以下命令以显示当前目录中所有文件的长列表。
%ls-la
◗
-l
-a
示例6–1
显示包括用户拥有权、组拥有权和文件权限的长格式。
显示所有文件,包括以点(.)开头的隐藏文件。
显示文件信息
在以下示例中,显示了/sbin目录中部分文件的列表。
%cd/sbin
%ls-la
total13456
drwxr-xr-x2rootsys
root
bin
root
512Sep114:11.
1024Sep115:40..
218188Aug1815:17autopush
21Sep114:11bpgetfile->...
drwxr-xr-x29root
-r-xr-xr-x
lrwxrwxrwx
1root
1root
128系统管理指南:安全性服务•2006年9月
使用UNIX权限保护文件(任务列表)
-r-xr-xr-x
-r-xr-xr-x
-r-xr-xr-x
-r-xr-xr-x
-r-xr-xr-x
-r-xr-xr-x
-r-xr-xr-x
-r-xr-xr-x
-r-xr-xr-x
.
.
.
1root
1root
1root
1root
1root
1root
2root
1root
1root
bin
bin
bin
bin
bin
sys
root
bin
sys
505556Aug2013:24dhcpagent
456064Aug2013:25dhcpinfo
272360Aug1815:19fdisk
824728Aug2013:29hostconfig
603528Aug2013:21ifconfig
556008Aug2013:21init
274020Aug1815:28jsh
238736Aug2119:46mount
7696Aug1815:20mountall
每一行按以下顺序显示了有关文件的信息:
I
I
I
I
I
I
I
I
文件的类型-例如,d。有关文件类型的列表,请参见第120页中的“文件和目录的拥
有权”。
权限-例如,r-xr-xr-x。有关说明,请参见第120页中的“文件和目录的拥有权”。
硬链接数-例如,2。
文件的属主-例如,root。
文件的组-例如,bin。
文件的大小(以字节为单位)-例如,7696。
创建文件的日期或上次更改文件的日期-例如,Aug1815:20。
文件名-例如,mountall。
M
如何更改文件的属主
文件属主、主管理员角色或超级用户可以更改任何文件的拥有权。
显示文件的权限。
%ls-lexample-file
-rw-r--r--1janedoestaff112640May2410:49example-file
1
第6章•控制对文件的访问(任务)129
使用UNIX权限保护文件(任务列表)
2
3
4
示例6–2
M
1
2
130
承担主管理员角色,或成为超级用户。
主管理员角色拥有主管理员配置文件。要创建角色并将角色指定给用户,请参见《System
AdministrationGuide:BasicAdministration》中的第2章,“WorkingWiththeSolaris
ManagementConsole(Tasks)”。
更改文件的属主。
#chownstaceyexample-file
检验文件的属主是否已更改。
#ls-lexample-file
-rw-r--r--1staceystaff112640May2608:50example-file
允许用户更改其他用户拥有的文件的拥有权
安全注意事项-您应该有合理理由通过将rstchown变量设置为零来覆盖系统安全策略。访
问系统的任何用户都可以更改系统中任何文件的拥有权。
在此示例中,在/etc/system文件中将rstchown变量的值设置为零。通过此设置,文件属
主可以使用chown命令将文件的拥有权更改为另一用户。通过此设置,文件属主还可以使用
chgrp命令将文件的组拥有权设置为非其所在的组。重新引导系统后,更改将生效。
setrstchown=0
有关更多信息,请参见chown(1)和chgrp(1)手册页。
此外,请注意,已挂载NFS的文件系统对更改拥有权和组有更多限制。有关限制对已挂载
NFS的系统的访问的更多信息,请参见《SystemAdministrationGuide:NetworkServices》中
的第6章,“AccessingNetworkFileSystems(Reference)”。
如何更改文件的组拥有权
承担主管理员角色,或成为超级用户。
主管理员角色拥有主管理员配置文件。要创建角色并将角色指定给用户,请参见《System
AdministrationGuide:BasicAdministration》中的第2章,“WorkingWiththeSolaris
ManagementConsole(Tasks)”。
更改文件的组拥有权。
$chgrpscifiexample-file
有关设置组的信息,请参见《SystemAdministrationGuide:BasicAdministration》中的第4
章,“ManagingUserAccountsandGroups(Overview)”。
系统管理指南:安全性服务•2006年9月
使用UNIX权限保护文件(任务列表)
3
检验文件的组拥有权是否已更改。
$ls-lexample-file
-rw-r--r--1staceyscifi112640June2008:55example-file
另请参见示例6–2。
M
如何在符号模式下更改文件权限
1
如果您不是文件或目录的属主,请成为超级用户或承担等效角色。
只有当前属主或超级用户可以使用chmod命令更改文件或目录的文件权限。
2
在符号模式下更改权限。
%chmodwhooperatorpermissionsfilename
who指定要更改其权限的用户。
operator指定要执行的操作。
permissions指定要更改的权限。有关有效的符号列表,请参见表6–5。
filename指定文件或目录。
3
检验文件的权限是否已更改。
%ls-lfilename
示例6–3
在符号模式下更改权限
在以下示例中,将解除其他用户的读取权限。
%chmodo-rexample-file1
在以下示例中,将为用户、组和其他用户添加读和执行权限。
$chmoda+rxexample-file2
在以下示例中,将为组指定读写和执行权限。
$chmodg=rwxexample-file3
第6章•控制对文件的访问(任务)131
使用UNIX权限保护文件(任务列表)
M
如何在绝对模式下更改文件权限
1
2
3
示例6–4
132
如果您不是文件或目录的属主,请成为超级用户或承担等效角色。
只有当前属主或超级用户可以使用chmod命令更改文件或目录的文件权限。
在绝对模式下更改权限。
%chmodnnnfilename
nnn按照该顺序指定将表示文件属主、文件组和其他用户的权限的八进制值。有关
有效八进制值的列表,请参见表6–4。
filename指定文件或目录。
注–
使用chmod命令更改具有ACL项的文件的文件组权限时,文件组权限和ACL掩码都将更
改为新权限。请注意,新ACL掩码权限可以更改在文件中具有ACL项的其他用户和组的权
限。使用getfacl命令以确保为所有ACL项都设置了适当的权限。有关更多信息,请参见
getfacl(1)手册页。
检验文件的权限是否已更改。
%ls-lfilename
在绝对模式下更改权限
在以下示例中,将公共目录的权限从744(读、写、执行;只读;只读)更改为755(读、
写、执行;读和执行;读和执行)。
#ls-ldpublic_dir
drwxr--r--1ignatzstaff6023Aug512:06public_dir
#chmod755public_dir
#ls-ldpublic_dir
drwxr-xr-x1ignatzstaff6023Aug512:06public_dir
在以下示例中,将可执行shell脚本的权限从读写更改为读写和执行。
%ls-lmy_script
-rw-------1ignatzstaff6023Aug512:06my_script
%chmod700my_script
系统管理指南:安全性服务•2006年9月
使用UNIX权限保护文件(任务列表)
%ls-lmy_script
-rwx------1ignatzstaff6023Aug512:06my_script
M
1
如何在绝对模式下更改特殊文件权限
如果您不是文件或目录的属主,请成为超级用户或承担等效角色。
只有当前属主或具有超级用户功能的用户可以使用chmod命令更改文件或目录的特殊权限。
2
在绝对模式下更改特殊权限。
%chmodnnnnfilename
nnnn
filename
指定用于更改文件或目录的权限的八进制值。最左侧的八进制值设置文件的特
殊权限。有关特殊权限的有效八进制值的列表,请参见表6–6。
指定文件或目录。
注–
使用chmod命令更改具有ACL项的文件的文件组权限时,文件组权限和ACL掩码都将更
改为新权限。请注意,新ACL掩码权限可以更改在文件中具有ACL项的其他用户和组的权
限。使用getfacl命令以确保为所有ACL项都设置了适当的权限。有关更多信息,请参见
getfacl(1)手册页。
3
检验文件的权限是否已更改。
%ls-lfilename
示例6–5
在绝对模式下设置特殊文件权限
在以下示例中,将对dbprog文件设置setuid权限。
#chmod4555dbprog
#ls-ldbprog
-r-sr-xr-x1dbstaff12095May609:29dbprog
在以下示例中,将对dbprog2文件设置setgid权限。
#chmod2551dbprog2
#ls-ldbprog2
-r-xr-s--x1dbstaff24576May609:30dbprog2
第6章•控制对文件的访问(任务)133
使用ACL保护文件(任务列表)
在以下示例中,将对public_dir目录设置sticky位权限。
#chmod1777public_dir
#ls-ldpublic_dir
drwxrwxrwt2ignatzstaff512May1515:27public_dir
使用ACL保护文件(任务列表)
以下任务列表说明列出文件的ACL、更改ACL,以及将ACL复制到另一个文件的过程。
任务参考
确定文件是否具有ACL
将ACL添加到文件
复制ACL
修改ACL
删除文件的ACL
显示文件的ACL
第134页中的“如何检查文件是否具有ACL”
第135页中的“如何将ACL项添加到文件”
第137页中的“如何复制ACL”
第137页中的“如何更改文件的ACL项”
第138页中的“如何删除文件的ACL项”
第138页中的“如何显示文件的ACL项”
M
◗
如何检查文件是否具有ACL
检查文件是否具有ACL。
%ls-lfilename
其中,filename指定文件或目录。
在输出中,模式字段右侧的加号(+)表示该文件具有ACL。
注–
除非已添加了用于扩展UNIX文件权限的ACL项,否则会将文件视为具有“琐碎”ACL,
并且不会显示加号(+)。
示例6–6
检查文件是否具有ACL
在以下示例中,文件具有ACL。ACL由模式字段右侧的加号(+)表示。
%
-rwxr-----+1staceytechpubs167Nov1111:
134系统管理指南:安全性服务•2006年9月
使用ACL保护文件(任务列表)
M
如何将ACL项添加到文件
1
2
示例6–7
使用setfacl命令设置文件的ACL。
%setfacl-suser::perms,group::perms,other:perms,mask:perms,acl-entry-listfi
-s设置文件的ACL。如果文件已具有ACL,则会替换该ACL。此选项要求至
少有user::、group::和other::项。
user::perms指定文件属主权限。
group::perms指定组属主权限。
other:perms为文件属主或组成员之外的用户指定权限。
mask:perms指定ACL掩码的权限。掩码表示允许用户(属主除外)和组拥有的最大权
限。
acl-entry-list指定文件或目录中要为特定用户和组设置的一个或多个ACL项的列表。也
可以设置目录的缺省ACL项。表6–7和表6–8显示了有效的ACL项。
fi指定要对其设置ACL的一个或多个文件或目录。多个filename由空格分
隔。
注意–
如果该文件已存在ACL,则-s选项将使用新的ACL替换整个ACL。
有关更多信息,请参见setfacl(1)手册页。
检验是否已对文件设置了ACL项。
%getfaclfilename
有关更多信息,请参见第134页中的“如何检查文件是否具有ACL”。
设置文件的ACL
在以下示例中,会在文件中将文件属主权限设置为读写、将文件组权限设置为只
读,并将其他用户权限设置为无。此外,还在文件中为用户anusha指定读写权限。将ACL
掩码权限设置为读写,这意味着任何用户或组都没有执行权限。
%setfacl-suser::rw-,group::r--,other:---,mask:rw-,user:anusha:
%ls-l
total124
-rw-r-----+1staceytechpubs34816Nov1114:
-rw-r--r--1staceytechpubs20167Nov1114:
第6章•控制对文件的访问(任务)135
使用ACL保护文件(任务列表)
-rw-r--r--1staceytechpubs8192Nov1114:16notes
%
#file:
#owner:stacey
#group:techpubs
user::rw-
user:anusha:rw-
group::r--
mask:rw-
other:---
#effective:rw-
#effective:r--
在以下示例中,会将文件属主权限设置为读写和执行,将文件组权限设置为只读,并将其
他用户权限设置为无。此外,还会在文件中将ACL掩码权限设置为读。最后,将
为用户anusha指定读写权限。但是,由于ACL掩码的原因,anusha的权限为只读。
%setfacl-su::7,g::4,o:0,m:4,u:anusha:
%
#file:
#owner:stacey
#group:techpubs
user::rwx
user:anusha:rwx
group::r--
mask:r--
other:---
#effective:r--
#effective:r--
136系统管理指南:安全性服务•2006年9月
使用ACL保护文件(任务列表)
M
◗
如何复制ACL
通过重定向getfacl输出,将文件的ACL复制到另一个文件。
%getfaclfilename1|setfacl-f-filename2
filename1
filename2
示例6–8
指定将从其中复制ACL的文件。
指定要对其设置所复制的ACL的文件。
复制ACL
在以下示例中,会将中的ACL复制到。
%|
M
1
如何更改文件的ACL项
使用setfacl命令修改文件的ACL项。
%setfacl-macl-entry-listfi
-m
acl-entry-list
fi
2
修改现有的ACL项。
指定文件或目录中要修改的一个或多个ACL项的列表。也可以修改目录的
缺省ACL项。表6–7和表6–8显示了有效的ACL项。
指定一个或多个文件或目录,由空格分隔。
检验是否已修改文件的ACL项。
%getfaclfilename
示例6–9
修改文件的ACL项
在以下示例中,将用户anusha的权限修改为读写。
%setfacl-muser:anusha:
%
#file:
#owner:stacey
#group:techpubs
第6章•控制对文件的访问(任务)137
使用ACL保护文件(任务列表)
user::rw-
user::anusha:rw-
group::r-
mask:r--
other:r-
#effective:r--
#effective:r--
在以下示例中,将组staff的缺省权限修改为对book目录的读取权限。此外,还将缺省
ACL掩码权限修改为读写。
%setfacl-mdefault:group:staff:4,default:mask:6book
M
1
如何删除文件的ACL项
删除文件的ACL项。
%setfacl-dacl-entry-listfi
-d
acl-entry-list
fi
删除指定的ACL项。
指定文件或目录中要删除的ACL项(未指定权限)的列表。只能删除特定
用户和组的ACL项和缺省ACL项。表6–7和表6–8显示了有效的ACL项。
指定一个或多个文件或目录,由空格分隔。
或者,可以使用setfacl-s命令删除文件的所有ACL项,并使用所指定的新ACL项替换它
们。
2
检验是否已删除文件的ACL项。
%getfaclfilename
示例6–10
删除文件的ACL项
在以下示例中,将从文件中删除用户anusha。
%setfacl-duser:
M
◗
如何显示文件的ACL项
使用getfacl命令显示文件的ACL项。
%getfacl[-a|-d]fi
138系统管理指南:安全性服务•2006年9月
使用ACL保护文件(任务列表)
-a
-d
fi
显示指定文件或目录的文件名、文件属主、文件组和ACL项。
显示指定目录的文件名、文件属主、文件组和缺省ACL项(如果存在)。
指定一个或多个文件或目录,由空格分隔。
如果在命令行中指定多个文件名,则会在每两个ACL项之间显示一个空白行。
示例6–11
显示文件的ACL项
在以下示例中,将显示文件的所有ACL项。用户和组项旁边的#effective:注释表
示由ACL掩码修改后的权限。
%
#file:
#owner:stacey
#group:techpubs
user::rw-
user:anusha:r-
group::rw-
mask:rw-
other:---
#effective:r--
#effective:rw-
在以下示例中,将显示目录book的缺省ACL项。
%getfacl-dbook
#file:book
#owner:stacey
#group:techpubs
user::rwx
user:anusha:r-x#effective:r-x
第6章•控制对文件的访问(任务)139
防止程序受到安全风险(任务列表)
group::rwx
mask:rwx
other:---
default:user::rw-
#effective:rwx
default:user:anusha:r--
default:group::rw-
default:mask:rw-
default:other:---
防止程序受到安全风险(任务列表)
以下任务列表说明查找系统中的危险可执行程序,以及禁止程序利用可执行栈的过程。
任务说明参考
使用特殊权限查找文件
防止可执行栈溢出
防止记录可执行栈消息
查找设置了setuid位,但不归root用户拥有的文第140页中的“如何使用特殊文件
件。权限查找文件”
防止程序利用可执行栈。
关闭记录可执行栈消息
第142页中的“如何禁止程序使用
可执行栈”
示例6–13
M
如何使用特殊文件权限查找文件
应对系统中未经授权在程序中使用setuid和setgid权限的情况进行监视。使用setuid和
setgid权限,普通用户可以获取超级用户功能。可疑可执行文件为用户而不是root或bin
授予拥有权。
1
承担主管理员角色,或成为超级用户。
主管理员角色拥有主管理员配置文件。要创建角色并将角色指定给用户,请参见《System
AdministrationGuide:BasicAdministration》中的第2章,“WorkingWiththeSolaris
ManagementConsole(Tasks)”。
2
使用find命令查找拥有setuid权限的文件
#finddirectory-userroot-perm-4000-execls-ldb{};>/tmp/filename
140系统管理指南:安全性服务•2006年9月
3
示例6–12
防止程序受到安全风险(任务列表)
finddirectory检查以指定的directory(可以是root(/)、sys、bin或mail)开头的所有
挂载路径。
-userroot仅显示由root拥有的文件。
-perm-4000仅显示权限被设置为4000的文件。
-execls-ldb以ls-ldb格式显示find命令的输出。
>/tmp/filename包含find命令的结果的文件。
在/tmp/filename中显示结果。
#more/tmp/filename
有关setuid权限的背景信息,请参见第121页中的“setuid权限”。
使用setuid权限查找文件
以下示例的输出显示,名为rar的用户创建了一份/usr/bin/sh的个人副本,并将权限设置
为root的setuid。因此,/usr/rar/bin/sh程序将使用root权限运行。
通过将文件从/tmp目录中移出,可以保存此输出以供将来参考。
#find/-userroot-perm-4000-execls-ldb{};>/var/tmp/ckprm
#cat/var/tmp/ckprm
-r-sr-xr-x1rootbin38836Aug1016:16/usr/bin/at
-r-sr-xr-x1rootbin19812Aug1016:16/usr/bin/crontab
---s--x--x1rootsys46040Aug1015:18/usr/bin/ct
-r-sr-xr-x1rootsys12092Aug1101:29/usr/lib/mv_dir
-r-sr-sr-x1rootbin33208Aug1015:55/usr/lib/lpadmin
-r-sr-sr-x1rootbin38696Aug1015:55/usr/lib/lpsched
---s--x---1rootrar45376Aug1815:11/usr/rar/bin/sh
-r-sr-xr-x1rootbin12524Aug1101:27/usr/bin/df
-rwsr-xr-x1rootsys21780Aug1101:27/usr/bin/newgrp
-r-sr-sr-x1rootsys23000Aug1101:27/usr/bin/passwd
-r-sr-xr-x1rootsys23824Aug1101:27/usr/bin/su
第6章•控制对文件的访问(任务)141
防止程序受到安全风险(任务列表)
M
1
2
3
示例6–13
142
#mv/var/tmp/ckprm/export/sysreports/ckprm
如何禁止程序使用可执行栈
有关可执行栈的安全风险的说明,请参见第127页中的“防止可执行文件危及安全”。
承担主管理员角色,或成为超级用户。
主管理员角色拥有主管理员配置文件。要创建角色并将角色指定给用户,请参见《System
AdministrationGuide:BasicAdministration》中的第2章,“WorkingWiththeSolaris
ManagementConsole(Tasks)”。
编辑/etc/system文件并添加以下行:
setnoexec_user_stack=1
重新引导系统。
#init6
禁止记录可执行栈消息
在此示例中,将禁止记录可执行栈消息,然后重新引导系统。
#cat/etc/system
setnoexec_user_stack=1
setnoexec_user_stack_log=0
#init6
系统管理指南:安全性服务•2006年9月
第
使用自动安全性增强工具(任务)
7
7章
本章介绍了如何使用自动安全性增强工具(AutomatedSecurityEnhancementTool,ASET)来监
视或限制对系统文件和目录的访问。
以下是本章中的逐步说明列表:
I
I
I
第143页中的“自动安全性增强工具(AutomatedSecurityEnhancementTool,ASET)”
第159页中的“运行ASET(任务列表)”
第164页中的“解决ASET问题”
如需一种比ASET更为全面的工具,请使用Solaris安全工具包。Solaris安全工具包提供了用
于强化和最小化Solaris系统的框架。此工具包包括文件配置工具、报告工具和撤消功能。
此工具包是免费的,可以从SunWeb站点/security/jass下载。此
Web站点包含指向联机文档的链接。
AlexNoordergraaf和GlennBrunette合著的《SecuringSystemswiththeSolarisSecurity
Toolkit》(ISBN0-13-141071-7,2003年6月)中对此工具包进行了详细说明。本书是Sun
MicrosystemsPress出版的SunBluePrints系列的一部分。
自动安全性增强工具(AutomatedSecurityEnhancement
Tool,ASET)
Solaris操作系统包括自动安全性增强工具(AutomatedSecurityEnhancementTool,ASET)。
ASET通过自动执行原本需要手动执行的任务来帮助监视和控制系统安全性。
ASET安全软件包提供可用于控制和监视系统安全性的自动管理工具。您可以指定运行
ASET时的安全级别。安全级别包括低、中和高。级别越高,ASET的文件控制功能越强,
从而可限制文件访问并提高系统安全性。
ASET可以运行七项任务。每项任务都针对系统文件执行特定的检查和调整。ASET任务可
以加强对文件权限的控制,检查关键系统文件内容中的安全漏洞以及监视重要区域。ASET
还可以通过将防火墙系统的基本要求应用于网关系统来保护网络。请参见第146页中的“
防火墙设置”。
143
自动安全性增强工具(AutomatedSecurityEnhancementTool,ASET)
ASET使用主文件进行配置。主文件、报告和其他ASET文件都位于/usr/aset目录中。可
以更改这些文件以适应您站点的特定要求。
每项任务都会生成一个报告。此报告将记录检测到的安全漏洞以及任务对系统文件所做的
任何更改。以最高安全级别运行时,ASET将尝试修复所有系统安全漏洞。如果ASET无法
更正某个潜在的安全问题,则会报告存在此问题。
您可以通过交互地使用/usr/aset/aset命令来启动ASET会话。或者,也可以通过向
crontab文件中加入一项,将ASET设置为定期运行。
ASET任务会占用大量磁盘空间,并且会干扰常规活动。要将对系统性能的影响降至最小,
可以安排ASET在系统活动量最少时运行。例如,每24或48小时在午夜运行一次ASET。
ASET安全级别
可以将ASET设置为在三种安全级别之一下运行:低、中或高。级别越高,ASET的文件控
制功能就越强,从而可限制文件访问并提高系统安全性。这些功能范围很广,从在不限制
用户访问文件的情况下监视系统安全性,到逐渐加强对访问权限的控制直到系统完全安全
为止。
下表概括了这三种安全级别。
安全级别说明
低
中
确保系统文件的属性设置为标准发行版的值。ASET会执行几项检查,然后报告潜
在的安全漏洞。在此级别,ASET不执行任何操作,因此不会影响系统服务。
为大多数环境提供足够的安全控制。ASET会修改系统文件和参数的一些设置。
ASET限制系统访问以降低来自安全攻击的风险。ASET报告安全漏洞以及它对限制
访问所做的任何修改。在此级别,ASET不会影响系统服务。
实现一个高度安全的系统。ASET会调整许多系统文件和参数设置,以最大限度地
减少访问权限。大多数系统应用程序和命令将继续正常运行。但在此级别,安全方
面的考虑优先于其他系统行为。
高
注–
ASET不会通过更改文件的权限来降低文件的安全性,除非您降低安全级别。您也可以
专门将系统恢复到运行ASET之前存在的设置。
ASET任务列表
本节介绍ASET所执行的任务。您应该了解每项ASET任务。通过了解ASET的目标、ASET
执行的操作以及ASET影响的系统组件,可以有效地理解和使用其报告。
144系统管理指南:安全性服务•2006年9月
自动安全性增强工具(AutomatedSecurityEnhancementTool,ASET)
ASET报告文件包含的消息尽可能详细地说明了每项ASET任务发现的所有问题。这些消息
有助于诊断和更正这些问题。但是,要成功使用ASET,您需要对系统管理和系统组件有大
致的了解。如果您是初级管理员,可以参阅其他Solaris系统管理文档。您可以参阅相关的
手册页来学习ASET管理。
taskstat实用程序用于标识已完成的任务,以及仍在运行的任务。每项完成的任务都会生
成一个报告文件。有关taskstat实用程序的完整说明,请参阅taskstat(1M)。
系统文件权限调优
此任务会将系统文件的权限设置为指定的安全级别。此任务在安装系统时运行。如果您稍
后决定更改先前建立的级别,请再次运行此任务。在低安全级别,权限会设置为适合于开
放式信息共享环境的值。在中安全级别,会加强对权限的控制,以便为大多数环境提供足
够高的安全性。在高安全级别,会控制权限以严格限制访问。
此任务对系统文件权限或参数设置所做的任何修改都会报告在文件中。有关ASET
在设置权限时参考的文件的示例,请参见,请参见第158页中的“调优文件示例”。
系统文件检查
此任务会检查系统文件,并将每个文件与主文件中相应文件的说明进行比较。主文件是
ASET首次运行此任务时创建的。主文件包含checklist针对指定安全级别执行的系统文件
设置。
针对每种安全级别,将定义要检查其文件的目录的列表。可以使用缺省列表,也可以修改
列表,以便针对每个级别指定不同的目录。
对于每个文件,会检查以下条件:
I
I
I
I
I
属主和组
权限位
大小以及校验和
链接数目
上次修改时间
ASET发现的任何差异都会报告在文件中。此文件包含将系统文件大小、权限
及校验和的值与主文件进行比较的结果。
用户和组检查
此任务会检查用户帐户和组的一致性和完整性。此任务使用passwd和group文件中的定
义。此任务检查本地口令文件、NIS口令文件或NIS+口令文件,并报告NIS+的口令文件问
题,但不会进行更正。此任务将检查以下违规:
I
I
I
I
I
重复的名称或ID
格式不正确的项
缺少口令的帐户
无效的登录目录
nobody帐户
145第7章•使用自动安全性增强工具(任务)
自动安全性增强工具(AutomatedSecurityEnhancementTool,ASET)
I
I
空的组口令
NIS服务器或NIS+服务器上的/etc/passwd文件中的加号(+)
差异会报告在文件中。
系统配置文件检查
在执行此任务的过程中,ASET会检查各种系统表,其中大多数系统表位于/etc目录中。
这些文件包括:
I
I
I
I
I
I
I
I
I
/etc/default/login
/etc/
/etc/
/etc/aliases
/var/adm/utmpx
/.rhosts
/etc/vfstab
/etc/dfs/dfstab
/etc/ftpd/ftpusers
ASET会对这些文件执行各种检查和修改,并在文件中报告问题。
环境变量检查
此任务会检查为超级用户和其他用户设置PATH和UMASK环境变量的方式,并检查
/.profile、/.login和/.cshrc文件。
检查环境安全性的结果会报告在文件中。
eeprom检查
此任务会检查eeprom安全参数的值,以确保此参数设置在合适的安全级别。可以将eeprom
安全参数设置为none、command或full。
ASET不会更改此设置,但会在文件中报告其建议。
防火墙设置
此任务确保系统可以安全地用作网络中继。此任务通过将专用系统设置为防火墙,保护内
部网络不受外部公共网络的干扰,第50页中的“防火墙系统”对此进行了说明。防火墙系
统可分隔两个网络。在这种情况下,每个网络都作为不可信对象访问另一个网络。防火墙
设置任务将禁止Internet协议(InternetProtocol,IP)包的转发。防火墙还会对外部网络隐藏
路由信息。
防火墙任务可以在所有安全级别运行,但是仅在最高级别执行操作。如果要在高安全级别
运行ASET,但发现系统不需要防火墙保护,则可以取消防火墙任务。可以通过编辑
asetenv文件删除此任务。
所做的任何更改都会报告在文件中。
146系统管理指南:安全性服务•2006年9月
自动安全性增强工具(AutomatedSecurityEnhancementTool,ASET)
ASET执行日志
无论ASET以交互方式运行还是在后台运行,它都会生成执行日志。缺省情况下,ASET会
生成标准输出形式的日志文件。执行日志可确认ASET是否在指定时间运行,并且还包含所
有执行错误消息。aset-n命令指示将日志通过电子邮件发送到指定的用户。有关ASET选
项的完整列表,请参见aset(1M)手册页。
ASET执行日志文件的示例
ASETrunningatsecuritylevellow
Machine=example;Currenttime=0325_08:00
aset:Using/usr/asetasworkingdirectory
firewall
env
sysconfig
usrgrp
tune
cklist
eeprom
ckgroundtasksmaystillberunning.
Run/usr/aset/util/taskstattochecktheirstatus:
$/usr/aset/util/taskstataset_dir
Whereaset_dirisASET’soperatingdirectory,currently=/usr/aset
第7章•使用自动安全性增强工具(任务)147
自动安全性增强工具(AutomatedSecurityEnhancementTool,ASET)
Whenthetaskscomplete,thereportscanbefoundin:
/usr/aset/reports/latest/*.rpt
Youcanviewthemby:
more/usr/aset/reports/latest/*.rpt
执行日志首先显示运行ASET的系统和时间。然后,执行日志会列出启动任务时的每项任
务。
ASET将针对这些任务中的每一项调用后台进程,这在第144页中的“ASET任务列表”中
进行了说明。启动任务时,执行日志中会列出此任务。列出此任务并不意味着任务已完
成。要检查后台任务的状态,请使用taskstat命令。
ASET报告
由ASET任务生成的所有报告文件都存储在/usr/aset/reports目录下的子目录中。本节介
绍/usr/aset/reports目录的结构,并提供管理报告文件的指南。
ASET将报告文件放在子目录中,这些子目录的名称可反映报告生成时间和日期。通过此约
定,可以按顺序跟踪记录,这些记录用于在系统状态随ASET执行的不同而变化的过程中记
载系统状态。可以监视和比较这些报告以确定系统安全的可靠性。
下图显示了reports目录结构的示例。
148系统管理指南:安全性服务•2006年9月
自动安全性增强工具(AutomatedSecurityEnhancementTool,ASET)
/usr/aset
mastersreportsutil
0124_01:000125_01:00latest
图7–1
ASETreports目录的结构
此示例说明了两个报告子目录。
I
I
0124_01:00
0125_01:00
子目录的名称指明了报告的生成日期和时间。每个报告子目录名称都具有以下格式:
monthdate_hour:minute
month、date、hour和minute都是两位数字。例如,0125_01:00表示1月25日凌晨1点。
这两个报告子目录都包含执行一次ASET所生成的报告集合。
latest目录是始终指向包含最新报告的子目录的符号链接。因此,要查看ASET生成的最新
报告,可以转至/usr/aset/reports/latest目录。此目录中包含ASET在最近一次执行期间
所执行的每项任务的报告文件。
ASET报告文件的格式
每个报告文件都以生成此报告的任务命名。下表列出了各项任务及其报告。
第7章•使用自动安全性增强工具(任务)149
自动安全性增强工具(AutomatedSecurityEnhancementTool,ASET)
表7–1
ASET任务和生成的报告
任务报告
系统文件权限调优(tune)
系统文件检查(cklist)
用户和组检查(usrgrp)
系统配置文件检查(sysconf)
环境变量检查(env)
eeprom检查(eeprom)
防火墙设置(firewall)
每个报告文件中,消息括在开始标题行和结束标题行中。有时,任务会提前结束。例如,
意外删除或损坏ASET的组件时,任务便会提前结束。在这类情况下,报告文件通常会在结
尾附近包含一条消息,指明提前终止的原因。
以下是一个报告文件样例。
***BeginUserandGroupChecking***
Checking/
Warning!Passwordfile,line10,nopasswd
:sync::1:1::/:/bin/sync
..
Checking/
***EndUserAndgroupChecking***
检查ASET报告文件
初次运行或重新配置ASET之后,应该严密地检查报告文件。重新配置包括修改asetenv文
件或masters子目录中的主文件,或者更改运行ASET的安全级别。
报告会记录在重新配置ASET时引起的所有错误。通过严密地查看报告,可以在出现问题时
做出反应并解决问题。
150系统管理指南:安全性服务•2006年9月
自动安全性增强工具(AutomatedSecurityEnhancementTool,ASET)
比较ASET报告文件
在对报告文件监视一段时间(其间没有进行配置更改或系统更新)之后,您可能会发现报
告的内容开始趋于稳定。如果报告包含的意外信息很少,可使用diff实用程序来比较这些
报告。
ASET主文件
ASET的主文件、、和uid_aliases位于/usr/aset/masters目
录中。ASET使用这些主文件来定义安全级别。有关更多详细信息,请参见asetmasters(4)
手册页。
调优文件
、和主文件用于定义可用的ASET安全级别。这些文件可指定
系统文件在每个级别的属性,用于比较和参考。
uid_aliases文件
uid_aliases文件包含共享同一用户ID(userID,UID)的多个用户帐户的列表。通常,由于
这种做法降低了可说明性,因此ASET会针对此类多个用户帐户发出警告。您可以通过在
uid_aliases文件中列出例外情况来允许此规则存在例外。如果uid_aliases文件中指定了
具有重复UID的项,则ASET不会在passwd文件中报告这些项。
请避免使多个用户帐户共享同一UID。您应该考虑使用其他方法来实现目标。例如,如果
要让多个用户共享一个权限集,则可以创建一个组帐户。您还可以创建角色。仅当其他方
法都无法实现目标时,才应使用共享UID这一方法。
可以使用UID_ALIASES环境变量来指定备用的别名文件。缺省文件为
/usr/aset/masters/uid_aliases。
核对表文件
系统文件检查所使用的主文件在首次执行ASET时生成,也可在更改安全级别之后运行
ASET时生成。
以下环境变量定义了此任务检查的文件:
I
I
I
CKLISTPATH_LOW
CKLISTPATH_MED
CKLISTPATH_HIGH
ASET环境文件(asetenv)
环境文件asetenv包含影响ASET任务的环境变量的列表。可以更改其中一些变量来修改
ASET操作。有关asetenv文件的详细信息,请参见asetenv(4)。
第7章•使用自动安全性增强工具(任务)151
自动安全性增强工具(AutomatedSecurityEnhancementTool,ASET)
配置ASET
本节介绍了如何配置ASET,还介绍了ASET的运行环境。
ASET所需的管理和配置操作最少。在大多数情况下,可以使用缺省值运行ASET。但是,
也可以微调某些影响ASET操作和行为的参数,以便最大程度发挥此工具的优点。更改缺省
值之前,应了解ASET如何运行以及它如何影响系统组件。
ASET依靠四个配置文件来控制其任务的行为:
I
I
I
I
/usr/aset/asetenv
/usr/aset/masters/
/usr/aset/masters/
/usr/aset/masters/
修改环境文件(asetenv)
/usr/aset/asetenv文件包含两个主要部分:
I
I
用户可配置的环境变量部分
内部环境变量部分
您可以更改用户可配置的参数部分。但是,内部环境变量部分中的设置仅供内部使用,不
应修改这些设置。
您可以编辑用户可配置部分中的各项以执行以下操作:
I
I
I
I
I
选择要运行的任务
指定系统文件检查任务的目录
安排ASET执行
指定UID别名文件
将检查扩展到NIS+表
选择要运行的任务:TASKS
ASET执行的每项任务都会监视系统安全的特定方面。在大多数系统环境中,必须执行所有
任务以便在各方面都可保证安全性。但是,您可能会决定删除一项或多项任务。
例如,防火墙任务可以在所有安全级别下运行,但是仅在高安全级别下执行操作。您可能
希望在高安全级别运行ASET,但是不需要防火墙保护。
可以将ASET设置为在没有防火墙功能的情况下在高安全级别运行。为此,可编辑asetenv
文件中的环境变量的TASKS列表。缺省情况下,TASKS列表包含所有的ASET任务。要删除
某项任务,请从此文件中删除与此任务相关的环境变量。在这种情况下,可从列表中删除
firewall环境变量。下次运行ASET时,便不会执行已排除的任务。
以下示例显示了包含所有ASET任务的TASKS列表。
TASKS=”envsysconfigusrgrptunecklisteepromfirewall”
152系统管理指南:安全性服务•2006年9月
自动安全性增强工具(AutomatedSecurityEnhancementTool,ASET)
指定系统文件检查任务的目录:CKLISTPATH
系统文件检查会检查选定系统目录中的文件属性。可以使用以下环境变量来定义要检查的
目录。
CKLISTPATH_LOW变量定义要在低安全级别检查的目录。CKLISTPATH_MED和CKLISTPATH_HIGH
环境变量可分别在中安全级别和高安全级别实现类似的功能。
环境变量在较低安全级别定义的目录列表应该是在下一个较高级别定义的目录列表的子
集。例如,为CKLISTPATH_LOW指定的所有目录应该包括在CKLISTPATH_MED中。同样,为
CKLISTPATH_MED指定的所有目录应该包括在CKLISTPATH_HIGH中。
针对这些目录执行的检查并不是递归的。ASET仅检查在环境变量中显式列出的那些目录,
而不检查其子目录。
可以编辑这些环境变量定义,以添加或删除需要ASET检查的目录。请注意,这些核对表仅
适用于通常不会每日更改的系统文件。例如,用户的起始目录通常动态地频繁更新,因此
不适合选择用作核对表的目录。
安排ASET执行:PERIODIC_SCHEDULE
您可以交互地启动ASET,也可以使用-p选项来请求ASET任务在预定时间运行。您可以定
期在系统需求较少时运行ASET。例如,ASET可参阅PERIODIC_SCHEDULE来确定执行ASET
任务的频率以及运行这些任务的时间。有关设置ASET使其定期运行的详细说明,请参见
第161页中的“如何定期运行ASET”。
PERIODIC_SCHEDULE的格式遵循crontab项的格式。有关完整信息,请参见crontab(1)。
指定别名文件:UID_ALIASES
UID_ALIASES变量可指定用于列出共享UID的别名文件。缺省文件为
/usr/aset/masters/uid_aliases。
将检查扩展到NIS+表:YPCHECK
YPCHECK环境变量可指定ASET是否也应该检查系统配置文件表。YPCHECK为布尔变量。只
能将YPCHECK指定为true或false。缺省值为false,它将禁用NIS+表检查。
要了解此环境变量如何运行,请考虑其对passwd文件的影响。设置为false时,ASET会检
查本地passwd文件。如果设置true,此任务还将检查系统域的NIS+passwd表。
注–
尽管ASET会自动修复本地文件,但是ASET仅报告NIS+表中的潜在问题,而不会更改
这些表。
修改调优文件
ASET使用三个主调优文件、和来放松或加强对关键系统文件
的访问。这些主文件位于/usr/aset/masters目录中。可以修改这些文件以适合您的环境。
有关示例,请参见第158页中的“调优文件示例”。
第7章•使用自动安全性增强工具(任务)153
自动安全性增强工具(AutomatedSecurityEnhancementTool,ASET)
文件可将权限设置为适合于缺省系统设置的值。文件可进一步限制这些
权限。文件还包括中没有的项。文件可更进一步限制这些权
限。
注–
可以通过添加或删除文件项来修改调优文件中的设置。无法有效地将权限设置为比当前
设置限制少的值。除非将系统安全降至更低的级别,否则ASET任务不会放松权限。
恢复ASET修改的系统文件
首次执行ASET时,ASET会保存并归档初始系统文件。e实用程序可重新恢复
这些文件。如果当前安排ASET定期执行,则此实用程序还会取消对ASET的安排。
e命令位于ASET操作目录/usr/aset中。
运行e命令时,对系统文件所做的更改会丢失。
应在以下情况下使用e命令:
I
要删除ASET更改并恢复初始系统。
如果先前已将aset命令添加到根目录的crontab,则要永久取消激活ASET时,可以从
cron调度中删除ASET。有关如何使用cron删除自动执行的任务的说明,请参见第162
页中的“如何停止定期运行ASET”。
I
I
试用ASET一段时间后,希望恢复初始系统状态。
某些主要系统功能没有正常运行,并且您怀疑问题是由ASET引起时。
使用NFS系统进行网络操作
一般情况下,ASET在单机模式下使用,即使在网络所包含的系统中也是如此。作为独立系
统的系统管理员,您要负责系统的安全。因此,您将负责运行和管理ASET以保护系统。
您还可以在NFS分布式环境中使用ASET。作为网络管理员,您要负责为所有客户机安装、
运行和管理各种管理任务。为了便于在多个客户机系统中进行ASET管理,可以对全局应用
于所有客户机的配置进行更改。通过全局应用更改,无需登录到每个系统即可重复配置更
改。
决定如何在联网系统中设置ASET时,应该考虑希望谁来控制安全性。您可能希望用户控制
其各自系统的部分安全性,还可能希望集中负责安全控制。
为每种安全级别提供全局配置
要设置多个网络配置时可能会出现这种情况。例如,您可能要为那些指定为低安全级别的
客户机设置一种配置,为中级别的客户机设置一种配置,为高级别的客户机设置另一种配
置。
154系统管理指南:安全性服务•2006年9月
自动安全性增强工具(AutomatedSecurityEnhancementTool,ASET)
如果需要为每种安全级别创建单独的ASET网络配置,可以在服务器上创建三种ASET配
置,为每种级别创建一种配置。可以将每种配置导出到具有相应安全级别的客户机中。对
于所有三种配置都相同的某些ASET组件可使用链接来共享。
收集ASET报告
您不仅可以在服务器上集中ASET组件,还可以在服务器上设置中央目录以收集所有的
ASET报告。具有或不具有超级用户权限的客户机均可访问此服务器。有关设置收集机制的
说明,请参见第162页中的“如何在服务器上收集ASET报告”。
通过在服务器上设置报告收集,可以从一个位置查看所有客户机的报告。无论客户机是否
具有超级用户权限,都可以使用此方法。或者,如果要用户监视自己的ASET报告,可以将
报告目录保留在本地系统上。
ASET环境变量
以下是ASET环境变量和这些变量指定的值的列表。
ASETDIR
ASETSECLEVEL
PERIODIC_SCHEDULE
TASKS
UID_ALIASES
YPCHECK
CKLISTPATH_LOW
CKLISTPATH_MED
CKLISTPATH_HIGH
指定ASET工作目录
指定安全级别
指定定期安排
指定要运行的ASET任务
指定别名文件
确定是否将检查扩展到NIS映射和NIS+表
低安全级别的目录列表
中安全级别的目录列表
高安全级别的目录列表
以下各节中列出的环境变量位于/usr/aset/asetenv文件中。ASETDIR和ASETSECLEVEL变量
为可选变量。这些变量只能使用/usr/aset/aset命令通过shell来设置。其他环境变量可以
通过编辑此文件来设置。
ASETDIR环境变量
ASETDIR用于指定ASET工作目录。
从Cshell中,键入:
%setenvASETDIRpathname
从Bourneshell或Kornshell中,键入:
第7章•使用自动安全性增强工具(任务)155
自动安全性增强工具(AutomatedSecurityEnhancementTool,ASET)
$ASETDIR=pathname
$exportASETDIR
将pathname设置为ASET工作目录的全路径名。
ASETSECLEVEL环境变量
ASETSECLEVEL变量指定执行ASET任务的安全级别。
从Cshell中,键入:
%setenvASETSECLEVELlevel
从Bourneshell或Kornshell中,键入:
$ASETSECLEVEL=level
$exportASETSECLEVEL
在这些命令中,可以将level设置为以下各项之一:
low
med
high
低安全级别
中安全级别
高安全级别
PERIODIC_SCHEDULE环境变量
PERIODIC_SCHEDULE的值与crontab文件遵循相同的格式。将变量值指定为用双引号引起的
五个字段的字符串,其中各个字段用一个空格分隔:
"minuteshoursday-of-monthmonthday-of-week"
minuteshours
day-of-month
month
day-of-week
以(整小时数之后经过的)分钟数(0-59)和小时数(0-23)指定开始时间。
指定应该运行ASET的月日期,值的范围为1-31。
指定应该运行ASET的月份,值的范围为1-12。
指定应该运行ASET的周日期,值的范围为0-6。星期天为0日。
为ASET创建定期安排时,可应用以下规则:
I
I
可以为任何字段指定值的列表,各个值用逗号分隔。
可以将值指定为数字,也可以将值指定为一个范围。范围是由连字符连接的一对数字。
范围表明了ASET任务应该在此范围所包括的所有时间执行。
可以将星号(*)指定为任何字段的值。星号可概括性地指定字段所有可能的值。
I
156系统管理指南:安全性服务•2006年9月
自动安全性增强工具(AutomatedSecurityEnhancementTool,ASET)
如果使用PERIODIC_SCHEDULE变量的缺省项,则ASET每天在午夜12:00执行:
PERIODIC_SCHEDULE=”00***”
TASKS环境变量
TASKS变量用于列出ASET所执行的任务。缺省设置为列出所有七项任务:
TASKS=”envsysconfigusrgrptunecklisteepromfirewall”
UID_ALIASES环境变量
UID_ALIASES变量用于指定别名文件。如果存在,则ASET会参阅此文件以获取允许的多个
别名的列表。别名格式为UID_ALIASES=pathname,其中pathname为别名文件的全路径名。
缺省设置如下:
UID_ALIASES=${ASETDIR}/masters/uid_aliases
YPCHECK环境变量
YPCHECK变量用于将检查系统表的任务扩展到包括NIS或NIS+表。YPCHECK变量为布尔变
量,可以设置为true或false。
缺省设置为false,表示将检查限定在本地系统表:
YPCHECK=false
CKLISTPATH_level环境变量
三个核对表路径变量用于列出系统文件检查任务要检查的目录。缺省情况下,将设置以下
变量定义。这些定义说明了不同级别变量之间的关系:
CKLISTPATH_LOW=${ASETDIR}/tasks:${ASETDIR}/util:${ASETDIR}/masters:/etc
CKLISTPATH_MED=${CKLISTPATH_LOW}:/usr/bin:/usr/ucb
CKLISTPATH_HIGH=${CKLISTPATH_MED}:/usr/lib:/sbin:/usr/sbin:/usr/ucblib
核对表路径环境变量的值类似于shell路径变量的值。与shell路径变量相同,核对表路径环
境变量也是目录名称的列表。这些目录名称用冒号分隔。您可以使用等号(=)将变量名称与
其值相连。
第7章•使用自动安全性增强工具(任务)157
自动安全性增强工具(AutomatedSecurityEnhancementTool,ASET)
ASET文件示例
本节介绍一些ASET文件的示例,包括调优文件和别名文件。
调优文件示例
ASET可维护三个调优文件。调优文件中的每项都占用一行。每项中的字段按以下顺序排列
:
pathnamemodeownergrouptype
pathname
mode
owner
group
type
文件的全路径名
用于表示权限设置的五位数
文件的属主
文件的组属主
文件的类型
编辑调优文件时,可应用以下规则:
I
可在路径名中使用常规的shell通配符(例如星号(*)和问号(?)),以便引用多个路径。
有关更多信息,请参见sh(1)。
mode表示限制最少的值。如果当前设置已经比指定值的限制多,则ASET不会放松权限
设置。例如,如果指定的值为00777,则权限保持不变,因为00777始终比当前设置的
限制少。
此过程说明ASET如何处理模式设置。如果降低安全级别或删除ASET,则此过程有所不
同。从先前执行时的级别降低安全级别时,或是要将系统文件恢复到首次执行ASET之
前的状态时,ASET可识别正在执行的操作并降低保护级别。
I
I
I
I
I
必须使用owner和group的名称,而不是使用数字ID。
可以使用问号(?)来代替owner、group和type,以防止ASET更改这些参数的现有值。
type可以是symlink、目录或文件。symlink是符号链接。
较高安全级别的调优文件可将文件权限重置为至少与较低级别的文件权限具有相同限
制。另外,在较高的安全级别,还会向列表中添加其他文件。
一个文件可以与多个调优文件项相匹配。例如,etc/passwd与etc/pass*和/etc/*项相
匹配。
如果两个项具有不同权限,则文件权限将设置为限制性最高的值。在以下示例中,
/etc/passwd文件的权限设置为00755,这是00755和00770中限制性较高的值。
/etc/pass*00755??file
/etc/*00770??file
I
I
158系统管理指南:安全性服务•2006年9月
运行ASET(任务列表)
I
如果两个项指定的owner或group不同,则后一项优先级更高。在以下示例中,
/usr/sbin/chroot的属主设置为root。
/usr/sbin/chroot00555binbinfile
/usr/sbin/chroot00555rootbinfile
别名文件示例
别名文件包含共享同一用户ID的别名列表。
每项都具有如下格式:
uid=alias1=alias2=alias3=...
uid
aliasn
共享的UID。
共享一个UID的用户帐户。
例如,以下项列出了UID0。sysadm和root帐户共享此UID:
0=root=sysadm
运行ASET(任务列表)
任务说明参考
从命令行运行ASET
按固定间隔以批处理模式运行
ASET
停止以批处理模式运行ASET
将ASET报告存储在服务器上
以指定的ASET级别保护系统。查看执行日志可了第160页中的“如何交互运行
解更改。ASET”
设置cron(时钟守护进程)作业以确保ASET保护第161页中的“如何定期运行
系统。ASET”
删除ASETcron作业。第162页中的“如何停止定期运行
ASET”
收集来自客户机的ASET报告以便集中进行监视。第162页中的“如何在服务器上收
集ASET报告”
要设置ASET中的变量,请参见第155页中的“ASET环境变量”。要配置ASET,请参见
第152页中的“配置ASET”。
第7章•使用自动安全性增强工具(任务)159
运行ASET(任务列表)
M
如何交互运行ASET
1
2
3
示例7–1
160
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见第186页中的“配置
RBAC(任务列表)”。
使用aset命令交互运行ASET。
#/usr/aset/aset-llevel-dpathname
level指定安全级别。有效值为low、medium或high。缺省设置为low。有关安全级
别的详细信息,请参见第144页中的“ASET安全级别”。
pathname指定ASET的工作目录。缺省设置为/usr/aset。
查看屏幕上显示的ASET执行日志,验证ASET是否正在运行。
执行日志消息可确定正在运行的任务。
交互运行ASET
在以下示例中,ASET在低安全级别运行,并且使用缺省工作目录。
#/usr/aset/aset-llow
=======ASETExecutionLog=======
ASETrunningatsecuritylevellow
Machine=jupiter;Currenttime=0111_09:26
aset:Using/usr/asetasworkingdirectory
firewall
env
sysconf
系统管理指南:安全性服务•2006年9月
运行ASET(任务列表)
usrgrp
tune
cklist
eeprom
ckgroundtasksmaystillberunning.
Run/usr/aset/util/taskstattochecktheirstatus:
/usr/aset/util/taskstat[aset_dir]
whereaset_dirisASET’soperating
directory,currently=/usr/aset.
Whenthetaskscomplete,thereportscanbefoundin:
/usr/aset/reports/latest/*.rpt
Youcanviewthemby:
more/usr/aset/reports/latest/*.rpt
M
1
如何定期运行ASET
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见第186页中的“配置
RBAC(任务列表)”。
第7章•使用自动安全性增强工具(任务)161
运行ASET(任务列表)
2
3
4
M
1
2
3
4
5
M
1
162
如有必要,设置希望ASET定期运行的时间。
应该在系统需求较少时运行ASET。/usr/aset/asetenv文件中的PERIODIC_SCHEDULE环境变
量用于设置ASET的定期运行时间。缺省情况下,时间设置为每天午夜。
如果希望设置其他时间,请编辑/usr/aset/asetenv文件中的PERIODIC_SCHEDULE变量。有
关设置PERIODIC_SCHEDULE变量的详细信息,请参见第156页中的“PERIODIC_SCHEDULE环
境变量”。
使用aset命令向crontab文件中添加项。
#/usr/aset/aset-p
-p选项可在crontab文件中插入一行,使ASET在/usr/aset/asetenv文件中的
PERIODIC_SCHEDULE环境变量确定的时间开始运行。
显示crontab项以检验安排ASET运行的时间。
#crontab-lroot
如何停止定期运行ASET
承担主管理员角色,或成为超级用户。
主管理员角色拥有主管理员配置文件。要创建角色并将角色指定给用户,请参见《System
AdministrationGuide:BasicAdministration》中的第2章,“WorkingWiththeSolaris
ManagementConsole(Tasks)”。
编辑crontab文件。
#crontab-eroot
删除ASET项。
保存更改并退出。
显示crontab项,检验ASET项是否已删除。
#crontab-lroot
如何在服务器上收集ASET报告
承担主管理员角色,或成为超级用户。
主管理员角色拥有主管理员配置文件。要创建角色并将角色指定给用户,请参见《System
AdministrationGuide:BasicAdministration》中的第2章,“WorkingWiththeSolaris
ManagementConsole(Tasks)”。
系统管理指南:安全性服务•2006年9月
运行ASET(任务列表)
2
在服务器上设置目录:
a.转到/usr/aset目录。
mars#cd/usr/aset
b.创建rptdir目录。
mars#mkdirrptdir
c.转到rptdir目录并创建client_rpt目录。
此步骤可为客户机创建client_rpt子目录。对于每台需要收集报告的客户机,请重复此步
骤。
mars#cdrptdir
mars#mkdirclient_rpt
在以下示例中,创建了目录all_reports以及子目录pluto_rpt和neptune_rpt。
mars#cd/usr/aset
mars#mkdirall_reports
mars#cdall_reports
mars#mkdirpluto_rpt
mars#mkdirneptune_rpt
3
将client_rpt目录添加到/etc/dfs/dfstab文件中。
这些目录应可选择进行读取还是写入。
例如,可使用读写权限共享dfstab文件中的以下各项。
share-Fnfs-orw=pluto/usr/aset/all_reports/pluto_rpt
share-Fnfs-orw=neptune/usr/aset/all_reports/neptune_rpt
4
使dfstab文件中的资源可供客户机使用。
#shareall
5
在每台客户机上,在挂载点/usr/aset/masters/reports上挂载服务器中的客户机子目录。
#mountserver:/usr/aset/client_rpt/usr/aset/masters/reports
第7章•使用自动安全性增强工具(任务)163
解决ASET问题
6
编辑/etc/vfstab文件以在系统引导时自动挂载目录。
neptune上的/etc/vfstab中的以下样例项列出了要从mars、
/usr/aset/all_reports/neptune_rpt以及neptune上的挂载点/usr/aset/reports挂载的目
录。系统引导时,vfstab中列出的目录会自动挂载。
mars:/usr/aset/all_reports//usr/aset/reportsnfs-yeshard
解决ASET问题
本节介绍ASET生成的错误消息。
ASET错误消息
ASETfailed:nomailprogramfound.
原因:
系统指示ASET将执行日志发送给用户,但是无法找到邮件程序。
解决方法:
安装邮件程序。
Usage:aset[-nuser[@host]]]]in/bin/mailor/usr/ucb/mail.
Cannotdecidecurrentandprevioussecuritylevels.
原因:
ASET无法确定当前调用和先前调用的安全级别。
解决方法:
确保通过命令行选项或ASETSECLEVEL环境变量设置了当前安全级别。此外,还
应确保ASETDIR/archives/的最后一行正确反映先前的安全级别。如
果未设置这些值,或者这些值不正确,请输入正确的值。
ASETworkingdirectoryundefined.
Tospecify,setASETDIRenvironmentvariableorusecommandlineoption-d.
ASETstartupunsuccessful.
原因:
ASET工作目录未定义,或者定义错误。此工作目录为操作目录。
解决方法:
使用ASETDIR环境变量或-d命令行选项来更正此错误,然后重新启动ASET。
ASETworkingdirectory$ASETDIRmissing.
ASETstartupunsuccessful.
原因:
ASET工作目录未定义,或者定义错误。此工作目录为操作目录。此问题可能是由
于ASETDIR变量引用了不存在的目录而引起,或是-d命令行选项可能引用了不存在的目
录。
解决方法:
确保正确引用了正确的目录,即包含ASET目录分层结构的目录。
164系统管理指南:安全性服务•2006年9月
解决ASET问题
Cannotexpand$ASETDIRtofullpathname.
原因:
ASET无法将由ASETDIR变量或-d命令行选项提供的目录名称扩展为全路径名。
解决方法:
确保目录名称正确。确保目录引用了用户可以访问的现有目录。
aset:invalid/undefinedsecuritylevel.
Tospecify,setASETSECLEVELenvironmentvariableorusecommandlineoption-l,with
argument=low/med/high.
原因:
安全级别未定义或者定义错误。仅有值low、med或high可以接受。
解决方法:
使用ASETSECLEVEL变量或-l命令行选项来指定这三个值中的其中一个。
ASETenvironmentfileasetenvnotfoundin$ASETDIR.
ASETstartupunsuccessful.
原因:
ASET在其工作目录中无法找到asetenv文件。
解决方法:
确保ASET的工作目录中存在asetenv文件。有关此文件的详细信息,请参见
asetenv(4)手册页。
filenamedoesn’texistorisnotreadable.
原因:
通过filename引用的文件不存在或无法读取。使用-u选项时可能会出现此问题。通
过此选项,可以指定一个包含要检查的用户列表的文件。
解决方法:
确保-u选项的参数存在并可读取。
ASETtasklistTASKLISTundefined.
原因:
未定义应在asetenv文件中定义的ASET任务列表。此消息表示asetenv文件错误。
解决方法:
检查asetenv文件。确保在UserConfigurable部分中定义了任务列表。另外,
还要检查此文件的其他部分以确保文件的完整性。有关有效的asetenv文件的内容,请
参见asetenv(4)手册页。
ASETtasklist$TASKLISTmissing.
ASETstartupunsuccessful.
原因:
未定义应在asetenv文件中定义的ASET任务列表。此消息表示asetenv文件错误。
解决方法:
检查asetenv文件。确保在UserConfigurable部分中定义了任务列表。另外,
还要检查此文件的其他部分以确保文件的完整性。有关有效的asetenv文件的内容,请
参见asetenv(4)手册页。
Scheduleundefinedforperiodicinvocation.
setenvfile.
原因:
使用-p选项请求了ASET调度,但未在asetenv文件中定义环境变量
PERIODIC_SCHEDULE。
第7章•使用自动安全性增强工具(任务)165
解决ASET问题
166
解决方法:
检查asetenv文件的UserConfigurable部分以确保定义了此变量。确保此变量
的格式正确。
Warning!DuplicateASETexecutionscheduled.
Checkcrontabfile.
原因:
安排ASET运行多次。换句话说,在一个ASET调度仍有效时请求了另一个调度。
如果确实需要多个调度,则此消息不一定就表示错误。在这种情况下,此消息仅用作警
告。如果需要多个调度,则应该使用正确的调度格式以及crontab命令。有关更多信
息,请参见crontab(1)手册页。
解决方法:
通过crontab命令检验正确的调度是否有效。确保ASET不存在不必要的
crontab项。
系统管理指南:安全性服务•2006年9月
第3部分
角色、权限配置文件和权限
本节介绍了基于角色的访问控制(role-basedaccesscontrol,RBAC)和进程权利管理。
RBAC组件包括角色、权限配置文件和授权。进程权利管理通过权限实现。在RBAC中
使用权限可以提供一种比通过超级用户角色管理系统更为安全的管理替代方法。
167
168
第
使用角色和权限(概述)
8
8章
Solaris基于角色的访问控制(role-basedaccesscontrol,RBAC)和权限提供了更为安全的超级用
户替代项。本章概述了有关RBAC以及相应权限的信息。
以下是本章中概述信息的列表:
I
I
第169页中的“基于角色的访问控制(概述)”
第177页中的“权限(概述)”
基于角色的访问控制(概述)
基于角色的访问控制(Role-basedaccesscontrol,RBAC)是一种安全功能,用于控制用户访问
那些通常仅限于超级用户访问的任务。通过对进程和用户应用安全属性,RBAC可以在多个
管理员之间划分超级用户的功能。进程权利管理通过权限实现。用户权利管理通过RBAC
实现。
I
I
I
有关进程权利管理的介绍,请参见第177页中的“权限(概述)”。
有关RBAC任务的信息,请参见第9章。
有关参考信息,请参见第10章。
RBAC:超级用户模型的替代项
在传统的UNIX系统中,root用户(也称为超级用户)可执行所有功能。以root身份运行
的程序或setuid程序可执行所有功能。root用户可以读取和写入任何文件,运行所有程
序,以及向任何进程发送中止信号。实际上,任何可成为超级用户的用户都能够修改站点
的防火墙,更改审计跟踪,读取机密记录以及关闭整个网络。被非法修改的setuid程序可
以在系统上执行任何操作。
基于角色的访问控制(Role-basedaccesscontrol,RBAC)提供了更为安全的全有或全无型超级
用户模型替代项。使用RBAC,可以在划分更精细的级别上强制执行安全策略。RBAC使用
最低权限的安全原则。最低权限表示用户仅具有执行某项作业所需的权限。普通用户具有
169
基于角色的访问控制(概述)
足够权限来使用其应用程序、检查其作业状态、列显文件、创建新文件等。超出普通用户
功能以外的功能将分为多个权限配置文件。预期要执行需要某些超级用户功能的作业的用
户将承担拥有相应权限配置文件的角色。
RBAC会将超级用户功能收集到权限配置文件中。这些权限配置文件将指定给称为角色的特
殊用户帐户。然后,用户可以承担执行需要某些超级用户功能的作业的角色。预定义的权
限配置文件是Solaris软件附带的。您可以创建角色并指定相应的配置文件。
权限配置文件可以提供广泛的功能。例如,主管理员权限配置文件等效于超级用户。权限
配置文件还可以从狭义范围进行定义。例如,Cron管理权限配置文件可管理at和cron作
业。创建角色时,可以决定是创建具有广泛功能的角色,还是创建具有有限功能的角色,
抑或是同时创建这两种角色。
在RBAC模型中,超级用户可创建一种或多种角色。这些角色基于权限配置文件。然后,
超级用户会将这些角色指定给可以放心委任执行角色任务的用户。这些用户使用其用户名
进行登录。登录之后,用户将承担可以运行有限管理命令和图形用户界面(graphicaluser
interface,GUI)工具的角色。
由于可以灵活地设置角色,因此可启用各种安全策略。尽管Solaris操作系统(SolarisOS)没
有附带任何角色,但是您可以轻松地配置三种建议的角色。这些角色基于以下同名的权限
配置文件:
I
I
主管理员-等效于root用户或超级用户的功能强大的角色。
系统管理员-用于执行与安全性无关的管理任务的角色,其功能相对较弱。此角色可以
管理文件系统、邮件以及软件安装,但是不能设置口令。
操作员-用于执行备份和打印机管理等操作的初级管理员角色。
I
并不一定要实现这三种角色。角色是一种实现组织安全性需要的功能。可以为各个领域
(如安全性、联网或防火墙管理)中具有特殊目的的管理员设置角色。另一种策略是创建
一种功能强大的管理员角色和一种高级用户角色。高级用户角色将用于那些允许修复其自
身系统的各部分的用户。
超级用户模型可以与RBAC模型共存。下表汇总了RBAC模型中可能存在的、从超级用户
到受限普通用户的各个等级。该表包括可以在两种模型中跟踪的管理操作。有关权限对系
统的单独影响的概述,请参见表8–2。
表8–1
超级用户模型与具有权限的RBAC模型
系统上的用户功能超级用户模型RBAC模型
可以成为具有全部超级用户功能的超级是
用户
可以使用具有全部用户功能的用户身份是
登录
可以成为具有有限功能的超级用户否
是
是
是
170系统管理指南:安全性服务•2006年9月
基于角色的访问控制(概述)
表8–1
超级用户模型与具有权限的RBAC模型
系统上的用户功能
(续)
RBAC模型超级用户模型
可以使用用户身份登录,有时具有超级是,仅使用setuid程序是,使用setuid程序和RBAC
用户功能
可以使用具有管理功能的用户身份登
录,但是没有全部超级用户功能
否是,使用RBAC以及直接指定的
权限和授权
是,使用RBAC和已删除的权限
是,通过审计配置文件shell命令
另外,如果禁用了root用户,则
审计跟踪中会出现已经承担root
角色的用户的名称
可以使用功能少于普通用户的用户身份否
登录
可以跟踪超级用户操作是,通过审计su命令
SolarisRBAC元素和基本概念
SolarisOS中的RBAC模型引入了以下元素:
I
授权-一种可使用户或角色执行一类可能影响安全性的操作的权限。例如,安装过程中
的安全策略会为普通用户提供授权。用户可使用此授权来读取和
写入CD-ROM设备。有关授权的列表,请参见/etc/security/auth_attr文件。
权限-可以授予命令、用户、角色或系统的单项权利。进程可使用权限来成功执行。例
如,proc_exec权限允许进程调用execve()。普通用户具有基本权限。要查看基本权
限,请运行ppriv-vlbasic命令。
安全属性-可供进程用于执行操作的属性。在典型的UNIX环境中,进程可使用安全属
性来执行原本禁止普通用户执行的操作。例如,setuid和setgid程序具有安全属性。在
RBAC模型中,普通用户执行的操作可能需要安全属性。除了setuid和setgid程序之
外,授权和权限也是RBAC模型中的安全属性。例如,具有te
授权的用户可以分配供独占使用的设备。具有sys_time权限的进程可以处理系统时间。
特权应用程序-可以通过检查安全属性来覆盖系统控制的应用程序或命令。在典型的
UNIX环境和RBAC模型中,使用setuid和setgid的程序都是特权应用程序。在RBAC
模型中,需要权限或授权才能成功执行的程序也是特权应用程序。有关更多信息,请参
见第174页中的“特权应用程序和RBAC”。
权限配置文件-可以指定给角色或用户的管理功能的集合。一个权限配置文件由授权、
具有安全属性的命令以及其他权限配置文件组成。权限配置文件提供了一种便捷的方法
来对安全属性进行分组。
角色-用于运行特权应用程序的特殊身份。这种特殊身份只能由指定的用户承担。在由
角色运行的系统中,超级用户并不是必需的。超级用户功能会分配给不同的角色。例
如,在具有两种角色的系统中,将由安全角色处理安全任务,而第二种角色则处理与安
全性无关的系统管理任务。角色可以进行更为精细的划分。例如,系统可能包括各种用
于处理加密框架、打印机、系统时间、文件系统以及审计的管理角色。
I
I
I
I
I
下图说明了各RBAC元素如何协同工作。
第8章•使用角色和权限(概述)171
基于角色的访问控制(概述)
图8–1
SolarisRBAC元素关系
在RBAC中,将角色指定给用户。用户承担某种角色时,便可使用此角色的功能。角色从
权限配置文件中获取其功能。权限配置文件可以包含授权、特权命令以及其他补充权限配
置文件。特权命令是指那些使用安全属性执行的命令。
下图使用操作员角色、操作员权限配置文件以及打印机管理权限配置文件来说明RBAC的
各种关系。
172系统管理指南:安全性服务•2006年9月
基于角色的访问控制(概述)
版权声明:本文标题:sun 系统管理指南 安全性服务 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1735423842a1662203.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
更多相关文章
Android webview 本地下载文件不跳转到浏览器,下载之后自动安装
本篇重点介绍使用webview遇到下载文件时,不跳转到浏览器,自己用DownLoadManager来下载。说下思路: 1.跳转到浏览器去下载文件的前提是webview有个D
《UC浏览器》视频下载不了?一键修复duilib.dll文件丢失
如果你在使用 UC 浏览器下载视频时遇到 duilib.dll 文件丢失的提示,这通常意味着浏览器或相关组件所需的某个动态链接库文件缺失或损坏。以下是一些解决这个问题的方法: 1. 重新安装 UC
浏览器无法安全下载文件怎么解决
如果浏览器提示无法安全下载文件,可以尝试以下几种解决方法: 检查网络连接:确保你的网络连接正常,尝试重新连接网络。更改浏览器设置在浏览器的设置中&a
完整指南:如何将文件从 iPhone 传输到 PC
如果您是 iPhone 用户,您可能会发现自己经常需要将照片、视频和音乐等文件从手机传输到计算机。这使您可以备份数据、节省存储空间或在更大的屏幕上欣赏内容。但是,您知道完成这项任务的最简单、最快的
Windows10-用户账户控制、Windows远程桌面
Windows10用户账户控制怎么设置白名单 问题引出: 安装低版本搜狗输入法后经常弹出用户账户控制 解决方案: 全局模式: UAC控制最早出现在Windows V
终端下载文件(windows和linux)
文章目录 linuxwget自定义文件git clone windowswgetpowershell -client linux wget linux使用wget下载很方便,首先确保安装了wgetÿ
如何在Android模拟器中安装APK文件?
我终于设法混淆了我的Android应用程序,现在我想通过安装APK文件并在模拟器上运行来测试它。如何在Android模拟器上安装APK文件?#1楼 从浏览器下载apk文件ÿ
Xshell在Windows和Linux间文件的上传和下载
Python微信订餐小程序课程视频 https:edu.csdncoursedetail36074 Python实战量化交易理财系统 https:edu.csdncoursedetail35475 本文通过lrzs
ipynb文件过大打开浏览器崩溃解决方法
1、ipynb文件太大导致jupyter打不开 之前用Anaconda 的jupyter notebook 写代码,然后后来可能文件output太多,导致ipynb文件太大,
解决pyecharts运行后产生的html文件用浏览器打开空白
问题描述: pyechart生成html文件 原来可以在浏览器中正常显示, 过了一段时间后重新打开同一个html文件,浏览器页面显示空白 原HTML,或
javaweb实现文件下载(包含.txt文件等默认在浏览器中打开的文件)
文件下载刚开始研究文件下载是找有关js的方法,找了好多发现对于.txt、.xls等文件在浏览器中还是打开,或者就是跨域问题。后来通过查找资料发现可以在后台对http相应头设置参数,而且实现起来也不复杂。现总结如下: 文章参考 《ja
SpringMVC 下载文件(直接在浏览器打开)
前端代码: 下载用户手册function downUserManual() {debuggervar downLoadPath"systemdownUserManual.do";var
解决pyecharts运行后产生的html文件用浏览器打开空白或者jupyter无法显示
方法一 1)Kernel -> Restart & Clear Output 重启并清除输出 2)按F12 勾选Disable cache禁用缓存 3)按F
关于两个用户用同一浏览器不能同时登录同一网站的问题(session覆盖问题)
mask和一个小伙伴最近在帮学校搭一个网站,大体完工后,小伙伴告诉mask网站有bug——使用两个用户登录该网站时,第一个用户会被挤掉。拿到问题时,我就
怎样让 pdf 文件直接下载而非在浏览器里打开
问题:点击 <a href"18禁.pdf">下载<a> 的时候,Chrome 会自动调用内置的 pdf 阅读器打开,我只想让用
word文件设置了密码,忘记了密码怎么办?
word文件是有两种密码的,一个是打开密码、一个是编辑限制密码 设置了word密码之后,一定要记住自己设置的密码,要么设置简单的密码、要么将设置的密码记录在一个地方。 但
删除文件显示正在使用无法删除该怎么办?
有时候当我们删除电脑程序或应用软件时,系统会提示我们文件正在使用无法删除,而我们明明是已经把这个文件关闭了的,碰到这种情况怎么办,小编以无法删除的MV
解决Edge浏览器下载文件文件名乱码问题
文件名中含有中文的文件下载,用谷歌、火狐、搜狗等浏览器都可以正常下载,但使用Windows自带的edge浏览器下载时文件名出现乱码问题。如下: 解决方案:
windows系统下快速删除海量小文件方法
使用windows命令行工具(DOS指令)来处理。 1、使用del命令删除文件 del只删除文件夹里的文件,文件夹不删。 del fsq dirname 附del的参数 P 删除每一个文件之前提示确认。
文本文档怎么转换为html文件,win10系统下如何将文本文档转换为网页
因为工作需求,一位windows10正式版系统用户就希望能够将文本文档转换为网页,可是操作了很久都没有成功,感觉非常烦恼。这该怎么办呢?接下来&
发表评论