我熟悉一些configurationLinux服务器以符合PCI-DSS 3.2的常见方式,至less符合SAQ A的要求。 共同关心的是要求8.5,要求:
通用用户标识和帐户被禁用或删除
这包括root用户,这显然不能被禁用,所以需要“补偿控制”(在PCI-DSS的术语中)。 一个常见的配方是以下的一些变体:
ssh才能使用SSH密钥; sudo来获得root权限; pam_loginuidlogginglogin用户ID; 和 auditd以logging根操作和login用户ID。 然而,如果我今天处理的话,它不是一个我保证的机器:它是一个小型集群(目前有10台机器),而且能够在机器之间ssh (和scp文件)真的非常有用。 必须以非root用户的身份执行此操作将会是一件非常痛苦的事情:几乎总是您需要的文件只能被root用户读取,并且需要放在root用户可以写入的地方。
我想要做的是在机器之间使用ssh作为root,使用服务器上的SSH密钥。 在/etc/ssh/sshd_config使用PermitRootLogin命令在Match Address块中很容易 。 我并不太担心允许一台机器受到攻击的人获得对整个集群的控制权:这些机器是相似的,如果他们设法妥协的话,他们可能会使用相同的stream程来访问其余的。
但是,如果我这样做,我没有能力跟踪谁在运行什么命令,因为当我ssh到另一台机器时,没有loginUID不再附加到进程。 PCI-DSS中的补偿控制需要“满足原始PCI DSS要求的意图和严格性”,要求8.5的目的是为了“追踪系统访问和活动给个人”。 在不保留loginUID的情况下,我们不再提供允许root用户存在的补偿控制。
我希望find的方法是将loginuid从服务器传递到服务器,以root身份login时,可能将其放入环境中。 我不介意这需要隐式地信任源服务器:它已经是。 任何人都可以提出一个这样做的手段? 或者做不到这一点,另一种追踪系统pipe理员活动作为根为特定用户,同时允许简单的机器之间的ssh和scp ?