ฉันทำการทดสอบขั้นพื้นฐานและปิดใช้งาน TLS
ปัญหาของฉันน่าจะอยู่ใน SSSD.conf และไม่มี objectClass ที่ถูกต้องรวมถึง DN, CN และ OU ที่ตรงกัน
เซิร์ฟเวอร์
#https://www.server-world.info/th/note?os=CentOS_7&p=openldap
yum -y ติดตั้ง openldap-servers openldap-clients firewalld mlocate man --nobest
อัพเดทb
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
ชวน ldap. /var/lib/ldap/DB_CONFIG
systemctl เริ่มตบ
systemctl เปิดใช้งานการตบ
แมว <<EOF > chrootpw.ldif
# ระบุรหัสผ่านที่สร้างขึ้นด้านบนสำหรับส่วน "olcRootPW"
dn: olcDatabase={0}config,cn=config
ประเภทการเปลี่ยนแปลง: แก้ไข
เพิ่ม: olcRootPW
olcRootPW: 1234
อฟ
ldapadd -Y ภายนอก -H ldapi:/// -f chrootpw.ldif
ldapadd -Y ภายนอก -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldapadd -Y ภายนอก -H ldapi:/// -f /etc/openldap/schema/nis.ldif
ldapadd -Y ภายนอก -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
แมว <<EOF > chdomain.ldif
dn: olcDatabase={1}มอนิเตอร์,cn=config
ประเภทการเปลี่ยนแปลง: แก้ไข
แทนที่: olcAccess
olcAccess: {0}ถึง * โดย dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth"
อ่านโดย dn.base="cn=Manager,dc=srv,dc=world" อ่านโดย * ไม่มี
dn: olcDatabase={2}mdb,cn=config
ประเภทการเปลี่ยนแปลง: แก้ไข
แทนที่: olcSuffix
olcSuffix: dc=srv,dc=world
dn: olcDatabase={2}mdb,cn=config
ประเภทการเปลี่ยนแปลง: แก้ไข
แทนที่: olcRootDN
olcRootDN: cn=ผู้จัดการ,dc=srv,dc=โลก
dn: olcDatabase={2}mdb,cn=config
ประเภทการเปลี่ยนแปลง: แก้ไข
เพิ่ม: olcRootPW
olcRootPW: 1234
dn: olcDatabase={2}mdb,cn=config
ประเภทการเปลี่ยนแปลง: แก้ไข
เพิ่ม: olcAccess
olcAccess: {0}ถึง attrs=userPassword,shadowLastChange โดย
dn="cn=Manager,dc=srv,dc=world" เขียนโดยผู้ไม่ระบุชื่อ รับรองความถูกต้องด้วยตนเอง เขียนโดย * ไม่มี
olcAccess: {1}ถึง dn.base="" โดย * อ่าน
olcAccess: {2}ถึง * โดย dn="cn=Manager,dc=srv,dc=world" เขียนโดย * อ่าน
อฟ
ldapmodify -Y ภายนอก -H ldapi:/// -f chdomain.ldif
cat <<EOF > basedomain.ldif
# เปลี่ยนเป็นชื่อโดเมนของคุณเองสำหรับส่วน "dc=***,dc=***"
dn: dc=srv,dc=โลก
objectClass: ด้านบน
objectClass:dcObject
วัตถุคลาส: องค์กร
o: เซิฟเวอร์เวิลด์
dc: Srv
dn: cn=ผู้จัดการ,dc=srv,dc=โลก
objectClass: บทบาทขององค์กร
cn: ผู้จัดการ
คำอธิบาย: ตัวจัดการไดเร็กทอรี
dn: ou=ผู้ใช้,dc=srv,dc=โลก
objectClass: หน่วยขององค์กร
objectClass: ด้านบน
คุณ: ผู้ใช้
dn: ou=กลุ่ม,dc=srv,dc=โลก
objectClass: หน่วยขององค์กร
objectClass: ด้านบน
คุณ: กลุ่ม
อฟ
ldapadd -x -w 1234 -D cn=ผู้จัดการ,dc=srv,dc=world -f basedomain.ldif
systemctl เริ่มไฟร์วอลล์
systemctl เปิดใช้งานไฟร์วอลล์
ไฟร์วอลล์ cmd --add-service=ldap --permanent
ไฟร์วอลล์ cmd --reload
แมว <<EOF > adam.ldif
dn: uid=adam,ou=Users,dc=srv,dc=world
objectClass: ด้านบน
objectClass: บัญชี
objectClass: posixบัญชี
objectClass: shadowAccount
cn: อดัม
uid: อดัม
หมายเลขรหัส: 16859
gidNumber: 100
homeDirectory: /home/อดัม
ล็อกอินเชลล์: /bin/bash
gecos: อดัม
รหัสผ่านผู้ใช้: 1234
shadowLastChange: 0
เงาสูงสุด: 0
เงาคำเตือน: 0
อฟ
ldapadd -x -w 1234 -D "cn=Manager,dc=srv,dc=world" -f adam.ldif
ldappasswd -s 1234 -w 1234 -D "cn=Manager,dc=srv,dc=world" -x "uid=adam,ou=Users,dc=srv,dc=world"
SSSD.conf [ลูกค้า]
แมว <<EOF > /etc/sssd/sssd.conf
[sssd]
บริการ = nss, แพม, sudo
config_file_version = 2
โดเมน = ค่าเริ่มต้น
[ซูโดะ]
[nss]
[แพม]
offline_credentials_expiration = 60
[โดเมน/ค่าเริ่มต้น]
ldap_id_use_start_tls = เท็จ
cache_credentials = จริง
ldap_search_base = dc=srv,dc=โลก
id_provider = ldap
auth_provider = ldap
chpass_provider = ldap
access_provider = ldap
sudo_provider = ldap
ldap_uri = ldap://ldapmaster
ldap_default_bind_dn = cn=ผู้จัดการ,dc=srv,dc=โลก
#ldap_default_authtok_type = รหัสผ่าน
ldap_default_authtok = 1234
#ldap_user_search_base = CN=ผู้ใช้,DC=srv,DC=โลก
#ldap_tls_reqcert = ความต้องการ
#ldap_tls_cacert = /etc/pki/tls/cacert.crt
#ldap_tls_cacertdir = /etc/pki/tls
ldap_search_timeout = 50
ldap_network_timeout = 60
#ldap_sudo_search_base = ou=SUDOers,dc=ldapmaster,dc=ldapmaster,dc=com
ldap_access_order = ตัวกรอง
ldap_access_filter = (objectClass=posixAccount)
อฟ