บนไคลเอนต์ sssd
authselect เลือก sssd --force
เปิดใช้งาน systemctl -- ตอนนี้ sssd
[root@ldap-sssd ~]# ไอดีไลน์
uid=16859(อดัม) gid=100(ผู้ใช้) กลุ่ม=100(ผู้ใช้)
[root@ldap-sssd ~]# su อดัม
bash-4.4$ su อดัม
รหัสผ่าน:
su: การรับรองความถูกต้องล้มเหลว
ทุบตี-4.4$
ถ้าฉันวิ่ง
sssctl ผู้ใช้ตรวจสอบอดัม
ฉันเห็นสิ่งนี้
ผู้ใช้:อดัม
การกระทำ: บัญชี
บริการ: ระบบตรวจสอบสิทธิ์
ผลการค้นหาผู้ใช้ SSSD nss:
- ชื่อผู้ใช้: อดัม
- รหัสผู้ใช้: 16859
- รหัสกลุ่ม: 100
- gecos: อดัม
- โฮมไดเร็กตอรี่: /home/adam
- เชลล์: /bin/bash
ผลลัพธ์การค้นหาผู้ใช้ SSSD InfoPipe:
- ชื่อ: อดัม
- หมายเลขรหัส: 16859
- gidNumber: 100
- gecos: อดัม
- homeDirectory: /home/อดัม
- ล็อกอินเชลล์: /bin/bash
กำลังทดสอบ pam_acct_mgmt
pam_acct_mgmt: ปฏิเสธการอนุญาต
สภาพแวดล้อม PAM:
- ไม่มี env -
บน ldapmaster ฉันยืนยันว่ารหัสผ่านถูกต้อง
ldapsearch -x -H ldap://ldapmaster \
-D uid=adam,ou=Users,DC=srv,DC=world \
-w 1234 \
-b uid=adam,ou=Users,DC=srv,DC=world \
-s ฐาน \
"(วัตถุคลาส=*)"
[root@ldapmaster ~]# ชัดเจน
-s ฐาน "(objectclass=*)"4 -b uid=adam,ou=Users,DC=srv,DC=world
# LDIF ขยาย
#
#LDAPv3
# ฐาน <uid=adam,ou=Users,DC=srv,DC=world> ที่มีขอบเขต baseObject
# ตัวกรอง: (objectclass=*)
# คำขอ: ทั้งหมด
#
# อดัม ผู้ใช้ srv.world
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: อดัม
shadowLastChange: 0
เงาสูงสุด: 0
เงาคำเตือน: 0
รหัสผ่านผู้ใช้:: e1NTSEF9OVcvdStLUTM3Y1F2dE5hVGR2WktuSDZSMm0zRGlUckw=
# ผลการค้นหา
ค้นหา: 2
ผลลัพธ์: 0 สำเร็จ
# numResponses: 2
# จำนวนรายการ: 1
การกำหนดค่าไคลเอ็นต์ sssd
nsswitch.conf
[root@ldap-sssd ~]# grep "^[^#;]" /etc/nsswitch.conf
passwd: ไฟล์ sss systemd
กลุ่ม: ไฟล์ sss systemd
netgroup: ไฟล์ sss
automount: ไฟล์ sss
บริการ: ไฟล์ sss
เงา: ไฟล์ sss
โฮสต์: ไฟล์ DNS ชื่อโฮสต์ของฉัน
นามแฝง: ไฟล์
อีเธอร์: ไฟล์
gshadow: ไฟล์
เครือข่าย: ไฟล์ DNS
โปรโตคอล: ไฟล์
พับลิกคีย์: ไฟล์
rpc: ไฟล์
ldap.conf
[root@ldap-sssd ~]# grep "^[^#;]" /etc/openldap/ldap.conf
ฐาน dc=srv,dc=โลก
URI ldap://ldapmaster
เปิด SASL_NOCANON
URI ldap://ldapmaster
ฐาน dc=srv,dc=โลก
sssd.conf
[root@ldap-sssd ~]# grep "^[^#;]" /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=ผู้จัดการ,ou=ผู้ใช้,dc=srv,dc=world
ldap_default_authtok_type = รหัสผ่าน
ldap_default_authtok = 1234
ldap_search_timeout = 50
ldap_network_timeout = 60
ldap_access_order = ตัวกรอง
ldap_access_filter = ((objectClass=posixAccount))
สคริปต์การตั้งค่า ldapmaster
#https://www.server-world.info/en/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"
คู่มืออ้างอิง
https://www.server-world.info/en/note?os=CentOS_7&p=openldap
https://kifarunix.com/configure-sssd-for-openldap-authentication-on-centos-8/