在我开始解决问题之前: 我有一个受反向代理(nginx)保护的网站。因此不允许客户直接连接到网站。它必须连接到nginx,然后nginx显示网站的内容。
现在我想添加更多“安全”功能。我安装了samba4,因为它可用作AD DC,并希望使用LDAP(包含在samba4中?)来验证试图访问该网站的客户端。 因此,在客户端实际看到网站之前,它必须连接到nginx,然后进行身份验证(使用LDAP凭据),然后才能查看网站内容。
我使用模块ldap_http_authentication(参见下面的配置)配置了nginx,它正在运行。当客户端尝试查看我需要使用某些LDAP凭据登录的网站时,但是当我尝试对客户端进行身份验证时,它就无法正常工作。它说LDAP凭据是错误的。 当LDAP附带samba时,如何添加LDAP用户?我只是不知道要使用哪些凭据。我将一些用户添加到像“test”这样的samba中,并试图使用他们的凭据进行身份验证,但是它们不能正常工作。 那么我必须使用哪些凭据用于“binddn”和“binddn_passwd”?我在哪里创建或获取它们?
我的nginx ldap配置:
def make_GET(url):
ip_address = find_ip(url)
if not ip_address:
return False
syn = IP(dst=ip_address) / TCP(dport=80, flags='S')
syn_ack = sr1(syn, timeout=2)
if not syn_ack:
return False
get_str = 'GET / HTTP/1.1\r\nHost: '+url+'\r\n\r\n'
request = IP(dst=ip_address) / TCP(dport=80, sport=syn_ack[TCP].dport,
seq=syn_ack[TCP].ack, ack=syn_ack[TCP].seq + 1, flags='A') / get_str
request.show()
reply = sr(request, timeout=2)
if not reply:
return False
谢谢!
编辑: 我尝试使用以下命令添加一些用户:
ldap_server adds {
url "ldap://192.168.50.131/dc=test,dc=dom?sAMAccountName?sub?";
binddn "TEST\\USERNAME";
binddn_passwd "password";
connect_timeout 5s;
bind_timeout 5s;
request_timeout 5s;
require valid_user;
satisfy any;
}
但它只是返回: “输入LDAP密码:ldap_bind:需要强(呃)认证(8)附加信息:BindSimple:需要传输加密。”
顺便说一下:我从未设置过LDAP密码,我刚刚安装了samba4。这就是全部!
答案 0 :(得分:1)
默认情况下,samba4需要start_tls。
首先,您应该尝试将网址切换为ldaps://
然后你需要:
ssl_check_cert off
ssl_ca_file /etc/pki/tls/certs/whatever.crt
对于ldapXXXXX命令,您需要-Z开关
您还需要检查ldap.conf文件是否包含URI和BASE:
URI ldaps://ldap.server.com
BASE "dc=domain,dc=example,dc=com"
您还需要以下2个:
TLS_CACERT=/etc/pki/tls/certs/whatever.crt
TLS_REQCERT allow