Grsecurity:授予用户权限查看所有进程(Debian Jessie)

当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用户添加到这个组中:

  1. 使用uname -r查找正在运行的内核版本。
  2. grep "GRKERNSEC_PROC_GID" /boot/config-<kernel_release>检查设置
  3. /etc/group查找该组的名称。 同时,您可以检查您的Sensu用户当前所属的所有组,否则,您将在下一步中将其从所有这些组中删除。 (如果该组不存在,请使用groupadd -g GID grsecproc创build它。
  4. 使用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 menuconfigconfiguration它并编译内核。