当Debian Jessie使用grsecurity编译时,一个简单的用户不能看到所有的进程。 因此,Sensu客户端(监控和遥测解决scheme)执行的任务不能看到是否存在另一个进程(如Apache)。
有没有办法让sensu
用户有权查看所有系统进程?
如果用户看不到其他进程,Grsecurity将被编译为内核configuration符号:
仅限用户限制/ proc
GRKERNSEC_PROC_USER
如果您在这里说
Y
,非root用户将只能查看自己的进程,并限制他们查看networking相关信息,查看内核符号和模块信息。
它取决于GRKERNSEC_PROC_USERGROUP
是否允许用户通过将用户添加到特定组中来查看其他进程。
允许特殊组
GRKERNSEC_PROC_USERGROUP
如果你在这里说
Y
,你将能够select一个能够查看所有进程和networking相关信息的组。 如果您启用了GRKERNSEC_HIDESYM
,内核和符号信息可能仍然隐藏。 如果要以非root用户身份运行identd,则此选项非常有用。 您select的组也可以在启动时通过内核命令行中的grsec_proc_gid=
进行select。
GRKERNSEC_PROC_GID
指定被豁免的组(如果没有通过启动时内核CLI设置的话)。
你可以检查你是否有这个设置,并将你的Sensu用户添加到这个组中:
uname -r
查找正在运行的内核版本。 grep "GRKERNSEC_PROC_GID" /boot/config-<kernel_release>
检查设置 /etc/group
查找该组的名称。 同时,您可以检查您的Sensu用户当前所属的所有组,否则,您将在下一步中将其从所有这些组中删除。 (如果该组不存在,请使用groupadd -g GID grsecproc
创build它。 使用usermod -a -G GROUP sensu
将您的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
configuration它并编译内核。