Không cho phép liên kết ẩn danh toàn cầu với cn = config


9

Với slapd.conf bạn có thể vô hiệu hóa toàn cầu ràng buộc ẩn danh và yêu cầu xác thực bằng các chỉ thị tĩnh sau:

disallow bind_anon
require authc

Làm cách nào tôi có thể đạt được các cài đặt chung như vậy, nhưng sử dụng phương pháp cấu hình trực tiếp cn = config mới?

Câu trả lời:


5

Không phải ACL của quanta là một điều xấu, nhưng để trả lời câu hỏi của bạn:

ldapmodify
dn: cn = config
changetype: sửa đổi
add: olcDisallows
olcDisallows: bind_anon
-

dn: olcDatabase = {- 1} frontend, cn = config
changetype: sửa đổi
add: olcRequires
olcRequires: authc

Xin lưu ý rằng ldapmodify rất nhạy cảm với (dấu vết), do đó, một bản sao chép thẳng sẽ không hoạt động (và có thể không xác thực chính xác của bạn). Ngoài ra, dn bạn sử dụng sẽ cần quyền truy cập ghi vào cn = config db.


11

Biến thể trên cùng một chủ đề, tôi đã thử, hoạt động: Mẹo bảo mật LDAP tại SysadminTalk

Tóm lược:

1) Tạo một tệp, hãy gọi nó disable_anon_frontend.ldifvới nội dung sau:

dn: olcDatabase={-1}frontend,cn=config
add: olcRequires
olcRequires: authc

2) Tạo một tệp khác được gọi disable_anon_backend.ldifvới nội dung sau:

dn: olcDatabase={1}hdb,cn=config
add: olcRequires
olcRequires: authc

3) Sau đó, trên máy chủ, sửa đổi LDAP bằng cách ban hành các lệnh sau:

sudo ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f disable_anon_frontend.ldif
sudo ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f disable_anon_backend.ldif

4) Kiểm tra bằng cách thực hiện truy vấn anon sau: ldapsearch -x -LLL -H ldap:/// -b dc=example,dc=domain,dc=com dn(sử dụng dc=...cài đặt của bạn nếu có).

Nếu bạn thấy thông báo lỗi bên dưới, thì truy cập ẩn danh đã bị vô hiệu hóa thành công:

Server is unwilling to perform (53)
Additional information: authentication required

Chúc may mắn!


2
Chào mừng bạn đến với Lỗi Máy chủ! Mặc dù điều này về mặt lý thuyết có thể trả lời câu hỏi, tốt hơn là nên bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo.
HoplessN00b

2
Cảm ơn, bạn hoàn toàn đúng, tôi đã chỉnh sửa câu trả lời của mình theo khuyến nghị.
Laryx Decidua

1

Tôi chưa thử nghiệm nhưng hãy thử một cái gì đó như thế này:

dn: olcDatabase={1}hdb,cn=config
add: olcAccess
olcAccess: to attrs=userPassword 
    by dn="cn=admin,dc=example,dc=com" write 
    by self write 
    by * none
olcAccess: to dn.base="" 
    by users read 
    by * none
olcAccess: to * 
    by dn="cn=admin,dc=example,dc=com" write 
    by * none

Cảm ơn, đây là cách tôi hiện đang làm trên mỗi cơ sở dữ liệu. Tuy nhiên, câu hỏi của tôi là làm thế nào để làm điều đó trên toàn cầu.
Michael P
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.