Linux Grsecurity2 实战:Debian系统下如何隐藏进程不被其他用户通过ps命令查看


阅读 8 次

Grsecurity2 的基本配置

首先确保你已经安装了grsecurity2补丁和gradm工具包:

sudo apt install linux-patch-grsecurity2 gradm2

启用RBAC系统

Grsecurity2通过基于角色的访问控制(RBAC)来实现进程隐藏功能。首先需要启用RBAC系统:

sudo gradm2 -E
sudo gradm2 -P admin

这会创建一个管理员密码,用于后续的RBAC配置。

创建自定义角色

我们需要创建一个新角色来限制普通用户查看进程的权限:

sudo nano /etc/grsec/policy

添加以下内容:

role "restricted-user" {
  subject /bin/ps {
    /proc r
    /proc/[0-9]*/stat r
    /proc/[0-9]*/status r
    /proc/[0-9]*/cmdline r
    /proc/[0-9]*/exe r
    /proc/[0-9]*/fd r
    /proc/[0-9]*/fdinfo r
    /proc/[0-9]*/environ r
    /proc/[0-9]*/attr r
    /proc/[0-9]*/auxv r
    /proc/[0-9]*/cgroup r
    /proc/[0-9]*/comm r
    /proc/[0-9]*/limits r
    /proc/[0-9]*/maps r
    /proc/[0-9]*/mountinfo r
    /proc/[0-9]*/mounts r
    /proc/[0-9]*/numa_maps r
    /proc/[0-9]*/smaps r
    /proc/[0-9]*/stack r
    /proc/[0-9]*/syscall r
    /proc/[0-9]*/wchan r
    /proc/[0-9]*/task/[0-9]*/ r
    /proc/[0-9]*/task/[0-9]*/stat r
    /proc/[0-9]*/task/[0-9]*/status r
    /proc/[0-9]*/task/[0-9]*/cmdline r
    /proc/[0-9]*/task/[0-9]*/exe r
    /proc/[0-9]*/task/[0-9]*/fd r
    /proc/[0-9]*/task/[0-9]*/fdinfo r
    /proc/[0-9]*/task/[0-9]*/environ r
    /proc/[0-9]*/task/[0-9]*/attr r
    /proc/[0-9]*/task/[0-9]*/auxv r
    /proc/[0-9]*/task/[0-9]*/cgroup r
    /proc/[0-9]*/task/[0-9]*/comm r
    /proc/[0-9]*/task/[0-9]*/limits r
    /proc/[0-9]*/task/[0-9]*/maps r
    /proc/[0-9]*/task/[0-9]*/mountinfo r
    /proc/[0-9]*/task/[0-9]*/mounts r
    /proc/[0-9]*/task/[0-9]*/numa_maps r
    /proc/[0-9]*/task/[0-9]*/smaps r
    /proc/[0-9]*/task/[0-9]*/stack r
    /proc/[0-9]*/task/[0-9]*/syscall r
    /proc/[0-9]*/task/[0-9]*/wchan r
  }
}

应用配置并测试

保存配置文件后,重新加载RBAC策略:

sudo gradm2 -R

现在普通用户运行ps命令时,将只能看到自己的进程。

进阶配置:完全隐藏特定进程

如果需要完全隐藏某些进程,可以修改内核参数:

echo 1 > /proc/sys/kernel/grsecurity/hide_processes
echo "your_username" > /proc/sys/kernel/grsecurity/hidden_procs

或者永久修改:

sudo nano /etc/sysctl.conf
kernel.grsecurity.hide_processes = 1
kernel.grsecurity.hidden_procs = "your_username"

常见问题排查

如果遇到问题,可以检查RBAC系统状态:

sudo gradm2 -S

查看学习模式日志:

sudo gradm2 -F -L /var/log/grsec/learn.log -O /etc/grsec/learning.policy