A-A+

Linux对其他用户隐藏进程和ps命令

2019年12月07日 学习小计, 学习随笔 暂无评论 阅读 3,449 次

Linux对其他用户隐藏进程和ps命令

运行一个多用户系统。大多数用户使用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选项对其他用户隐藏进程

此选项定义了我们希望非所有者可以使用多少有关流程的信息。取值如下:

  1. hidepid=0 –旧的行为–任何人都可以阅读所有世界可读的/ proc / PID / *文件(默认)。
  2. hidepid=1–这意味着用户可能无法访问任何/proc/<pid>/目录,但只能访问他们自己的目录。诸如cmdline,sched *,状态之类的敏感文件现在可以防止其他用户使用。
  3. hidepid=2这意味着hidepid = 1加上所有/ proc / PID /将对其他用户不可见。它使入侵者的任务变得复杂,即收集有关正在运行的进程,某个守护程序是否以提升的特权运行,另一个用户是否运行某个敏感程序,其他用户是否完全运行任何程序等信息。

获取Linux上当前进程的列表

运行:
top
htop
ps aux

如何在Linux中向其他用户隐藏您的进程
ps命令显示root用户进程,我以常规用户身份登录

Linux内核保护:隐藏其他用户的进程

键入以下安装命令:
# mount -o remount,rw,nosuid,nodev,noexec,relatime,hidepid=2 /proc
使用文本编辑器(例如nano命令/ vim命令)编辑/ etc / fstab,输入:
# vi /etc/fstab
更新/附加/修改proc条目,如下所示,以便在服务器启动时自动启用保护:

##追加以下行##
proc / proc proc默认值,nosuid,nodev,noexec,relatime,hidepid = 2 0 0

保存并关闭文件。安全性安装选项如下:

  • nosuid:不允许set-user-ID或set-group-ID位生效。
  • nodev:不要解释字符或阻止文件系统上的特殊设备。
  • noexec:不允许直接在已挂载的文件系统上执行任何二进制文件。
  • hidepid:选项定义有关隐藏进程的信息量。

Linux演示:防止用户看到不属于他们的进程

在此示例中,我以vivek @ cbz-test身份登录:示例输出:
$ ssh vivek@cbz-test
$ ps -ef
$ sudo -s
# mount -o remount,rw,hidepid=2 /proc
$ ps -ef
$ top
$ htop

GIF动画01:隐藏式动作
GIF动画01:隐藏式动作

提示:处理在实施此技术时会中断的应用程序

您需要使用以下gid=VALUE_HERE选项:

gid = XXX定义了一个组,该组将能够收集所有进程的信息(如hidepid = 0模式)。应该使用该组,而不是将非root用户放入sudoers文件等。但是,不应监视整个系统中的任务的不受信任用户(如守护程序等)不应添加到组中。

因此,将名为monapp的用户添加到要查看进程信息的组(例如admin),并按以下步骤在/ etc / fstab中挂载/ proc:

proc / proc proc默认值,hidepid = 2,gid = admin 0 0 
结论

现在您知道了如何向其他用户和ps,top,htop等命令隐藏Linux进程。有关更多信息,请参见以下URL:

原文地址 https://www.cyberciti.biz/faq/linux-hide-processes-from-other-users/

给我留言

Copyright © 浩然东方 保留所有权利.   Theme  Ality 07032740

用户登录