use*_*519 4 openldap active-directory ldap rabbitmq
我有一个需要连接到 AD 的 rabbitmq 服务器。
配置是使用 puppet rabbitmq 模块设置的,有一些小的手动更改(日志级别):
% This file managed by Puppet
% Template Path: rabbitmq/templates/rabbitmq.config
[
{rabbit, [
{auth_backends, [rabbit_auth_backend_internal, rabbit_auth_backend_ldap]},
{tcp_listen_options,
[binary,
{packet, raw},
{reuseaddr, true},
{backlog, 128},
{nodelay, true},
{exit_on_close, false}]
},
{default_user, <<"guest">>},
{default_pass, <<"guest">>}
]},
{kernel, [
]}
,
{rabbitmq_management, [
{listener, [
{port, 15672}
]}
]}
,
% Configure the LDAP authentication plugin
{rabbitmq_auth_backend_ldap, [
{other_bind, anon},
{servers, ["ldap"]},
{user_dn_pattern, "CN=Rabbitmq LDAP User,OU=Service Accounts,DC=very,DC=chill,DC=domain"},
{use_ssl, false},
{port, 389},
{log, network}
]}
].
% EOF
Run Code Online (Sandbox Code Playgroud)
尝试登录管理插件的Web控制台时的错误日志:
=INFO REPORT==== 18-Dec-2015::18:01:03 ===
LDAP CHECK: login for myuser
=INFO REPORT==== 18-Dec-2015::18:01:03 ===
LDAP filling template "CN=Rabbitmq LDAP User,OU=Service Accounts,DC=very,DC=chill,DC=domain" with
[{username,<<"myuser">>}]
=INFO REPORT==== 18-Dec-2015::18:01:03 ===
LDAP template result: "CN=Rabbitmq LDAP User,OU=Service Accounts,DC=very,DC=chill,DC=domain"
=INFO REPORT==== 18-Dec-2015::18:01:03 ===
LDAP connecting to servers: ["ldap.very.chill.domain"]
=INFO REPORT==== 18-Dec-2015::18:01:03 ===
LDAP network traffic: Connect: "ldap.very.chill.domain" failed {error,
eacces}
=INFO REPORT==== 18-Dec-2015::18:01:03 ===
LDAP connect error: {error,"connect failed"}
=INFO REPORT==== 18-Dec-2015::18:01:03 ===
LDAP DECISION: login for myuser: {error,"connect failed"}
=ERROR REPORT==== 18-Dec-2015::18:01:03 ===
webmachine error: path="/api/whoami"
"Unauthorized"
Run Code Online (Sandbox Code Playgroud)
这在 AD 的服务器端没有留下任何日志,所以我运行了一个 tcpdump:
tcpdump -nnS -i ens160 | grep -vi arp | grep ldap.server.ip
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens160, link-type EN10MB (Ethernet), capture size 65535 bytes
Run Code Online (Sandbox Code Playgroud)
这表明没有数据包发送到 ldap:389 端口。
所以我从兔子服务器机器上做了这个,以确保网络没有问题:
ldapsearch -x -h 'ldap.very.chill.domain' -p 389 -w "VerySec*" -D "CN=Rabbitmq LDAP User,OU=Service Accounts,DC=very,DC=chill,DC=domain" -b "DC=very,dc=chill,dc=domain"
Run Code Online (Sandbox Code Playgroud)
这次查询的tcp转储显示有数据包发送到389,查询成功。
所以我的假设是 rabbitmq 配置中有一些东西使它甚至不会尝试在 ldap 服务器的方向上发送任何数据包。
将不胜感激任何线索。
默认情况下,SELinux 会阻止大多数守护进程连接出站。在 RHEL 7 中,这些策略变得更加具体(并且在某些情况下更加严格)。
做setenforce 0测试,然后如果它有效,用于sealert分析您的/var/log/audit/audit.log文件以确定要采取的行动方案。SELinux 上的 CentOS wiki 页面可能是互联网上最好的 SELinux 资源:https : //wiki.centos.org/HowTos/SELinux
| 归档时间: |
|
| 查看次数: |
1845 次 |
| 最近记录: |