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