AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 50710
In Process
mfriedman
mfriedman
Asked: 2009-08-06 16:58:53 +0800 CST2009-08-06 16:58:53 +0800 CST 2009-08-06 16:58:53 +0800 CST

如何跟踪超级用户活动

  • 772

我想知道在 Linux 环境中跟踪超级用户活动的最佳方法是什么。

具体来说,我正在寻找这些功能:

  • A) 将击键记录到安全的系统日志服务器
  • B) 能够重放 shell 会话(类似于 scriptreplay)
  • C)理想情况下,如果没有对服务器的物理访问,这应该是不可能(或相当困难)规避的。

从安全/审计的角度考虑这一点,在需要允许不同系统管理员(甚至第三方)在服务器上执行特权操作的环境中。

每个管理员都有他自己的名义帐户,并且每个交互会话都应该被完全记录,并且在必要时可以重播它(例如,如果有人使用 mc 删除或更改关键文件,这将不足以知道那个人发出了 mc 命令;必须有一种方法可以准确地查看启动 mc 后所做的事情)。

附加说明:

  1. 正如 womble 所指出的,最好的选择可能是不让人们以 root 权限登录以在服务器上执行更改,而是通过配置管理系统进行。所以让我们假设我们没有这样的系统,我们需要在同一台服务器上授予不同人的 root 级别访问权限。
  2. 我对偷偷摸摸地做这件事一点也不感兴趣:每个以 root 权限登录到服务器的人都会完全意识到会话将被记录(就像呼叫中心操作员知道他们的对话是一样的)被记录)
  3. 没有人会使用通用超级用户帐户(“root”)
  4. 我知道ttyrpld并且它似乎在做我正在寻找的东西。但在这样做之前,我想知道这是否可以通过使用未修改的内核来解决。我想知道是否有任何特别适用于 Debian(或一般 Linux)的工具,允许在不修补 shell 或内核的情况下对超级用户帐户进行全面审计。
linux security audit
  • 10 10 个回答
  • 7307 Views

