Geo*_*e Y 4 permissions audit rsyslog administrative-privileges
在后台启动进程或将其作为systemd
服务很容易。
然而,如果我想启动一个进程来监视Linux机器上的活动,那么它就成为了攻击的目标。如果任何用户想做坏事,它会首先通过简单地执行或 来终止该进程,即使他们只是sudo
ers 或wheel
用户。kill
systemctl stop
有没有办法强制执行只能杀死的进程root
?
伙计们,只要想到连rsyslog
服务都可以被杀死,你就应该承认 Linux 确实是多么脆弱。这就像飞行员可以关闭黑匣子一样。有航空公司允许这种情况发生吗?或者是否有人给飞行员一份允许名单,以阻止他们采取任何措施来拯救飞机?当然,飞行员可以让飞机坠毁,但黑匣子会记录下来。
从安全角度来看,我关于禁止名单的提议是合法的,尽管它可能会让你感到害怕。所以不要试图责怪提出问题的人,好吗?
Nik*_*nov 31
拥有不受限制的 sudo/wheel 权限,任何人都可以撤消您所做的任何事情。即使您设法通过消除直接终止进程的可能性(例如使用 )来实现此目的sudo kill
,仍然可以使用其他 sudo 命令来规避此问题,或者您也将自己锁定在管理之外。
问问自己,为什么不受信任的用户首先拥有不受限制的 sudo 权限?他们不应该。仅将此类特权给予您完全信任的人。如果仍有一些特权命令需要执行,请仅对这些命令启用 sudo:
+netmgr /usr/sbin/ifup, /usr/sbin/ifdown
Run Code Online (Sandbox Code Playgroud)
(用于visudo -f /etc/sudoers.d/netmgr
将其放入 sudoers 附加文件中)。
这样您就可以允许用户仅运行sudo /usr/sbin/ifup
和sudo /usr/sbin/ifdown
,但不允许运行其他 sudo 命令。中还有大量其他示例、说明和安全注意事项man sudoers
。阅读!
审计通常以其他方式完成。特别是,您设置另一台计算机,配置其系统日志以接受来自远程站的日志。在有问题的机器上,您设置了日志记录,以便除了本地存储之外,它还会将所有日志发送到日志记录机器中。即使有人禁用此日志发送,禁用本身的操作也会被记录下来,所以至少您会知道谁是罪魁祸首。
bta*_*bta 18
你不能赋予某人权力,然后又阻止他们使用它。你必须严格限制你赋予他们的权力,只包括你希望他们拥有的权力。
您在评论中说:
我必须允许他们使用
kill
orsystemctl stop
因为有一些应用程序确实需要这些权限来完成他们的工作
这并不意味着这些用户需要访问这些命令,而只需要访问那些应用程序。用户的运行权限有限sudo ./someprogram
,一旦该程序以 root 身份运行,它就可以kill
根据需要使用 等。不过,用户无法直接访问这些内部命令。
从根本上讲,用户不需要访问命令,他们需要访问功能。如果kill
风险太大,则阻止对其进行访问并提供其他更安全的方法来实现相同的结果。也许您创建了一个小型实用程序safekill
,其行为类似于kill
但拒绝终止某些进程的请求。为您的用户提供 sudo 访问权限safekill
,但不是真正的kill
. 如果用户总是使用这些命令来做同样的事情,请将整个过程封装在一个小程序中,并让他们使用它而不是手动执行(例如,他们会运行而不是单独sudo restart_webservers
终止并重新启动所有不同的服务器进程) 。您的用户仍然可以访问他们所需的功能,但他们无法直接使用危险武器。
根据您的特定设置,可能还有另一种更极端的执行机制可用。一些处理器具有可用的看门狗定时器。修改您的活动监控程序以启动看门狗并每隔几秒钟重置一次。如果有人设法杀死您的监视器,看门狗计时器将到期,系统将自行重新启动,在启动时重新启动监视器程序。这不会严格阻止监视器被禁用,但会禁止任何人在禁用它后做任何有意义的事情。这也会在您的系统日志中创建漂亮的大危险信号。大多数带有看门狗的系统都会报告看门狗何时触发特定的重新启动。当用户登录 shell 时发生的看门狗触发的重新启动应该被视为非常可疑。
小智 10
Linux菜鸟在这里。您是否可以考虑编写只执行这些人应该做的事情的程序或脚本,然后使它们成为 root 所有者并添加它们 setuid 位?当然,一个大问题是您可能不希望其他人运行这些命令。不知道你能否获取到原始的用户信息。当然,使用 setuid/setgid 时始终需要格外小心。
归档时间: |
|
查看次数: |
5680 次 |
最近记录: |