我需要将我的服务器的 root 密码提供给帮助我设置邮件服务器的人。现在,由于这将是一名自由职业者,我有点担心他可能会造成一些损害,所以我想知道是否有可能我可以“实时”看到他发出的命令(我将与他同时连接)以及他是否运行文件复制(我主要担心的是,这样别人就不会复制位于我的 /html 文件夹中的文件),这样我就可以切断他的连接并立即更改密码。
编辑:我最终的做法是,在他连接之前,我设置了teamviewer 会话并准备好终端(以 root 身份登录)。然后,我监视他发出的所有命令。这样我就不必给他 root 权限了。
答案1
我认为如果你不信任他,给他 root 密码不是一个好主意。当他得到密码后,他就可以为所欲为。
如果他在您注意到之前就更改了 root 密码该怎么办?
要回答有关监视用户活动的问题,您可以尝试whowatch
。它可以显示登录的用户及其正在运行的进程。但是,您可能无法注意到ls
在小目录中执行的快速命令。
答案2
正如@Khaled所说,如果用户完全怀有敌意,那么授予 root 权限是无法追踪的,但对于已识别且数量未知的用户,最好像对待顽皮的孩子一样对待他们。下面有一些步骤,每个步骤都会逐渐变得更加偏执…… ;-)
1)告知他们您正在观看。
/etc/motd
例如设置合适的登录策略消息;
------------------------------------------------------------------------------------
这是一个私有系统;访问或使用需要系统所有者的明确授权。未经授权的访问或使用可能
导致严重的民事和/或刑事责任,包括但不限于 18 USC 第 1030 条及以下条款。保留所有权利。所有活动均受到监控和记录。
------------------------------------------------------------------------------------
2)确保他们知道有规则。
使用sudo
而不是 root 来提供管理员权限。
完全 sudo 用户具有与 root 相同的权限,因此可以掩盖其踪迹。但这很困难,需要复杂的工具来抹去他们的行为,并从 /var/log/auth.log 中删除条目
3)具有不可篡改的记录。
使用集中式日志记录并为 /var/log/auth.log 和 /var/log/messages 内核消息发送实例日志。
与本地 syslog、内核及其模块不同,集中式日志服务器不能被远程 root 用户篡改。rsyslog、syslog-ng、logstash 等提供集中式日志解决方案
4)了解更改了什么、由谁更改、何时更改以及更改目的。
使用 auditd 和基本规则集审计本地活动。或者部署 AIDE 或某些文件校验和数据库。
auditd 是一个系统守护进程,它将系统事件记录到日志文件中,
这里有很多教程... http://doc.opensuse.org/products/draft/SLES/SLES-security_sd_draft/cha.audit.comp.html http://doc.opensuse.org/products/draft/SLES/SLES-security_sd_draft/cha.audit.setup.html http://is.gd/34J33G http://www.ibm.com/developerworks/linux/library/l-security-audit/index.html
答案3
如果您不相信他能够采取适当行为,那么您根本就不应该授予他访问权限。
如上所述,共享屏幕会话是一个好主意,或者只给他一组有限的 sudo 命令。