1 介绍
VxWorks是由Wind River(风河)提供的实时操作系统(RTOS),支持安全的用户登录到VxWorks的目标系统。
本文描述了如何配置具有安全用户登录支持的VxWorks 7系统, 配置完成后,目标机在允许用户访问VxWorks内核shell之前,将需要用户提供合法的“用户名”以及“密码”。
2 前提条件
这些说明假定你正在使用:
安装在Windows工作站上的Wind River VxWorks 7, SR0620
3 有关的风河文档
有关这些主题的更多信息,请参考:VxWorks 7 Security Programmer’s Guide
4 创建和编译“VxWorks源码编译”(VSB)项目
打开一个DOS shell,配置编译环境,然后配置和编译项目。
cd // your installation directory
wrenv -p vxworks-7
cd // your workspace
vxprj vsb create users_vsb -bsp vxsim_windows -smp -force -S
cd users_vsb // your VSB directory
vxprj vsb add USER_MANAGEMENT // add the user management layer to the VSB
vxprj vsb add USER_MANAGEMENT_POLICY
vxprj vsb add USER_MANAGEMENT_USER_PRIVILEGES
make -j 32 // build the VSB
5 创建和编译“VxWorks Image Project”(VIP)项目
像如下一样创建VxWorks镜像项目(VIP):
cd ..
vxprj create -smp vxsim_windows users_vip -profile PROFILE_DEVELOPMENT -vsb users_vsb
cd users_vip
vxprj vip bundle add BUNDLE_STANDALONE_SHELL
vxprj vip component add INCLUDE_USER_DATABASE
vxprj vip component add INCLUDE_SHELL_SECURITY
vxprj vip component add INCLUDE_LOGIN_POLICY
vxprj parameter set UDB_STORAGE_PATH "\"host:vxUserDB.txt"\"
vxprj parameter set UDB_PROMPT_INITIAL_USER TRUE
vxprj parameter set meta_UDB_HASH_KEY "\"\x48\x61"\"
vxprj build
请确保将meta_UDB_HASH_KEY重命名为UDB_HASH_KEY,并使用你自己的唯一安全哈希密钥,推荐使用长度为256个字节的密钥,此哈希密钥可保护用户数据库的文本文件的内容。
6 启动目标机上的VxWorks
cd default
vxsim
目标机启动后,你将看到内核的shell会出现。
7 创建一个初始用户
你的第一个任务是创建一个初始用户名和密码,系统将要求你输入两次密码。
** Creation of initial user **
Initial user's login:
然后,VxWorks将要求你使用刚创建的初始用户名和密码进行登录。
login:
现在目标机已经被配置成需要提供这些登录的详细信息,然后才能让你访问目标机上运行的内核shell程序。
8 登录到目标机并创建第二个用户
使用上面定义的初始用户名和密码登录到目标机。在内核shell中,创建第2个用户名和密码,然后注销。
[vxWorks *]# C
-> userAdd "gaitpu", "gaitpu"
value = 0 = 0x0
-> logout
login:
现在,该VxWorks 7目标机系统支持两个单独的用户登录,你可以在启动时使用任一登录名登录并访问内核shell程序。在此示例中,加密的用户数据库文件位于VIP的默认目录(users_vip\default\vxUserDB.txt)中,VxWorks访问该文件以验证对该目标机的登录尝试。VxWorks允许你通过定义用户组,监视登录时间,设置允许的登录的时间以及更新来管理用户和删除用户帐户。有关VxWorks用户帐户管理的详细信息,请参阅“VxWorks安全程序员指南”(VxWorks Security Programmer’s Guide)。
9 可选:堵上潜在的安全漏洞
如果你删除了用户数据库文件vxUserDB.txt,则在启动时,VxWorks将恢复为请求设置新用户的状态。如果你要构建一个高度安全的包括标准VxWorks内核shell程序(许多安全系统都不包括)的VxWorks系统,这将是一个你需要解决的潜在安全漏洞。 一种策略是将该文件本地存储在目标机上的系统用户无法轻松访问的加密文件系统分区中。
10可选:建立个人用户权限
VxWorks给你选项可以严格控制每个用户允许的内核shell活动,这称为添加用户权限。为此,请添加以下额外的VIP配置:
cd ..
vxprj vip component add INCLUDE_USER_PRIVILEGES
vxprj vip parameter set PRIVILEGE_MANIFEST_PATH "\"host:\privilege_manifest\prvlgManifest.txt"\"
找到并打开权限清单文本文件,查看文件顶部的说明并修改其内容,用于为你的用户设置权限。然后重新编译VIP工程项目并重新启动目标机。
注意:
默认权限设定不授予任何用户任何权限,在VIP中启用用户权限后,除非你修改权限清单文件,要不内核shell将一直报告权限错误信息。即使你的用户可以登录,他们也不会被允许从内核shell程序执行任何操作。