2014-01-27 53 views
7

为了运行ssh守护进程服务,pam_loginuid条目必须设置为/etc/pam.d/sshd中的可选项,如针对Ubuntu 13.10的official example中所述。为什么需要使用docker将`pam_loginuid`设置为'optional'的值?

此条目是否可选用于以前版本的Ubuntu?它在Ubuntu 13.10之前是否存在?

设置pam_loginuidoptional是什么意思,反正呢?

我的SSH配置在这方面的安全性要低得多吗?

+1

现在链接:https://docs.docker.com/engine/examples/running_ssh_service/ –

回答

8

pam_loginuid用于在用户通过SSH,X或类似登录进程登录时设置进程的loginuid审计属性。这个属性可以被审计框架用于各种目的。

但是,设置此审计属性需要启用一些与审计相关的功能;并且默认情况下,Docker drops them,所以audit_setloginuid调用将失败。

当PAM模块配置为required时,此类故障是致命的(并且PAM阻止登录进行);而optional意味着“无论如何”。

我可能是错的,但我相信,虽然pam_loginuid在以前的版本(我测试了12.04),但它并没有启用;所以这就是为什么13.10和更高需要这种特殊设置。

0

此调查结果太长,无法发表评论。由于@jpetazzo indicated,这个问题可能是由于缺少CAP_AUDIT_WRITE的能力。这显然会影响Docker和Linux的某些版本,但不会影响其他版本。所以在这里我会试着调查这个的演变。

  • #3015(2013年12月13日,0.7.2)推出帽放弃对LXC守护进程并在下跌的能力
  • #5810名单包括AUDIT_WRITE(2014年5月16日,0.12.0)制成的容器库中删除所有功能,除了列入白名单的人
  • #6527(2014-06-19,1.0.1)从黑名单转移到白名单中,并没有包括在
  • #7179(2014年7月24日,1.2.0 AUDIT_WRITE )将AUDIT_WRITE功能添加到白名单
  • #20662(2016年3月19日,1.11.0)文件移动围绕这样的设置现在是oci/defaults_linux.go

所以它似乎好像0.7.2之前所有版本也从1.2开始,所有版本。 0应该保持CAP_AUDIT_WRITE。由于我看到pam_loginuid与1.12.5相关的问题,因此可能会涉及其他一些功能。

相关问题