我刚刚docker-ce在 CentOS 上安装了最新版本,但我无法从相邻服务器访问已发布的端口,也无法从容器本身访问外部。
在启用 NetworkManager 和 FirewallD 的情况下运行普通的 CentOS 8。默认防火墙区域是public.
版本:
docker-ce 19.03.3(官方 Docker RPM)containerd.io 1.2.6(用于 CentOS 7 的官方 Docker RPM - 尚不适用于 CentOS 8)我正在尝试对 Apache 服务器进行 Kerberize,并允许创建的服务器主体登录到 Active Directory。我遵循了在线提供的众多教程之一,它似乎工作正常。我在项目的 Linux 方面,而企业 IT 在 Windows 方面。
IT 为我提供了一个服务帐户和一个服务主体。在此示例中,我将其称为 HTTP/mysite.mycorp.com@MYCORP.COM。他们为我提供了该主体的密钥表文件,其中涉及在 AD 服务器上运行名为 ktpass.exe 的工具。
我已经验证 AD/KDC 的 KVNO 和密钥表文件匹配。一切都很好。
主机名有正确的 DNS A 记录,IP 有正确的 PTR 记录。两台服务器时间同步。
我可以使用已发布的密钥表文件从 AD/KDC 请求上述服务主体的票证,如下所示:
kinit -k -t http.keytab HTTP/mysite.mycorp.com@MYCORP.COM
Run Code Online (Sandbox Code Playgroud)
这有效。我获得了一张票,我可以使用这张票来处理诸如查询 AD/LDAP 目录之类的事情。密钥表也非常适合运行 Single Signon Apache 站点,这也是本练习的部分目标。
半个小时过去了。
尝试使用上述 kinit 命令登录现在失败并显示以下消息:
Client not found in Kerberos database
Run Code Online (Sandbox Code Playgroud)
我无法作为服务主体进行身份验证,就像在 AD 服务器上删除了主体一样。
现在它变得很奇怪,至少对我来说:
根据请求,AD 管理员再次运行 ktpass.exe 工具,为我的服务构建一个新的密钥表文件。KVNO(密钥版本号)在服务器上增加,导致我们的 Apache 测试服务器停止验证 Kerberos 单点登录。这是我目前的配置所预期的。令我们所有人惊讶的是,现在 kinit 命令再次起作用了。我们又给自己买了半小时,然后它又停止工作了。
我们的 IT 部门在这里不知所措,他们推测这是 AD 服务器本身的问题。我认为这是配置,但据他们说,他们的设置中的任何地方都没有半小时限制。
我遵循了http://www.grolmsnet.de/kerbtut/(参见第 7 节),但在我找到的所有文档中,该方法似乎都相同。我没有找到任何关于服务主体时间限制的参考。 …