跳过导航链接 | |
退出打印视图 | |
![]() |
Oracle Solaris 11.1 管理:安全服务 Oracle Solaris 11.1 Information Library (简体中文) |
内核设备策略保护 Oracle Solaris 中的设备。设备分配可以保护外围设备。可以选择启用设备分配,并在用户级别实施。
设备管理命令可管理本地文件上的设备策略。设备策略可以包括特权要求。指定有 Device Management(设备管理)和 Device Security(设备安全)权限配置文件的用户可以管理设备。
下表列出了设备管理命令。
表 5-1 设备管理命令
|
设备分配可以保护站点,避免数据丢失、计算机病毒以及其他安全违规问题。与设备策略不同,设备分配是可选的。设备分配使用授权来限制对可分配设备的访问。
设备分配机制的组成部分如下所述:
svc:/system/device/allocate 服务。有关更多信息,请参见 smf(5) 手册页和有关设备分配命令的手册页。
allocate、deallocate、dminfo 和 list_devices 命令。有关更多信息,请参见设备分配命令。
Device Management(设备管理)和 Device Security(设备安全)权限配置文件。有关更多信息,请参见设备分配权限配置文件。
每个可分配设备的设备清除脚本。
这些命令和脚本使用以下本地文件实现设备分配:
/etc/security/device_allocate 文件。有关更多信息,请参见 device_allocate(4) 手册页。
/etc/security/device_maps 文件。有关更多信息,请参见 device_maps(4) 手册页。
/etc/security/dev 目录中与每个可分配设备对应的锁定文件。
与每个可分配设备关联的锁定文件的已更改属性。
注 - 将来的 Oracle Solaris 发行版可能不支持 /etc/security/dev 目录。
svc:/system/device/allocate 服务控制设备分配。缺省情况下,此服务处于禁用状态。
需要 Device Management(设备管理)和 Device Security(设备安全)权限配置文件来管理设备和设备分配。
这些权限配置文件包括以下授权:
solaris.device.allocate-分配设备所需的授权
solaris.device.cdrw-读取和写入 CD-ROM 所需的授权
solaris.device.config-配置设备属性所需的授权
solaris.device.mount.alloptions.fixed-挂载固定设备时指定挂载选项所需的授权
solaris.device.mount.alloptions.removable-挂载可移除设备时指定挂载选项所需的授权
solaris.device.mount.fixed-挂载固定设备所需的授权
solaris.device.mount.removable-挂载可移除设备所需的授权
solaris.device.revoke-撤销或回收设备所需的授权
与大写的选项一起使用时,allocate、deallocate 和 list_devices 命令是管理命令。否则,这些命令是用户命令。下表列出了设备分配命令。
表 5-2 设备分配命令
|
缺省情况下,用户必须具有 solaris.device.allocate 授权才能保留可分配设备。要创建包括 solaris.device.allocate 授权的权限配置文件,请参见如何授权用户分配设备。
管理员必须具有 solaris.device.revoke 授权才能更改任何设备的分配状态。例如,allocate 和 list_devices 命令的 -U 选项以及 deallocate 命令的 -F 选项需要 solaris.device.revoke 授权。
有关更多信息,请参见要求授权的选定命令。
如果 deallocate 命令取消分配失败,或 allocate 命令分配失败,设备将处于分配错误状态。如果某个可分配设备处于分配错误状态,必须强制取消分配此设备。只有拥有设备管理权限配置文件或设备安全权限配置文件的用户或角色才能处理分配错误状态。
deallocate 命令带 -F 选项时可强制取消分配。或者,可以使用 allocate -U 将设备指定给某个用户。分配设备之后,便可对出现的任何错误消息进行检查。更正设备的所有问题后,可对其强制取消分配。
设置设备分配时会创建设备映射。/etc/security/device_maps 文件包括与每个可分配设备关联的设备名称、设备类型和设备专用文件。
device_maps 文件定义每个设备的设备专用文件映射,这在许多情况下并不直观。使用此文件,程序可以发现设备专用文件和设备之间的映射关系。例如,可以使用 dminfo 命令,在设置可分配设备时检索要指定的设备名称、设备类型和设备专用文件。dminfo 命令使用 device_maps 文件报告此信息。
device-name:device-type:device-list
示例 5-11 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、rmdisk 或 audio。device-type 字段按逻辑将相关设备分组。
列出与物理设备关联的设备专用文件。device-list 必须包含所有允许访问特定设备的专用文件。如果此列表不完整,则恶意用户仍可以获取或修改专用信息。device-list 字段的有效项反映了 /dev 目录中的设备文件。
您可以修改 /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 选项确定脚本的运行模式: