Điểm:2

libpam-ldapd - Xác thực LDAP trên Debian 11 không hoạt động

lá cờ ke

Tôi đã thấy một số câu hỏi khác ở đây liên quan đến một vấn đề tương tự - nhưng tôi chưa tìm thấy câu hỏi nào thực sự phù hợp với mình.

Mục tiêu của tôi là xác thực (chủ yếu cho SSH) tất cả các maschine Debian đối với một thư mục UCS (OpenLDAP) - chỉ trong tương lai khi người dùng là thành viên của một nhóm ldap cụ thể. Nhưng tôi hiện đang đấu tranh để làm cho nó hoạt động mà không cần tư cách thành viên nhóm.

Tôi luôn gặp lỗi:

nslcd: [7b23c6] <authc="test"> GỠ LỖI: ldap_sasl_bind("uid=test,cn=users,dc=securitywho,dc=local","***") (uri="ldap://ldap. securitywho.local") (ppolicy=yes)
nslcd: [7b23c6] <authc="test"> GỠ LỖI: kết quả ldap_parse_result(): Thông tin xác thực không hợp lệ
nslcd: [7b23c6] <authc="test"> GỠ LỖI: không thể liên kết với máy chủ LDAP ldap://ldap.securitywho.local: Thông tin xác thực không hợp lệ
nslcd: [7b23c6] <authc="test"> GỠ LỖI: ldap_unbind()
nslcd: [7b23c6] <authc="test"> uid=test,cn=users,dc=securitywho,dc=local: Thông tin xác thực không hợp lệ
nslcd: [7b23c6] <authc="test"> GỠ LỖI: myldap_search(base="cn=users,dc=securitywho,dc=local", filter="(&(objectClass=*)(uid=test))")
nslcd: [7b23c6] <authc="test"> GỠ LỖI: ldap_result(): uid=test,cn=users,dc=securitywho,dc=local

Người dùng liên kết đang hoạt động, tôi đã kiểm tra mọi thứ bằng lệnh ldapsearch - ở đó mọi thứ đều hoạt động tốt với người dùng liên kết và nếu tôi sử dụng sai mật khẩu, trình gỡ lỗi sẽ hiển thị lỗi chức năng liên kết không hoạt động.

Ldapsearch đã sử dụng - và nó đang hoạt động:

ldapsearch -x -H ldap://ldap.securitywho.local -D "uid=srv_linux,cn=users,dc=securitywho,dc=local" -b cn=users,dc=securitywho,dc=local -W

Snip từ đầu ra:

# kiểm tra, người dùng, securitywho.local
dn: uid=test,cn=users,dc=securitywho,dc=local
krb5MaxLife: 86400
krb5MaxGia hạn: 604800
uid: kiểm tra
uidSố: 2008
sn: kiểm tra
gecos: kiểm tra
tên hiển thị: kiểm tra
homeDirectory: /home/test
đăng nhậpShell: /bin/bash
mailForwardCopyToSelf: 0
cn: kiểm tra
krb5PrincipalName: [email protected]
bóng tốiThay đổi cuối cùng: 18992
sambaBadPasswordCount: 0
sambaBadPasswordThời gian: 0
sambaAcctFlags: [U ]
objectClass: shadowAccount
đối tượngClass: hàng đầu
objectClass: sambaSamAccount
objectClass: automount
đối tượngClass: univentionPWHistory
lớp đối tượng: người
đối tượngClass: krb5KDCEntry
objectClass: univentionObject
đối tượngClass: inetOrgPerson
objectClass: krb5Principal
đối tượngLớp: tổ chứcPerson
objectClass: univentionMail
objectClass: posixAccount
sambaSID: S-1-5-21-258973841-725078507-1497259816-5016
gidNumber: 5001
sambaPrimaryGroupSID: S-1-5-21-258973841-725078507-1497259816-513
univentionObjectType: người dùng/người dùng

Chỉ để xác minh rằng người kiểm tra của tôi đang hoạt động, tôi đã chạy lệnh ldapsearch với người kiểm tra - mọi thứ cũng hoạt động ở đây. Tôi đã kiểm tra rằng với một số tài khoản trong thư mục OpenLDAP, tất cả đều hoạt động ở đây nhưng không có tài khoản nào khi tôi thử nó cho SSH.

ldapsearch -x -H ldap://ldap.securitywho.local -D "uid=test,cn=users,dc=securitywho,dc=local" -b cn=users,dc=securitywho,dc=local -W

Cấu hình /etc/nslcd.conf