10 个回答

  • Voted
  1. DisabledLeopard
    2009-08-06T17:49:38+08:002009-08-06T17:49:38+08:00

    对于具有多个管理员的环境,请不要使用 root - 如果可能的话。

    对所有事情都使用 sudo - sudo 非常可配置且易于记录。

    将任何/所有登录名或 su 登录到 root 并调查它们,因为有人正在绕过你既定的规则。

    • 8
  2. romandas
    2009-08-06T20:00:12+08:002009-08-06T20:00:12+08:00

    一方面,您希望监控哪种类型的 root 用户访问?愚蠢的管理员错误还是恶意的内部人员?前者——正如已经建议的那样,您需要一个好的配置管理解决方案。后者——如果他们知道他们在做什么,你只能希望捕捉到足以表明发生了值得调查的事情。您只想知道某种形式的未经授权的活动开始了,并被提醒注意这一事实。如果他们很聪明,他们会禁用您构建的大部分日志记录(通过更改服务器状态或引入他们自己的工具),但希望您能抓住事件的开始。

    话虽如此,我建议您可以使用一些工具。首先,从一个好的 sudo 策略开始(已经建议过)。其次,如果您需要为这些管理员提供 root shell 访问权限,请查看 sudoshell。第三,可能是你最好的选择(虽然是最密集的),看看 linux 内核审计。

    • 2
  3. blauwblaatje
    2009-08-07T00:44:59+08:002009-08-07T00:44:59+08:00

    你可以做的就是使用这个 库进行 sudo,给每个人自己的用户帐户,然后将 sudo -i 放在每个人的个人资料中。这样他们就有了即时的 root 访问权限,并且他们使用的每个命令都会被记录下来。

    • 2
  4. womble
    2009-08-06T17:25:40+08:002009-08-06T17:25:40+08:00

    他们有根。你能期望的最好的结果就是至少看看他们什么时候决定打破你的小监控乌托邦,但除此之外,他们做了什么,谁都猜不透。

    我能想到的“最佳”选项是强制使用普遍的配置自动化和管理,并使用修订控制系统管理您的清单并通过它部署更新。然后阻止实际的 root 登录到服务器。(紧急“哦,不,我弄坏了东西”访问可以通过每次使用后未分发和更改的密码或 SSH 密钥提供,每个人都可以看到系统管理员搞砸了,以确保他们没有改变任何东西)。

    是的,这会带来不便和烦人,但是如果您偏执到想要监视每个人的行为到这种程度,我猜您所处的环境在其他方面既不方便又烦人似乎不是一个大问题。

    • 1
  5. theotherreceive
    2009-08-06T19:31:16+08:002009-08-06T19:31:16+08:00

    正如其他人所说,几乎没有办法以他们无法禁用的方式记录具有完全 root 访问权限的用户,但是如果你正在运行 debian/ubuntu 看看snoopy,它非常接近你想要的

    snoopy 只是一个共享库,用作 libc 提供的 execve() 函数的包装器,用于记录对 syslog (authpriv) 的每次调用。系统管理员可能会发现 snoopy 在诸如轻/重系统监控、跟踪其他管理员的操作以及对系统中发生的事情(例如运行 cgi 脚本的 apache)等任务有很好的“感觉”。

    • 1
  6. KPWINC
    2009-08-06T18:10:03+08:002009-08-06T18:10:03+08:00

    我同意 disabledleopard 关于对所有事情都使用 sudo 的评论。它确实使事情更容易记录。

    我还会定期添加备份 bash 历史文件。看似经常被忽视,但有时可以成为重要的信息来源……问问高盛就知道了。;-)

    http://www.guardian.co.uk/business/2009/jul/12/goldman-sachs-sergey-aleynikov

    • 0
  7. Siddharth Bhattacharya
    2009-08-06T18:46:49+08:002009-08-06T18:46:49+08:00

    那将是困难的...

    root 可以运行经过仔细测试的脚本,这些脚本可以违反所有安全措施(杀死监控进程),粉碎日志文件/修剪它们等......但仍然......

    假设拥有 root 权限的多个管理员作为一个团队工作。root 也可以终止任何监控进程。不幸的是,该登录名/密码变得公开。或者他们得到不受欢迎的公司。

    虽然不推荐使用 UID 0 创建多个 root 帐户,但此处可能适用。

    在 /etc/ssh/sshd_config 将行更改为: PermitRootLogin no

    被推荐。因此,在这里,用户使用他/她的普通帐户登录(日期时间戳与(可能是欺骗的 IP 地址)一起记录)然后切换到 root。使用 su 命令

    并且像这样阻止以root身份直接登录。

    我们必须思考,root 不能在这里做什么。

    sudo 应该不错。备份 /etc 目录下的配置文件应该不错。/var/ 目录 日志文件应定期通过电子邮件发送或存储在单独的 NFS 上。

    如何编写脚本来集成来自 Mobile Gateway 公司的 API,这些公司将 SMS 分组为所有 root 用户的手机,其中一个在外工作。我知道那会很烦人,但仍然如此。

    破坏 SSH 几乎是不可能的。

    • 0
  8. chmeee
    2009-08-06T21:35:21+08:002009-08-06T21:35:21+08:00

    我们在客户的网站上有以下设置:

    • 同样开放以在 AD(个人帐户)上使用 kerberos 进行身份验证
    • 仅授权给某些 AD 组的 Unix 管理员
    • sudoers 组 == AD 组
    • 每台服务器上的OSSEC HIDS代理和强化服务器上​​的管理器
    • OSSEC 网页界面
    • Splunk 3 与Splunk-for-OSSEC

    它将记录服务器上的每次 sudo 使用,并跟踪文件的任何更改、软件包的安装、可疑进程等。

    • 0
  9. Dima Medvedev
    2009-08-07T00:07:56+08:002009-08-07T00:07:56+08:00

    我们有几个终端服务器可以访问我们所有的设备,这意味着一个人可以从终端服务器登录到任何东西,或者如果一个人有物理访问权限。

    终端服务器上的 Sshd 使用http://www.kdvelectronics.eu/ssh-logging/ssh-logging.html进行了修补,工作正常,但很长时间没有更新。我已经对其进行了一些修改以在 openssh 4.7 上工作,但未能在 5.1 上做到这一点。修补了 sshd 段错误,只要我没有足够的时间来修复它,我几乎已经切换到 ttyrpld。

    • 0
  10. mfriedman
    2009-08-07T09:18:00+08:002009-08-07T09:18:00+08:00

    到目前为止,这就是我所拥有的:

    • sudosh:似乎支持 A 和 B(虽然不完全确定 A)
    • Sudoscript:似乎支持 B (Sudoscript 有一个名为 sudoshell 的组件,如果这是 romandas 建议的,感谢您的提示)
    • Snoopy Logger或sudo_exetrace:不完全是我想要的,但可能是一个很好的补充(感谢 theotherreceive 和 blauwblaatje 提供这些链接)

    你知道其他不涉及修补内核或其他系统组件的类似工具吗?

    • 0

相关问题

  • 在 SOHO 环境中实施的最佳 VPN 技术是什么?[关闭]

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve