每个策略都是一个 selang 脚本,包括的注释说明了该策略的用途及其包含的规则。 编写示例策略脚本用于演示最佳实践:
示例策略带有注释以便帮助您了解示例策略各个部分的设置以便逐一实现。
示例策略将相关资源分组为一个单个的容器资源。 通过该方法,通用策略即可一次性应用于所有的相关资源。 策略规则 (ACL) 不需要应用于各个资源。 例如,策略可以使用容器对所有的系统配置文件进行分组。
策略容器使用以下命名约定:POL_container_name。 您可以将这些容器视为子策略。 例如,OS 示例策略使用 POL_SYS_CONF 容器来保护操作系统配置文件。
为了简化用户管理,示例策略将 ACL 应用于角色。 每个角色都使用您可以增加实际用户的 CA ControlMinder 用户组。
策略角色使用以下约定:ROL_role_name。 例如,示例策略将 ROL_SYSTEM 组用于内置系统用户(如 adm 和 lp)。 许多策略为这些用户分配广泛的权限(用于适当的系统操作),但也会让权限到期,这样用户就无法用其进行登录。
这样,当您部署这些变量时必须实施最小的更改,示例策略利用 CA ControlMinder 变量。 示例策略使用内置变量来保护本地系统资源,例如,本地主机的终端规则。 示例策略还使用用户定义的变量来简化策略更改。 例如,用户定义的变量可以包含管理用户的主目录。 如果管理用户使用不同的主目录,您只需针对所有受影响的规则进行一次性更改即可自动更改。
示例:策略脚本注释
来自 Solaris SPARC 9 示例策略的以下片段展示了示例策略的注释方式。 使用 selang 语法规则并以哈希符号 (#) 开头的行是注释。
#
# * Home Directories Protection Policy *
# **************************************
#
# This policy uses the FILE class to protect the home
# directories of sensitive users so that only the owner
# of each directory can access it.
#
# Prerequisites:
#_____None
#
# Roles:
#_____None
#
# Containers:
#_____POL_HOME_DIR______- home directories of sensitive users
#
# define container POL_HOME_DIR
# Protect home directories
editres CONTAINER POL_HOME_DIR audit(<!POLICY_AUDIT_MODE>) owner(+nobody) comment("AC Sample - Protect home directories")
authorize CONTAINER POL_HOME_DIR uid(* _undefined) access(NONE)
editres ACVAR ("HOME_OS_ADMIN") value("/root") type(static)
editusr (<!USER_OS_ADMIN>)
# define specific FILE resources and connect them with POL_HOME_DIR
editres FILE ("<!HOME_OS_ADMIN>/*") audit(<!POLICY_AUDIT_MODE>) owner(+nobody) defaccess(NONE) <!POLICY_WARNING_MODE> comment("AC Sample")
authorize FILE ("<!HOME_OS_ADMIN>/*") uid(<!USER_OS_ADMIN>) access(ALL)
chres CONTAINER POL_HOME_DIR mem+("<!HOME_OS_ADMIN>/*") of_class(FILE)
示例:示例策略中的容器
下列 selang 输出显示 POL_SYS_FILES 的属性。 AIX 示例策略包含保护系统文件的子策略。
AC> sr container POL_SYS_FILES Data for CONTAINER 'POL_SYS_FILES' ------------------------------------------------------------------------ ACLs______________: ____Accessor________________Access ____ROL_SYSADMIN__(GROUP__)_All ____ROL_SYSTEM____(GROUP__)_All ____*_____________(USER___)_R, Chdir _____undefined____(USER___)_R, Chdir Members___________: ____/boot/*_______(FILE__) ____/dev/kmem_____(FILE__) ____/dev/mem______(FILE__) ____/dev/port_____(FILE__) Audit mode________: Failure Owner_____________: +nobody_______(USER__) Create time_______:_10-Dec-2008 10:32 Update time_______:_10-Dec-2008_10:35 Updated by________: root__________(USER__) Comment___________: AC Sample - Protect OS system files
示例:示例策略中的变量
来自 Red Hat Enterprise Linux 5 示例策略的以下片段展示了示例策略使用变量的方式。 在该片段中,示例策略定义了本地主机的可能名称和管理用户 root 的主目录。
#
# * AC Variables Definitions *
# ****************************
#
# The rules in this section define variables that policies use.
# Variables:
# LOCALHOST : list of possible names for local host
# POLICY_AUDIT_MODE : set policies audit mode
# POLICY_DEFACCESS : set defaccess of policies` resources
#
editres ACVAR ("LOCALHOST") value("localhost") type(static)
editres ACVAR ("LOCALHOST") value+("127.0.0.1")
editres ACVAR ("LOCALHOST") value+("0.0.0.0")
editres ACVAR ("POLICY_AUDIT_MODE") value("FAILURE") type(static)
editres ACVAR ("POLICY_DEFACCESS") value("ALL") type(static)
|
Copyright © 2013 CA.
All rights reserved.
|
|