Linux对其他用户隐藏进程和ps命令
时间:2020-01-09 10:41:35 来源:igfitidea点击:
大多数用户使用SSH客户端访问资源。
如何停止将过程信息泄漏给Linux操作系统上的所有用户?
如何防止用户在Debian/Ubuntu/RHEL/CentOS Linux服务器上看到不属于他们的进程?
运行ps命令时,有什么方法可以隐藏其他用户进程?
如果您使用的是Linux内核3.2+版本(或上述RHEL/CentOS v6.5 +),则可以向其他用户隐藏进程。
只有root用户可以看到所有进程,而用户只能看到自己的进程。
您要做的就是使用Linux内核强化的" hidepid"选项重新挂载/proc文件系统。
这对所有其他命令(例如ps,top,htop,pgrep等)隐藏了进程。
Linux使用hidepid选项对其他用户隐藏进程
此选项定义了我们希望非所有者可以使用多少有关流程的信息。
取值如下:
- " hidepid = 0"是任何人都可以读取所有世界可读的/proc/PID/*文件的默认行为(默认)。
- " hidepid = 1"表示用户不能访问任何
/proc/<pid> /
目录,但可以访问它们自己的目录。诸如cmdline,sched ,状态之类的敏感文件现在可以免受其他用户的攻击。 - "hidepid = 2"这意味着hidepid = 1加上所有/proc/PID /对其他用户是不可见的。它使入侵者的任务变得复杂,这些任务包括有关正在运行的进程,某些守护程序是否以提升的特权运行,其他用户是否运行某些敏感程序,其他用户是否完全运行任何程序等信息。
获取Linux上当前进程的列表
运行:
top htop ps aux
Linux内核保护:隐藏其他用户的进程
执行以下安装命令:
# mount -o remount,rw,nosuid,nodev,noexec,relatime,hidepid=2 /proc
使用文本编辑器(例如nano命令/vim命令)编辑/etc/fstab
,执行:
# vi /etc/fstab
如下更新/追加/修改proc条目,以便在服务器启动时自动启用保护:
## append the following line ## proc /proc proc defaults,nosuid,nodev,noexec,relatime,hidepid=2 0 0
保存并关闭文件。
安全性安装选项如下:
- nosuid:不允许set-user-ID或set-group-ID位生效。
- nodev:不要解释字符或阻止文件系统上的特殊设备。
- noexec:不允许直接在已挂载的文件系统上执行任何二进制文件。
- hidepid:选项定义有关隐藏进程的信息量。
Linux演示:防止用户看到不属于他们的进程
在此示例中,我以Hyman @ cbz-test登录:
$ ssh Hyman@cbz-test $ ps -ef $ sudo -s # mount -o remount,rw,hidepid=2 /proc $ ps -ef $ top $ htop
提示:处理在实施此技术时会中断的应用程序
您需要使用gid = VALUE_HERE
选项:
gid = XXX定义了一个能够收集所有进程信息的组(如hidepid = 0模式)。
应该使用该组,而不是将非root用户放入sudoers文件或其他内容。
但是,不应监视整个系统中的任务的不受信任用户(如守护程序等)不应添加到组中。
因此,将名为monapp的用户添加到要查看进程信息的组(例如admin),并按以下步骤在/etc/fstab中挂载/proc:
proc /proc proc defaults,hidepid=2,gid=admin 0 0