2016-04-26 22 views
9

Cố gắng sử dụng SASLLDAP để xác thực người dùng trong RedHat Linux. Cho đến nay tôi đã thiết lập dịch vụ saslauthd và dịch vụ của nó đang hoạt động. /etc/saslauthd.conf của tôi trông giống như sau:Lỗi xác thực LDAP SASL

ldap_servers: ldaps://test.ldap.server:1234 
ldap_use_sasl: yes 
ldap_mech: DIGEST-MD5 
ldap_auth_method: fastbind 
ldap_search_base: Ou=PeopleAuthSrch,DC=abc,DC=com 

My /etc/sasl2/smtpd.conf trông giống như sau:

pwcheck_method: saslauthd 
mech_list: plain login 

Bây giờ khi tôi cố gắng để kiểm tra xác thực với lệnh sau:

testsaslauthd -u username -p password -f /var/run/saslauthd/mux

tôi nhận được 0: NO "authentication failed"

và khi tôi xem nhật ký ghi:

Retrying authentication 
do_auth :auth failure: [user:myuser] [service=imap] [realm=] [mech=ldap] [reason=unknown] 

Tôi đang thiếu gì ở đây? cảm ơn trước!!

UPDATE:

cài đặt OpenLDAP để thực hiện tìm kiếm bằng lệnh sau:

ldapsearch -x -h LDAPS: //my.ldap.server: cổng -d8

cho lệnh ldapsearch để hoạt động tôi đã sửa đổi /etc/openldap/ldap.conf tệp như sau:

tls_reqcert allow 
TLS_CACERTDIR /home/myuser/cacertss 
LDAPTLS_CACERT /home/myuser/cacertss 

Nó trả về tất cả các mục, nhưng tôi vẫn không thể xác thực sử dụng

testsaslauthd -u username -p password -f/var/run/saslauthd/MUX

những gì tôi cần phải làm ở đây để có được xác thực này?

Trả lời

2

Sau 5 ngày kể từ khi cuộc đấu tranh phát hiện ra rằng các thiết lập tôi sử dụng là cho Active directory nơi tôi nên sử dụng cài đặt cho LDAP như sau:

ldap_servers: ldaps://test.ldap.server:1234 
ldap_search_base: Ou=PeopleAuthSrch,DC=abc,DC=com 
ldap_filters: (uid=%u) 
ldap_tls_cacert_file: /path/to/my/certificate 

Tôi đã cài đặt cyrus-sasl-md5 như Bertold Kolics đã đề cập, tôi không chắc liệu điều đó có đóng vai trò xác thực người dùng hay không.

2

Tôi đã thực hiện cài đặt SASL với OpenLDAP và TLS trên RedHat Linux 7.2 và tôi đã quản lý để có được một cái gì đó tương tự làm việc tốt.

Như tôi đã đề cập trong bài trước, hãy đảm bảo rằng bạn đã cài đặt gói cyrus-sasl-md5.

Trước tiên, tôi sẽ cố gắng làm mọi thứ hoạt động mà không cần SSL. Chỉ sau khi bạn có thiết lập của bạn làm việc mà không cần SSL di chuyển đến phần SSL.

  • Bạn cần đảm bảo rằng saslauthd chấp nhận chứng chỉ CA là chứng chỉ được máy chủ LDAP sử dụng. Đặc biệt,
    ldap_tls_cacert_file tùy chọn trong /etc/saslauthd.conf là bạn của bạn
  • Nếu bạn có SELinux kích hoạt, hãy chắc chắn rằng saslauthd có thể truy cập các tập tin chứng chỉ. Nếu bạn không chắc chắn, hãy kết thúc tệp /var/log/audit/audit.log và tìm các mục nhập bằng từ khóa "bị từ chối".Tôi đã tìm thấy công cụ audit2allow một cách tuyệt vời để bật quyền truy cập đã bị từ chối trước đó. Bạn cũng có thể chỉ là vô hiệu hóa SELinux tạm thời sử dụng lệnh setenforce Permissive
+0

tôi đã cài đặt 'cyrus-sasl-md5' đã khởi động lại' saslauthd' và đảm bảo rằng 'ldap_tls_cacert_file' trỏ tới chứng chỉ được sử dụng bởi 'ldap'. Tôi cũng nhìn vào '/ var/log/audit/audit.log' và tôi không thấy bất cứ điều gì bị từ chối. Tuy nhiên tôi vẫn có cùng một vấn đề. Đăng nhập bên trong '/ var/log/messages /' không nói nhiều bên cạnh những gì tôi đã đề cập ở trên. Bất kỳ ý tưởng? – Gurkha

+0

Tính năng này có hoạt động không có SSL không? Nếu có, thì đó là một vấn đề SSL. Bạn cũng có thể thử cập nhật các chứng chỉ CA được tin cậy trên hệ thống theo mặc định. Tìm lệnh 'update-ca-certs' và/hoặc poke xung quanh trong thư mục'/etc/pki/ca-trust/'. –