# /etc/nslcd.conf
# tập tin cấu hình nslcd. Xem nslcd.conf(5)
# để biết chi tiết.

# Người dùng và nhóm nslcd sẽ chạy dưới dạng.
uid nslcd
gid nslcd

# Vị trí mà (các) máy chủ LDAP có thể truy cập được.
uri ldap://ldap.securitywho.local

# Cơ sở tìm kiếm sẽ được sử dụng cho tất cả các truy vấn.
cơ sở cn=người dùng,dc=bảo mậtai,dc=cục bộ

# Phiên bản giao thức LDAP sẽ sử dụng.
#ldap_version 3

# DN để liên kết với tra cứu thông thường.
binddn uid=srv_linux,cn=users,dc=securitywho,dc=local
bindpw <MẬT KHẨU SIÊU BẢO MẬT>

# DN được sử dụng để sửa đổi mật khẩu bằng root.
#rootpwmoddn cn=admin,dc=example,dc=com

# tùy chọn SSL
#ssl tắt
#tls_reqcert không bao giờ
#tls_cacertfile /etc/ssl/certs/ca-certificates.crt

# Phạm vi tìm kiếm.
#scope phụ
bộ lọc passwd (objectClass=*)
bản đồ mật khẩu uid uid

lọc bóng (objectClass=*)
bản đồ bóng uid uid

Hoàn thành đầu ra gỡ lỗi của nslcd:

