Rabbitmq不会与Active Directory通话

我有一个rabbitmq服务器,我需要连接到AD。

configuration使用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 

尝试login到pipe理插件的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" 

这在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 

这表明没有数据包发送到ldap:389端口。

所以我做了这个从兔子服务器机器,以确保networking没有问题:

 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" 

此查询期间的tcp转储显示有数据包发送到389,查询成功。

所以我的假设是,在rabbitmqconfiguration中有一些东西,甚至不会尝试向ldap服务器发送任何数据包。

会感激任何线索。

默认情况下,SELinux将阻止大多数守护程序连接出站。 在RHEL 7中,这些策略更具体(在某些情况下更具有限制性)。

setenforce 0来testing,然后如果有效的话,使用sealert来分析你的/var/log/audit/audit.log文件来决定采取什么样的行动。 SELinux上的CentOS wiki页面可能是互联网上最好的SELinux资源: https : //wiki.centos.org/HowTos/SELinux