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 / 问题 / 747219
Accepted
JDS
JDS
Asked: 2016-01-07 13:38:43 +0800 CST2016-01-07 13:38:43 +0800 CST 2016-01-07 13:38:43 +0800 CST

限制切换到root帐户的并发用户数?

  • 772

这适用于 Ubuntu 14.04 和 Centos 7。

我需要限制以 root 身份运行的用户数量。即在 CLI 上以 root 身份登录。

基本上,我一次只希望一个用户能够以 root 身份运行命令。这里的目的是审计。

我查看了 /etc/security/limits.conf 中的设置限制,但 pam_limits.so 模块似乎只影响登录。或登录shell。没有把握。但无论具体如何,它确实会阻止用户多次通过 SSH 连接到一个盒子,但不会阻止多个用户通过“sudo su”成为 root。因此,设置limits.conf 仍然可以允许多个用户一次以root 身份登录。

这是我尝试的限制这一点的limits.conf行:

root            hard    maxlogins            1

接下来我尝试限制@admins 组中的用户。我认为这些用户是唯一允许 sudo su 到 root 的用户(基于我们现有的自定义 sudo 规则)。

@admins            hard    maxlogins            1

这似乎做了我想要的,但似乎笨重/错误。称之为直觉——我不太了解我认为这个错误的地方。

最后,“为什么?”。为什么我有这个要求?

我们正在尝试实施控制以满足 PCI-DSS 3.1 要求 8.5“不要使用组、共享或通用 ID、密码或其他身份验证方法”——强调“共享”。在 Windows 环境中,您只需授予用户执行任何操作的权限,并且没有人共享主管理员帐户。Linux 环境的设计使得在某些情况下,您确实希望以 root 身份登录。在 Linux 环境中必须有一种符合 PCI 的方法来解决这个问题。

linux
  • 1 1 个回答
  • 1347 Views

1 个回答

  • Voted
  1. Best Answer
    JDS
    2016-01-15T12:35:14+08:002016-01-15T12:35:14+08:00

    这解决了我的问题:记录管理员在生产服务器上运行的所有命令

    概括

    1)安装审核

    2)execve在 audit.rules 中使用这些规则审计系统调用

    -a exit,always -F arch=b64 -F euid=0 -S execve
    -a exit,always -F arch=b32 -F euid=0 -S execve
    

    3) 添加audit=1到 grub.conf

    Centos 和 Ubuntu 的示例:

    #Centos
    grep audit=1  /etc/default/grub || \
    ( sed -i.bak -e '/^GRUB_CMDLINE_LINUX=/ s/" *$/ audit=1"/' /etc/default/grub && \
    /usr/sbin/grub2-mkconfig -o /boot/grub2/grub.cfg )
    
    #ubuntu
    grep audit=1  /etc/default/grub || \
    ( sed -i.bak -e '/^GRUB_CMDLINE_LINUX=/ s/" *$/ audit=1"/' /etc/default/grub && \
    /usr/sbin/update-grub )
    

    4) 将此行放在这些文件 /etc/pam.d/{login,kdm,sshd}

    session  required                pam_loginuid.so
    

    (我包含此摘要,因为链接到解决方案违反了 Serverfault 方式)

    • 2

相关问题

  • Linux 主机到主机迁移

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 在 RHEL4 上修改 CUPS 中的现有打印机设置

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

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

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

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

    • 9 个回答
  • Marko Smith

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

    • 3 个回答
  • Marko Smith

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

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +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