首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
»
PowerPC
» 精通 fpm(2)
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
精通 fpm(2)
发短消息
加为好友
look_w
当前离线
UID
1066743
帖子
8283
精华
0
积分
4142
阅读权限
90
在线时间
233 小时
注册时间
2017-6-23
最后登录
2019-5-18
论坛元老
UID
1066743
1
#
打印
字体大小:
t
T
look_w
发表于 2018-1-11 09:18
|
只看该作者
精通 fpm(2)
修改 SUID 许可在运行 fpm 之前,确定您希望实现的安全级别。例如,如果您希望实现中级安全级别,您首先需要预览 SUID 修改会影响到的文件,这些文件位于:/usr/lib/security/fpm/data/med_fpm_list。
然后运行 fpm 预览,了解实现中级安全策略后的情况,如下所示
1
2
3
4
5
6
# fpm -l medium -p
chmod 0555 /sbin/helpers/jfs2/backbyinode
chmod 0550 /sbin/helpers/jfs2/diskusg
chmod 0555 /sbin/helpers/jfs2/restbyinode
..
..
输出显示了新修改过的文件许可,也就是指出哪些文件移除了 SUID 位和生成的新许可。由于是在预览模式中运行,因此没有发生任何修改。如果对将移除 SUID 位的文件满意,您可以继续处理并对它们执行真正的移除操作:
1
2
3
# fpm -l medium
..
..
一个或多个文件已经是安全的。因此,当前的许可可能不匹配默认许可。如果您需要返回到运行该命令之前的许可快照,那么运行命令:/usr/bin/fpm -l default -f /var/security/fpm/log/12062011_17:48:35 fpm 将继续移除 SUID 许可。
如果希望获得详细输出,也就是说,类似于使用预览选项时的输出,那么使用 v 参数。
现在可以真正地从文件中移除它们的 SUID 位。在 fpm 输出中,注意用于恢复所作的任何变更的命令。初始设置位于一个输出文件中,如上面的例子所示。
接下来,查看一些从其中真正移除了 SUID 位的文件。
1
2
# ls -l /usr/sbin/chdev
-r-xr-x--- 1 root system 27496 Mar 22 2011 /usr/sbin/chdev
最后,确定在使用 fpm 时您的安全级别为中级,只需运行以下命令。
1
2
# fpm -s
Medium level security.
下一个任务是进行重复测试,确保您的应用程序和操作环境没有受到 SUID 变化的影响。
恢复如果实现了中级安全级别后发现效果并不理想,只需对文件许可执行恢复操作。日志文件位于 /var/security/fpm/log 目录中。
日志文件内容的格式为:
1
<suid octal permission to restore> < full path/file-name> <current octal permission>
如下所示为日志文件的样例输出,供您参考。
1
2
3
4
5
6
7
# cat 12062011_17:48:35
4550 /usr/sbin/cfgmgr 0550
4550 /usr/sbin/chcod 0550
4550 /usr/sbin/chcons 0550
4550 /usr/sbin/chdev 0550
…
…
通过使用前面的中级安全级别修改生成的日志文件,我们可以恢复到此前的时间点。使用
-f
选项并指定安全级别为默认级别:
1
# fpm -l default -f /var/security/fpm/log/12062011_17:48:35
接下来,通过查看已恢复的许可文件确认修改。
1
2
# ls -l /usr/sbin/chdev
-r-sr-x--- 1 root system 27496 Mar 22 2011 /usr/sbin/chdev
接着,查看安全级别的状态。它将说明为自定义,因为已经从此前的备份中恢复了 SUID 列表。
1
2
# fpm -s
Customized level security.
虽然 AIX 提供了一个列表,其中指定了针对不同安全设置需要包含的文件,但是您可以进一步修改来包含或排除特定的文件。我去掉了在中级安全级别文件 /usr/lib/security/fpm/data/med_fpm_list 中包含的许多 SUID 程序,并以此作为我的标准设置。这样做非常适合系统管理员的角色。
要将 SUID 恢复到出厂默认值(即刚刚安装 AIX 时的 SUID 设置),使用下面的命令:
1
# fpm -l default
然后,确认新安全级别的状态。
1
2
# fpm -s
Default level security.
自定义 SUID 修改要向列表添加自定义的文件,即包含应用程序和其他系统 SUID,您有几个不同的选择。
创建一个列表,其中包含将要移除 SUID 的文件的名称。
创建一个列表,其中包含将要恢复 SUID 的文件的名称。
在 /usr/lib/security/fpm 目录中,有一个称为 custom 的子目录,在该子目录中又包含以下目录:
default
、
medium
和
high
。
如果您需要恢复到原来的 SUID 程序设置,您也可以包含额外的文件,其中可能包括您的 bespoke 或应用程序 SUID。文件的格式为:
1
<suid octal permission to restore> < full path/file-name>
例如,运行以下命令,在名为
mydefaults
的文件中包含两个自定义 SUID,称为
grab_db2_audit
和
load_extract
。
1
2
3
4
5
6
# pwd
/usr/lib/security/fpm/custom/default
# cat mydefaults
4550 /usr/local/bin/grab_db2_audit
4550 /usr/local/bin/load_extract
我在本节演示的自定义流程也适用于其他安全级别。
如果恢复到
默认
级别,那么当对 SUID 修改许可时,将包括该目录中的所有文件(假设格式均正确)。
1
2
3
4
5
6
# fpm -l default
…
...
chmod 4550 /usr/sbin/invscoutd
chmod 4550 /usr/local/bin/grab_db2_audit
chmod 4550 /usr/local/bin/load_extract
要对自定义 SUID 或任何额外的文件移除 SUID 位,创建一个文件,其中包含您需要移除它们的 SUID 位的文件的列表。文件内容的格式为:
1
< full path /file-name>
例如,在我的 mydefaults2 文件中,我可以包含下面的内容:
1
2
3
4
5
6
# pwd
/usr/lib/security/fpm/custom/med
# cat mydefaults2
/usr/local/bin/load_extract
/usr/local/bin/grab_db2_audit
在 fpm 移除 SUID 之前,这两个 SUID 文件位于 /usr/local/bin 目录中:
1
2
3
4
5
6
7
# pwd
/usr/local/bin
# ls -lt |head
total 9512
-r-sr-x--- 1 root app1 30681 Dec 05 22:17 load_extract
-r-sr-x--- 1 aixdev app1 52697 Dec 05 18:08 grab_db2_audit
接下来,运行
fpm
以将安全级别修改为
medium
。然后在运行 fpm 后确认安全级别的状态。查看自定义文件是否移除了它们的 SUID 位。
1
2
3
4
5
6
7
8
# fpm -l medium
# fpm -s
Medium level security.
# ls -lt |head
total 9512
-r-xr-x--- 1 root app1 30681 Dec 05 22:17 load_extract
-r-xr-x--- 1 aixdev app1 52697 Dec 05 18:08 grab_db2_audit
注意 ACL需要注意的是,在对访问控制列表 (ACL) 文件运行 fpm 时将会禁用 ACL 文件。但是 ACL 属性保持不变,这是因为对所处理的文件运行了一个八进制
chmod
,它可以重新设置支持 ACL 的属性。在运行 fpm 之前,查看名为 load_extract 的 ACL 文件:
1
2
3
4
5
6
7
8
9
10
11
12
# aclget load_extract
*
* ACL_type AIXC
*
attributes: SUID
base permissions
owner(root): r-x
group(app1): r-x
others: ---
extended permissions
enabled
deny r-x u:alpha
可以看到该文件启用了 SUID 和 ACL,用户 alpha 被拒绝了运行许可。此外,要确认该文件确实为 ACL,注意以下许可属性末端的
+
号:
1
2
3
# ls -lUt |head
total 9512
-r-sr-x---+ 1 root app1 30681 Dec 05 22:17 load_extract
如果我们要运行 fpm 并且它包含 load_extract 文件,那么 ACL 将被禁用。
1
2
3
4
5
6
# fpm -l medium
# fpm -s
Medium level security.
# ls -lUt |head
-r-xr-x--- 1 root app1 30681 Dec 05 22:17 load_extract
在列表中,注意不再出现
+
号。fpm 重新设置了支持 ACL 的属性。我们可以通过对文件发出 aclget 命令确认这一点。
1
2
3
4
5
6
7
8
9
10
11
12
# aclget load_extract
*
* ACL_type AIXC
*
attributes:
base permissions
owner(root): r-x
group(app1): r-x
others: ---
extended permissions
disabled
deny r-x u:alpha
一定要留意 ACL 的情况,并使用 acledit 命令重新启用它们。
结束语在我看来,使用 fpm 是一种非常好的实践。它可以进一步增强您的安全策略。然而,默认文件不一定适合所有情况。您需要针对自己的系统安全需求对默认设置进行修改。
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
FPGA/CPLD可编程逻辑
X86
数字电路
软件开发
医疗电子
资料共享
MCU 单片机技术
ARM
汽车电子
工业控制
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议