473*_*469 5 openldap haproxy sasl
我的 kerberos 域在 MYEXAMPLE.ORG 中,但服务器位于 dmz-int.example.org dns 区域。
LDAP 服务器是 b1.dmz-int.example.org;它的密钥表包括:
udo ktutil -k /etc/krb5.keytab 列表 /etc/krb5.keytab: Vno 类型主要别名 7 arcfour-hmac-md5 b1$@MYEXAMPLE.ORG 7 aes128-cts-hmac-sha1-96 b1$@MYEXAMPLE.ORG 7 aes256-cts-hmac-sha1-96 b1$@MYEXAMPLE.ORG 7 arcfour-hmac-md5 主机/b1.dmz-int.example.org@MYEXAMPLE.ORG 7 aes128-cts-hmac-sha1-96 主机/b1.dmz-int.example.org@MYEXAMPLE.ORG 7 aes256-cts-hmac-sha1-96 主机/b1.dmz-int.example.org@MYEXAMPLE.ORG 7 arcfour-hmac-md5 ldap/b1.dmz-int.example.org@MYEXAMPLE.ORG 7 aes128-cts-hmac-sha1-96 ldap/b1.dmz-int.example.org@MYEXAMPLE.ORG 7 aes256-cts-hmac-sha1-96 ldap/b1.dmz-int.example.org@MYEXAMPLE.ORG 7 arcfour-hmac-md5 ldap/ldap.dmz-int.example.org@MYEXAMPLE.ORG 7 aes128-cts-hmac-sha1-96 ldap/ldap.dmz-int.example.org@MYEXAMPLE.ORG 7 aes256-cts-hmac-sha1-96 ldap/ldap.dmz-int.example.org@MYEXAMPLE.ORG 7 arcfour-hmac-md5 ldap/ldap.unimore.it@MYEXAMPLE.ORG 7 aes128-cts-hmac-sha1-96 ldap/ldap.unimore.it@MYEXAMPLE.ORG 7 aes256-cts-hmac-sha1-96 ldap/ldap.unimore.it@MYEXAMPLE.ORG
ldap2.myexample.org
是CNAME
的b1.dmz-int.example.org
现在我可以连接GSSAPI
到 LDAP 服务器:
$ kinit
$ ldapsearch -ZZ -h b1.dmz-int.example.org 'uid=test'
SASL/GSSAPI authentication started
SASL username: user@MYEXAMPLE.ORG
SASL SSF: 56
SASL data security layer installed.
[...]
$ ldapsearch -ZZ -h ldap2.myexample.org 'uid=test'
SASL/GSSAPI authentication started
SASL username: user@MYEXAMPLE.ORG
SASL SSF: 56
SASL data security layer installed.
[...]
$ klist
Credentials cache: FILE:/tmp/krb5cc_1000
Principal: user@MYEXAMPLE.ORG
Issued Expires Principal
Sep 6 09:03:35 2016 Sep 6 19:03:32 2016 krbtgt/MYEXAMPLE.ORG@MYEXAMPLE.ORG
Sep 6 09:03:39 2016 Sep 6 19:03:32 2016 ldap/b1.dmz-int.example.org@MYEXAMPLE.ORG
Run Code Online (Sandbox Code Playgroud)
看起来不错。
现在是代理。
代理 A 记录是ldap.dmz-int.example.org
,它有一个CNAME
as ldap.myexample.org
。
代理是端口 389 和 636 的 HAPROXY 第 4 层SASL
。没有它就可以正常工作。
$ ldapsearch -ZZ -h ldap.myexample.org 'uid=test' SASL/GSSAPI 认证开始 ldap_sasl_interactive_bind_s:本地错误(-2) 附加信息:SASL(-1):通用故障:GSSAPI 错误:杂项故障(见正文)(未找到匹配凭证(ldap/ldap.dmz-int.example.org@DMZ-INT.EXAMPLE.ORG)) $ ldapsearch -h ldap.dmz-int.example.org 'uid=test' SASL/GSSAPI 认证开始 ldap_sasl_interactive_bind_s:本地错误(-2) 附加信息:SASL(-1):通用故障:GSSAPI 错误:杂项故障(见正文)(未找到匹配凭证(ldap/ldap.dmz-int.example.org@DMZ-INT.EXAMPLE.ORG))
现在SASL
不起作用。SPN
服务器密钥表中是否需要额外的东西?我需要一些 dns 修复吗?为什么代理查询查找:ldap/ldap.dmz-int.example.org@DMZ-INT.EXAMPLE.ORG
principal 而不是ldap/ldap.dmz-int.example.org@MYEXAMPLE.ORG
?
作为参考,遵循haproxy conf文件:
$ cat /etc/haproxy/haproxy.cfg 全球的 日志 /dev/log local0 # log /dev/log local1 通知 chroot /var/lib/haproxy stats socket /run/haproxy/admin.sock 模式 660 级管理员 统计超时 30 秒 用户haproxy 组haproxy 守护进程 # 默认 SSL 材料位置 ca-base /etc/ssl/certs crt-base /etc/ssl/private # 在启用 SSL 的侦听套接字上使用的默认密码。 # 有关更多信息,请参阅密码(1SSL)。这份名单来自: # https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/ ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES :!aNULL:!MD5:!DSS ssl-default-bind-options no-sslv3 # LDAP 和 LDAP/STARTTLS 前端 ldap_service_front 登录全局 模式tcp 绑定 *:389 描述 LDAP 服务 选项套接字统计 选项 tcpka 选项 tcplog 超时客户端 10s default_backend ldap_service_back 后端 ldap_service_back 登录全局 服务器 ldap-1 b1.myexample.org:389 检查下降 1 上升 1 间 2s 服务器 ldap-2 b2.myexample.org:389 检查下降 1 上升 1 间 2 秒 模式tcp 平衡最少连接 选项 tcpka 选项 LDAP 检查 超时服务器 10s 超时连接 1s
您需要ignore_acceptor_hostname = true
在 的任一[libdefaults]
或适当的小节中[appdefaults]
。
ignore_acceptor_hostname
当接受基于主机的服务主体的 GSSAPI 或 krb5 安全上下文时,忽略调用应用程序传递的任何主机名,并允许客户端对密钥表中与服务名称和领域名称(如果给定)匹配的任何服务主体进行身份验证。此选项可以提高多宿主主机上服务器应用程序的管理灵活性,但可能会损害虚拟托管环境的安全性。
默认值为 false。1.10 版本中的新增功能。
归档时间: |
|
查看次数: |
2507 次 |
最近记录: |