root@ipam:~# nslcd -d
nslcd: GỠ LỖI: NSS_LDAP nss-pam-ldapd 0.9.11
nslcd: GỠ LỖI: CFG: chủ đề 5
nslcd: GỠ LỖI: CFG: uid nslcd
nslcd: GỠ LỖI: CFG: gid 117
nslcd: GỠ LỖI: CFG: uri ldap://ldap.securitywho.local
nslcd: GỠ LỖI: CFG: ldap_version 3
nslcd: GỠ LỖI: CFG: binddn uid=srv_linux,cn=users,dc=securitywho,dc=local
nslcd: GỠ LỖI: CFG: bindpw ***
nslcd: GỠ LỖI: CFG: cơ sở cn=người dùng,dc=securitywho,dc=local
nslcd: GỠ LỖI: CFG: phạm vi phụ
nslcd: GỠ LỖI: CFG: deref không bao giờ
nslcd: GỠ LỖI: CFG: giới thiệu có
nslcd: GỠ LỖI: CFG: lọc bí danh (objectClass=nisMailAlias)
nslcd: GỠ LỖI: CFG: lọc ete (objectClass=ieee802Device)
nslcd: GỠ LỖI: CFG: nhóm bộ lọc (objectClass=posixGroup)
nslcd: GỠ LỖI: CFG: lọc máy chủ (objectClass=ipHost)
nslcd: GỠ LỖI: CFG: lọc nhóm mạng (objectClass=nisNetgroup)
nslcd: GỠ LỖI: CFG: lọc mạng (objectClass=ipNetwork)
nslcd: GỠ LỖI: CFG: mật khẩu bộ lọc (objectClass=*)
nslcd: GỠ LỖI: CFG: giao thức bộ lọc (objectClass=ipProtocol)
nslcd: GỠ LỖI: CFG: bộ lọc rpc (objectClass=oncRpc)
nslcd: GỠ LỖI: CFG: dịch vụ lọc (objectClass=ipService)
nslcd: GỠ LỖI: CFG: lọc bóng (objectClass=*)
nslcd: GỠ LỖI: CFG: mật khẩu người dùng nhóm bản đồ "*"
nslcd: GỠ LỖI: CFG: bản đồ mật khẩu người dùng Mật khẩu "*"
nslcd: GỠ LỖI: CFG: map passwd gecos "${gecos:-$cn}"
nslcd: GỠ LỖI: CFG: bản đồ bóng người dùng Mật khẩu "*"
nslcd: GỠ LỖI: CFG: bản đồ bóng đổ shadowLastChange "${shadowLastChange:--1}"
nslcd: GỠ LỖI: CFG: bản đồ bóng đổ shadowMin "${shadowMin:--1}"
nslcd: GỠ LỖI: CFG: bản đồ bóng đổ shadowMax "${shadowMax:--1}"
nslcd: GỠ LỖI: CFG: bản đồ bóng đổ shadowWarning "${shadowWarning:--1}"
nslcd: GỠ LỖI: CFG: bóng bản đồ shadowInactive "${shadowInactive:--1}"
nslcd: GỠ LỖI: CFG: bản đồ bóng đổ shadowExpire "${shadowExpire:--1}"
nslcd: GỠ LỖI: CFG: bản đồ bóng đổ shadowFlag "${shadowFlag:-0}"
nslcd: GỠ LỖI: CFG: pam_authc_ppolicy có
nslcd: GỠ LỖI: CFG: bind_timelimit 10
nslcd: GỠ LỖI: CFG: giới hạn thời gian 0
nslcd: GỠ LỖI: CFG: idl_timelimit 0
nslcd: GỠ LỖI: CFG: reconnect_sleeptime 1
nslcd: GỠ LỖI: CFG: reconnect_retrytime 10
nslcd: GỠ LỖI: CFG: tắt ssl
nslcd: GỠ LỖI: CFG: nhu cầu tls_reqcert
nslcd: GỠ LỖI: CFG: kích thước trang 0
nslcd: GỠ LỖI: CFG: nss_min_uid 0
nslcd: GỠ LỖI: CFG: nss_uid_offset 0
nslcd: GỠ LỖI: CFG: nss_gid_offset 0
nslcd: GỠ LỖI: CFG: nss_nested_groups không
nslcd: GỠ LỖI: CFG: nss_getgrent_skipmembers không
nslcd: GỠ LỖI: CFG: nss_disable_enumeration không
nslcd: GỠ LỖI: CFG: tên hợp lệ /^[a-z0-9._@$()]([a-z0-9._@$() \~-]*[a-z0-9._@$ ()~-])?$/i
nslcd: GỠ LỖI: CFG: chữ bỏ qua không
nslcd: GỠ LỖI: CFG: pam_authc_search CƠ SỞ
nslcd: GỠ LỖI: CFG: bộ đệm dn2uid 15m 15m
nslcd: bắt đầu từ phiên bản 0.9.11
nslcd: GỠ LỖI: initgroups("nslcd",117) đã hoàn tất
nslcd: GỠ LỖI: setgid(117) xong
nslcd: GỠ LỖI: setuid(110) đã xong
nslcd: GỠ LỖI: hủy liên kết () của /var/run/nslcd/socket không thành công (bỏ qua): Không có tệp hoặc thư mục như vậy
nslcd: chấp nhận kết nối
nslcd: [8b4567] GỠ LỖI: kết nối từ pid=896662 uid=0 gid=0
nslcd: [8b4567] <authc="test"> GỠ LỖI: nslcd_pam_authc("test","sshd","***")
nslcd: [8b4567] <authc="test"> GỠ LỖI: myldap_search(base="cn=users,dc=securitywho,dc=local", filter="(&(objectClass=*)(uid=test))")
nslcd: [8b4567] <authc="test"> GỠ LỖI: ldap_initialize(ldap://ldap.securitywho.local)
nslcd: [8b4567] <authc="test"> GỠ LỖI: ldap_set_rebind_proc()
nslcd: [8b4567] <authc="test"> GỠ LỖI: ldap_set_option(LDAP_OPT_PROTOCOL_VERSION,3)
nslcd: [8b4567] <authc="test"> GỠ LỖI: ldap_set_option(LDAP_OPT_DEREF,0)
nslcd: [8b4567] <authc="test"> GỠ LỖI: ldap_set_option(LDAP_OPT_TIMELIMIT,0)
nslcd: [8b4567] <authc="test"> GỠ LỖI: ldap_set_option(LDAP_OPT_TIMEOUT,0)
nslcd: [8b4567] <authc="test"> GỠ LỖI: ldap_set_option(LDAP_OPT_NETWORK_TIMEOUT,0)
nslcd: [8b4567] <authc="test"> GỠ LỖI: ldap_set_option(LDAP_OPT_REFERRALS,LDAP_OPT_ON)
nslcd: [8b4567] <authc="test"> GỠ LỖI: ldap_set_option(LDAP_OPT_RESTART,LDAP_OPT_ON)
nslcd: [8b4567] <authc="test"> GỠ LỖI: ldap_simple_bind_s("uid=srv_linux,cn=users,dc=securitywho,dc=local","***") (uri="ldap://ldap. securitywho.local")
nslcd: [8b4567] <authc="test"> GỠ LỖI: ldap_result(): uid=test,cn=users,dc=securitywho,dc=local
nslcd: [8b4567] <authc="test"> GỠ LỖI: myldap_search(base="uid=test,cn=users,dc=securitywho,dc=local", filter="(objectClass=*)")
nslcd: [8b4567] <authc="test"> GỠ LỖI: ldap_initialize(ldap://ldap.securitywho.local)
nslcd: [8b4567] <authc="test"> GỠ LỖI: ldap_set_rebind_proc()
nslcd: [8b4567] <authc="test"> GỠ LỖI: ldap_set_option(LDAP_OPT_PROTOCOL_VERSION,3)
nslcd: [8b4567] <authc="test"> GỠ LỖI: ldap_set_option(LDAP_OPT_DEREF,0)
nslcd: [8b4567] <authc="test"> GỠ LỖI: ldap_set_option(LDAP_OPT_TIMELIMIT,0)
nslcd: [8b4567] <authc="test"> GỠ LỖI: ldap_set_option(LDAP_OPT_TIMEOUT,0)
nslcd: [8b4567] <authc="test"> GỠ LỖI: ldap_set_option(LDAP_OPT_NETWORK_TIMEOUT,0)
nslcd: [8b4567] <authc="test"> GỠ LỖI: ldap_set_option(LDAP_OPT_REFERRALS,LDAP_OPT_ON)
nslcd: [8b4567] <authc="test"> GỠ LỖI: ldap_set_option(LDAP_OPT_RESTART,LDAP_OPT_ON)
nslcd: [8b4567] <authc="test"> GỠ LỖI: ldap_sasl_bind("uid=test,cn=users,dc=securitywho,dc=local","***") (uri="ldap://ldap. securitywho.local") (ppolicy=yes)
nslcd: [8b4567] <authc="test"> GỠ LỖI: kết quả ldap_parse_result(): Thông tin xác thực không hợp lệ
nslcd: [8b4567] <authc="test"> GỠ LỖI: không thể liên kết với máy chủ LDAP ldap://ldap.securitywho.local: thông tin xác thực không hợp lệ
nslcd: [8b4567] <authc="test"> GỠ LỖI: ldap_unbind()
nslcd: [8b4567] <authc="test"> uid=test,cn=users,dc=securitywho,dc=local: Thông tin xác thực không hợp lệ
nslcd: [8b4567] <authc="test"> GỠ LỖI: myldap_search(base="cn=users,dc=securitywho,dc=local", filter="(&(objectClass=*)(uid=test))")
nslcd: [8b4567] <authc="test"> GỠ LỖI: ldap_result(): uid=test,cn=users,dc=securitywho,dc=local

Những gì tôi đã thử là thử với "phạm vi tìm kiếm" trong /etc/nslcd.conf nhưng không có sự kết hợp nào làm cho nó hoạt động. Điều mà tôi hiện không thấy bất kỳ vấn đề nào về cấu hình - có ai đó gặp vấn đề tương tự hoặc có thể giúp tôi không? Tôi đã cài đặt mọi thứ với:

apt-get cài đặt libpam-ldapd
Điểm:1
lá cờ ke

Sau vài giờ nữa, các bản gỡ lỗi của Wireshark cho thấy rằng Yêu cầu BIND cho Người dùng BIND đã được gửi chính xác tới máy chủ ldap (BIND với xác thực đơn giản -> không mã hóa). Nhưng người dùng thử nghiệm của tôi không gửi mật khẩu thực đến máy chủ ldap, điều đó có nghĩa là xác thực không thành công. -> Đã kiểm tra với SSH.

Tôi đã cố gắng đăng nhập vào bảng điều khiển cục bộ và thấy rằng đăng nhập hiện đã thành công liên quan đến gỡ lỗi nslcd - nhưng /var/log/auth.log đã hiển thị:

Ngày 1 tháng 1 14:01:43 đăng nhập ipam[489]: pam_unix(đăng nhập:auth): kiểm tra pass; người dùng không xác định
Ngày 1 tháng 1 14:01:43 đăng nhập ipam[489]: pam_unix(đăng nhập:auth): lỗi xác thực; tên đăng nhập=ĐĂNG NHẬP uid=0 euid=0 tty=/dev/tty1 ruser= rhost=
Ngày 1 tháng 1 14:01:43 đăng nhập ipam[489]: pam_unix(đăng nhập:tài khoản): không thể xác định người dùng (từ getpwnam(test))
Ngày 1 tháng 1 14:01:43 đăng nhập ipam[489]: Lỗi xác thực

Nhưng bây giờ mọi thứ vẫn hoạt động tốt - tôi đã sửa nó như thế nào? -> Khởi động lại.

Không cần thay đổi cấu hình nữa, cấu hình của tôi trong bài đăng đầu tiên là chính xác và hiện đang hoạt động tốt.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.