当 Debian Jessie 使用 grsecurity 编译时,普通用户无法看到所有进程。因此 Sensu 客户端(监控和遥测解决方案)执行的任务无法看到是否存在其他进程(如 Apache)。
有没有办法授予用户sensu
查看所有系统进程的权限?
答案1
如果用户看不到彼此的进程,Grsecurity 是使用内核配置符号进行编译的:
GRKERNSEC_PROC_USER
这里说的话
Y
,非root用户就只能查看自己的进程,而不能查看网络相关的信息,也不能查看内核符号和模块信息。
这取决于GRKERNSEC_PROC_USERGROUP
您是否可以通过将用户添加到特殊组中来允许用户查看其他进程。
GRKERNSEC_PROC_USERGROUP
如果您
Y
在此处输入,您将能够选择一个能够查看所有进程和网络相关信息的组。如果您已启用,内核和符号信息可能仍处于隐藏状态。如果您想以非 root 用户身份运行 identd,此选项很有用。您也可以在启动时通过内核命令GRKERNSEC_HIDESYM
行选择您选择的组。grsec_proc_gid=
并GRKERNSEC_PROC_GID
指定免除的组(如果未通过启动时内核 CLI 设置)。
您可以检查是否已设置此项,并将您的 Sensu 用户添加到此组:
- 使用 查找您正在运行的内核版本
uname -r
。 - 检查设置
grep "GRKERNSEC_PROC_GID" /boot/config-<kernel_release>
- 从 中查找此组的名称
/etc/group
。同时,您可以检查 Sensu 用户当前所属的所有组,否则您将在下一步将其从所有这些组中删除。(如果该组不存在,请使用 创建它groupadd -g GID grsecproc
。) 使用 将您的 Sensu 用户添加到此组
usermod -a -G GROUP sensu
,但不要忘记列出步骤 3 中的所有其他组:-G, --groups GROUP1[,GROUP2,...[,GROUPN]]] A list of supplementary groups which the user is also a member of. Each group is separated from the next by a comma, with no intervening whitespace. The groups are subject to the same restrictions as the group given with the -g option. If the user is currently a member of a group which is not listed, the user will be removed from the group. This behaviour can be changed via the -a option, which appends the user to the current supplementary group list.
作为相同的步骤适用于所有服务器监控软件,群组列表可能会有所不同。因此,即使在这种情况下 Sensu 没有任何重要的团体,我也必须强调这一点。
如果GRKERNSEC_PROC_GID
(或GRKERNSEC_PROC_USERGROUP
)未设置,(阅读有关在 Jessie 中编译新内核并且)您可以使用它来配置make menuconfig
和编译内核。