JDS*_*JDS 5 linux sudo pci-dss limits ubuntu-14.04
这适用于 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
Run Code Online (Sandbox Code Playgroud)
接下来我尝试限制@admins 组中的用户。我认为这些用户是唯一允许 sudo su 到 root 的用户(基于我们现有的自定义 sudo 规则)。
@admins hard maxlogins 1
Run Code Online (Sandbox Code Playgroud)
这似乎做我想做的事,但似乎笨拙/错误。称之为直觉——我不太清楚我认为这个错误的地方。
最后,“为什么?”。为什么我有这个要求?
我们正在尝试实施控制以满足 PCI-DSS 3.1 要求 8.5“不要使用组、共享或通用 ID、密码或其他身份验证方法”——强调“共享”。在 Windows 环境中,您只需授予用户执行任何操作的权限,并且没有人共享主管理员帐户。Linux 环境的设计使得在某些情况下,您确实希望以 root 身份登录。在 Linux 环境中必须有一种符合 PCI 标准的方法来解决这个问题。
这解决了我的问题:记录管理员在生产服务器上运行的所有命令
概括
1)安装auditd
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
Run Code Online (Sandbox Code Playgroud)
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 )
Run Code Online (Sandbox Code Playgroud)
4) 将此行放入这些文件 /etc/pam.d/{login,kdm,sshd} 中
session required pam_loginuid.so
Run Code Online (Sandbox Code Playgroud)
(我包含此摘要,因为链接到解决方案违反了服务器故障方式)
归档时间: |
|
查看次数: |
1136 次 |
最近记录: |