ไม่อนุญาตการผูกโกลบอลแบบไม่ระบุชื่อด้วย cn = config


9

ด้วย slapd.conf คุณสามารถปิดใช้งานการเชื่อมโยงแบบไม่ระบุชื่อและต้องการการพิสูจน์ตัวตนด้วยคำสั่งคงที่ต่อไปนี้:

disallow bind_anon
require authc

ฉันจะประสบความสำเร็จในการตั้งค่าระดับโลกเดียวกันได้อย่างไรโดยใช้วิธีการกำหนดค่าใหม่ cn = config สด

คำตอบ:


5

ไม่ใช่ว่า ACL ของ quanta นั้นเป็นสิ่งที่ไม่ดี แต่เพื่อตอบคำถามของคุณ:

ldapmodify
dn: cn = config
changetype: แก้ไข
เพิ่ม: olcDisallows
olcDisallows: bind_anon
-

dn: olcDatabase = {- 1} ส่วนหน้า, cn = config ประเภท
: แก้ไข
เพิ่ม: olcRequires
olcRequires: authc

โปรดทราบว่า ldapmodify นั้นมีความอ่อนไหวต่อช่องว่าง (ต่อท้าย) ดังนั้นการวางสำเนาแบบตรงจะไม่ทำงาน (และอาจไม่รับรองความถูกต้องของคุณอย่างถูกต้อง) นอกจากนี้ dn ที่คุณใช้จะต้องมีสิทธิ์เขียนเพื่อเข้าถึง cn = config db


11

ชุดรูปแบบเดียวกันฉันลองใช้งานได้ผล: เคล็ดลับความปลอดภัยของ LDAP ที่ SysadminTalk

สรุป:

1) สร้างไฟล์ลองเรียกมันdisable_anon_frontend.ldifด้วยเนื้อหาดังต่อไปนี้:

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

2) สร้างไฟล์อื่นที่เรียกว่าdisable_anon_backend.ldifมีเนื้อหาดังต่อไปนี้:

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

3) จากนั้นบนเซิร์ฟเวอร์ให้แก้ไข LDAP โดยใช้คำสั่งต่อไปนี้:

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) ตรวจสอบโดยดำเนินการสอบถามอานนท์ต่อไปนี้: ldapsearch -x -LLL -H ldap:/// -b dc=example,dc=domain,dc=com dn(ใช้dc=...การตั้งค่าของคุณตามความเหมาะสม)

หากคุณเห็นข้อความแสดงข้อผิดพลาดด้านล่างแสดงว่าการเข้าถึงแบบไม่ระบุชื่อถูกปิดใช้งานสำเร็จแล้ว:

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

โชคดี!


2
ยินดีต้อนรับสู่ Server Fault! ในขณะที่สิ่งนี้อาจตอบคำถามในทางทฤษฎีมันก็ควรจะรวมส่วนสำคัญของคำตอบที่นี่และให้ลิงค์สำหรับการอ้างอิง
HopelessN00b

2
ขอบคุณคุณพูดถูกฉันได้แก้ไขคำแนะนำของฉัน
กล่องเสียง Decidua

1

ฉันไม่ได้ทดสอบ แต่ลองทำสิ่งนี้:

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

ขอบคุณนี่คือสิ่งที่ฉันทำต่อฐานข้อมูล อย่างไรก็ตามคำถามของฉันคือวิธีการทำทั่วโลก
Michael P
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.