跳过导航链接 | |
退出打印视图 | |
系统管理指南:安全性服务 Oracle Solaris 10 8/11 Information Library (简体中文) |
设备策略保护 Oracle Solaris 中的设备。设备分配可以保护外围设备。设备策略通过内核实施。可以选择启用设备分配,并在用户级别实施。
设备管理命令可管理本地文件上的设备策略。设备策略可以包括特权要求。只有超级用户或具有等效能力的角色才能管理设备。
下表列出了设备管理命令。
表 4-1 设备管理命令
|
设备分配可以保护站点,避免数据丢失、计算机病毒以及其他安全违规问题。与设备策略不同,设备分配是可选的。只有在运行 bsmconv 脚本之后才能分配设备。设备分配使用授权来限制对可分配设备的访问。
设备分配机制的组成部分如下所述:
allocate、deallocate、dminfo 和 list_devices 命令。有关更多信息,请参见设备分配命令。
每个可分配设备的设备清除脚本。
这些命令和脚本使用以下本地文件实现设备分配:
/etc/security/device_allocate 文件。有关更多信息,请参见 device_allocate(4) 手册页。
/etc/security/device_maps 文件。有关更多信息,请参见 device_maps(4) 手册页。
/etc/security/dev 目录中与每个可分配设备对应的锁定文件。
与每个可分配设备关联的锁定文件的已更改属性。
注 - 将来的 Oracle Solaris 发行版可能不支持 /etc/security/dev 目录。
与大写的选项一起使用时,allocate、deallocate 和 list_devices 命令是管理命令。否则,这些命令是用户命令。下表列出了设备分配命令。
表 4-2 设备分配命令
|
缺省情况下,用户必须具有 solaris.device.allocate 授权才能保留可分配设备。要创建包括 solaris.device.allocate 授权的权限配置文件,请参见如何授权用户分配设备。
管理员必须拥有 solaris.device.revoke 授权才能更改任一设备的分配状态。例如,allocate 和 list_devices 命令的 -U 选项以及 deallocate 命令的 -F 选项需要 solaris.device.revoke 授权。
有关更多信息,请参见要求授权的命令。
如果 deallocate 命令解除分配失败,或 allocate 命令分配失败,设备将处于分配错误状态。如果某个可分配设备处于分配错误状态,必须强制解除分配此设备。只有超级用户或者拥有 Device Management(设备管理)权限配置文件或 Device Security(设备安全)权限配置文件的角色才能处理分配错误状态。
deallocate 命令带 -F 选项时可强制解除分配。或者,可以使用 allocate -U 将设备指定给某个用户。分配设备之后,便可对出现的任何错误消息进行检查。更正设备的所有问题后,可对其强制解除分配。
设置设备分配时会创建设备映射。启用审计服务后,bsmconv 命令会创建缺省文件 /etc/security/device_maps。可以为站点定制此初始 device_maps 文件。device_maps 文件包括与每个可分配设备关联的设备名称、设备类型和设备专用文件。
device_maps 文件定义每个设备的设备专用文件映射,这在许多情况下并不直观。使用此文件,程序可以发现设备专用文件和设备之间的映射关系。例如,可以使用 dminfo 命令,在设置可分配设备时检索要指定的设备名称、设备类型和设备专用文件。dminfo 命令使用 device_maps 文件报告此信息。
device-name:device-type:device-list
示例 4-14 device_maps 项样例
以下是 device_maps 文件中软盘驱动器 fd0 的一个项的样例:
fd0:\ fd:\ /dev/diskette /dev/rdiskette /dev/fd0a /dev/rfd0a \ /dev/fd0b /dev/rfd0b /dev/fd0c /dev/fd0 /dev/rfd0c /dev/rfd0:\
device_maps 文件中的行可以用反斜杠 (\) 结尾,后续的项另起一行。还可以包括注释。井号 (#) 对所有后续文本进行注释,直到遇到下一个前面未紧接反斜杠的新行。允许在任何字段中使用前导空格和结尾空格。字段定义如下:
指定设备的名称。有关当前设备名称的列表,请参见如何查看有关设备的分配信息。
指定通用设备类型。通用名称是设备类的名称,例如 st、fd 或 audio。device-type 字段按逻辑将相关设备分组。
列出与物理设备关联的设备专用文件。device-list 必须包含所有允许访问特定设备的专用文件。如果此列表不完整,则恶意用户仍可以获取或修改专用信息。device-list 字段的有效项反映了 /dev 目录中的设备文件。
在启用审计服务时,bsmconv 命令会创建初始 /etc/security/device_allocate 文件。此初始 device_allocate 文件可以用作起点。可以修改 /etc/security/device_allocate 文件,将设备从可分配更改为不可分配,或者添加新设备。以下是一个 device_allocate 样例文件。
st0;st;;;;/etc/security/lib/st_clean fd0;fd;;;;/etc/security/lib/fd_clean sr0;sr;;;;/etc/security/lib/sr_clean audio;audio;;;*;/etc/security/lib/audio_clean
device_allocate 文件中有某个项并不表示该设备可分配,除非该项专门声明该设备可分配。在 device_allocate 样例文件中,可以看到音频设备项的第五个字段中使用了星号 (*)。在第五个字段中使用星号可让系统知道此设备不可分配。因此,不能使用此设备。如果此字段中存在其他值或没有值,则表示可以使用此设备。
在 device_allocate 文件中,每个设备由占一行的项表示,其格式如下:
device-name;device-type;reserved;reserved;auths;device-exec
device_allocate 文件中的行可以用反斜杠 (\) 结尾,后续的项另起一行。还可以包括注释。井号 (#) 对所有后续文本进行注释,直到遇到下一个前面未紧接反斜杠的新行。允许在任何字段中使用前导空格和结尾空格。字段定义如下:
指定设备的名称。有关当前设备名称的列表,请参见如何查看有关设备的分配信息。
指定通用设备类型。通用名称是设备类的名称,例如 st、fd 和 sr。device-type 字段按逻辑将相关设备分组。使某个设备可分配后,可在 device_maps 文件的 device-type 字段中检索设备名称。
Oracle 保留两个标记为 reserved 的字段供将来使用。
指定设备是否可分配。此字段中的星号 (*) 表示此设备不可分配。授权字符串或空字段表示此设备可分配。例如,auths 字段中的字符串 solaris.device.allocate 表示需要 solaris.device.allocate 授权才能分配此设备。此文件中的 at 符号 (@) 表示任何用户都可以分配此设备。
提供为特殊处理(例如分配过程中的清除和对象重用保护)而调用的脚本的路径名称。每当 deallocate 命令对设备执行操作时,都会运行 device-exec 脚本。
例如,sr0 设备的以下项表示具有 solaris.device.allocate 授权的用户可以分配 CD-ROM 驱动器:
sr0;sr;reserved;reserved;solaris.device.allocate;/etc/security/lib/sr_clean
可以决定接受缺省设备及其定义的特征。安装新设备后,可以修改这些项。必须在设备的系统的 device_allocate 和 device_maps 文件中定义需要在使用之前分配的任何设备。目前,盒式磁带机、软盘驱动器、CD-ROM 驱动器和音频芯片是可分配的。这些设备类型具有设备清除脚本。
注 - Xylogics 磁带机或归档磁带机也使用为 SCSI 设备提供的 st_clean 脚本。需要为其他设备(如调制解调器、终端、图形输入板和其他可分配设备)创建您自己的设备清除脚本。脚本必须满足此设备类型的对象重用要求。
通过设备分配,可以在一定程度上满足对象重用要求。设备清除脚本可解决安全要求,即重用某个物理设备之前从该设备中清除所有可用数据。清除数据后,其他用户才可分配此设备。缺省情况下,盒式磁带机、软盘驱动器、CD-ROM 驱动器和音频设备需要设备清除脚本。Oracle Solaris 提供这些脚本。本节介绍设备清除脚本的功能。
st_clean 设备清除脚本支持三种磁带设备:
SCSI ¼ 英寸磁带
归档 ¼ 英寸磁带
开盘式 ½ 英寸磁带
st_clean 脚本使用 mt 命令的 rewoffl 选项来清除设备。有关更多信息,请参见 mt(1) 手册页。如果此脚本在系统引导期间运行,则会查询设备以确定它是否联机。如果设备联机,则此脚本确定设备中是否有介质。含有介质的 ¼ 英寸磁带设备会被置于分配错误状态。分配错误状态会强制管理员手动清除设备。
正常系统操作期间,在交互模式下执行 deallocate 命令时,系统将提示用户删除介质。从设备中删除介质之后才会解除分配。
为软盘驱动器和 CD-ROM 驱动器提供了以下设备清除脚本:
这些脚本使用 eject 命令从驱动器中删除介质。如果 eject 命令失败,则会将设备置于分配错误状态。有关更多信息,请参见 eject(1) 手册页。
使用 audio_clean 脚本清除音频设备。此脚本执行 AUDIO_GETINFO ioctl 系统调用来读取设备。然后,此脚本执行 AUDIO_SETINFO ioctl 系统调用将此设备的配置重置为缺省值。
如果将更多可分配设备添加到系统,则可能需要创建自己的设备清除脚本。deallocate 命令将参数传递到设备清除脚本中。此处显示的参数是包含设备名称的字符串。有关更多信息,请参见 device_allocate(4) 手册页。
clean-script -[I|i|f|S] device-name
设备清除脚本在成功时一定会返回 "0",而在失败时返回大于 "0" 的值。-I、-f 和 -S 选项确定脚本的运行模式: