Score:0

ฉันพลาดอะไรไปในการตั้งค่าการเข้าถึง sudo ด้วย openldap

ธง cf

ฉันใช้คอนเทนเนอร์ lxd/lxc (Oracle Linux 8) เพื่อปรับใช้สภาพแวดล้อมอย่างรวดเร็ว (ดังนั้นหากคุณมีการตั้งค่า lxd คุณสามารถแก้ไขรูปแบบ ip ให้ตรงกับเครือข่ายย่อยของสะพาน / DNS ของ lxd แล้ววางรหัสลงในคอนเทนเนอร์ lxc แยกต่างหาก)

ฉันสามารถตรวจสอบสิทธิ์ในฐานะผู้ใช้ทดสอบ "adam" ได้ แต่เมื่อฉันพยายามตั้งค่า sudo สำหรับ adam ระบบจะบอกฉัน

adam ไม่สามารถรัน sudo บน <hostname>

เท่าที่ฉันสามารถบอกได้ ฉันได้กำหนดค่าทุกอย่างถูกต้องแล้ว [สำหรับ sudo]

แอลดีเอพี: https://www.server-world.info/en/note?os=CentOS_7&p=openldap / https://kifarunix.com/install-and-setup-openldap-on-rocky-linux-8/

SSSD: https://kifarunix.com/configure-sssd-for-openldap-authentication-on-centos-8/

ซูโดะ: https://kifarunix.com/how-to-configure-sudo-via-openldap-server/

คอนเทนเนอร์ LDAP

lxc หยุด ldapmaster --force; lxc ลบ ldapmaster; lxc เปิดอิมเมจ: oracle/8/amd64 ldapmaster; lxc exec ldapmaster รหัสผ่าน wd; lxc คอนโซล ldapmaster

วางลงในคอนเทนเนอร์ LDAP

ldaphostname="ldapmaster"
โดเมน = "ตัวอย่าง"
ต่อท้าย = "com"
olcRootPW=1234
userpw=1234
binddnpw=1234
mgrpw=1234
DNS1=192.168.3.1
DNS2=192.168.3.2
LDAPMASTERIP=10.175.235.220
SSSDIP=10.175.235.210
NETMASKIP=255.255.255.0
GATEWAYIP=10.175.235.1


แมว <<EOF > /etc/sysconfig/network-scripts/ifcfg-eth0
อุปกรณ์=eth0
BOOTPROTO=คงที่
IPADDR=$LDAPMASTERIP
NETMASKIP=$NETMASKIP
เกตเวย์=$เกตเวย์ไอพี
DNS1=$DNS1
DNS2=$DNS2
ONBOOT=ใช่
HOSTNAME=`cat /proc/sys/kernel/hostname`
TYPE=อีเธอร์เน็ต
มทร. =
DHCP_HOSTNAME=`cat /proc/sys/kernel/hostname`
IPV6INIT=ใช่
อฟ

ถ้าลง eth0

ถ้าอัพ eth0

แมว <<EOF > /etc/yum.repos.d/appstream.repo
[สตรีมแอป]
ชื่อ = Oracle Linux
baseurl=http://yum.oracle.com/repo/OracleLinux/OL8/appstream/x86_64/
เปิดใช้งาน=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle

อฟ

แมว <<EOF > /etc/yum.repos.d/base.repo
[ฐาน]
ชื่อ = Oracle Linux
baseurl=https://yum.oracle.com/repo/OracleLinux/OL8/3/baseos/base/x86_64/
เปิดใช้งาน=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
proxy=http://www-proxy.web.boeing.com:31060
อฟ

แมว <<EOF > /etc/yum.repos.d/powertools.repo
[เครื่องมือไฟฟ้า]
ชื่อ = Oracle Linux
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL8/codeready/builder/x86_64/
เปิดใช้งาน=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle

อฟ

echo "10.175.235.220 $ldaphostname $ldaphostname.$domain.$suffix" >> /etc/hosts

#https://www.server-world.info/th/note?os=CentOS_7&p=openldap
yum -y ติดตั้งเซิร์ฟเวอร์ openldap openldap-clients ไฟร์วอลล์ mlocate ชื่อโฮสต์ openssl sssd-tools opensh-server nss-pam-ldapd nano --nobest

แมว <<EOF > /etc/sudo-ldap.conf
binddn cn=ผู้จัดการ,dc=$โดเมน,dc=$ต่อท้าย
ผูก pw 1234
ssl start_tls
tls_cacertfile = /etc/pki/tls/cacert.crt
sudoers_base = ou=SUDOers,DC=$domain,DC=$suffix
tls_checkpeer ใช่ ldaps://$ldaphostname:636
bind_timelimit5
กำหนดเวลา 15
อฟ

อัพเดทb
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG 
ชวน ldap. /var/lib/ldap/DB_CONFIG 
เปิดใช้งาน systemctl - ตอนนี้ sshd
เปิดใช้งาน systemctl - ตอนนี้ตบ 

แมว <<EOF > chrootpw.ldif 
# ระบุรหัสผ่านที่สร้างขึ้นด้านบนสำหรับส่วน "olcRootPW"
dn: olcDatabase={0}config,cn=config
ประเภทการเปลี่ยนแปลง: แก้ไข
เพิ่ม: olcRootPW
olcRootPW: $(slappasswd -s $olcRootPW)
อฟ

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/pki/tls/ldapserver.key -out /etc/pki/tls/ldapserver.crt -subj "/C=XX/L=เมืองเริ่มต้น /O=บริษัทเริ่มต้น จำกัด/CN=$ldaphostname"

chown ldap:ldap /etc/pki/tls/{ldapserver.crt,ldapserver.key}

แมว > add-tls.ldif << 'EOL'
dn: cn=การกำหนดค่า
ประเภทการเปลี่ยนแปลง: แก้ไข
เพิ่ม: olcTLSCACertificateFile
olcTLSCACertificateไฟล์: /etc/pki/tls/ldapserver.crt
-
เพิ่ม: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/pki/tls/ldapserver.key
-
เพิ่ม: olcTLSCertificateFile
olcTLSCertificateFile: /etc/pki/tls/ldapserver.crt
EOL

แมว <<EOF > /etc/openldap/ldap.conf
#
# ค่าเริ่มต้นของ LDAP
#

# ดู ldap.conf(5) สำหรับรายละเอียด
# ไฟล์นี้ควรจะอ่านได้ทั่วโลก แต่ไม่สามารถเขียนได้ทั่วโลก

BASE dc=$domain,dc=$ต่อท้าย
URI ldaps://$ldaphostname:636
#ldap.example.com ldap://ldap-master.example.com:666

#SIZELIMIT 12
#TIMELIMIT 15
#เดเรฟไม่เคย

# เมื่อไม่มีการระบุใบรับรอง CA ใบรับรองระบบที่ใช้ร่วมกัน
#กำลังใช้งาน. เพื่อให้มีสิ่งเหล่านี้พร้อมกับที่ระบุไว้
# โดย TLS_CACERTDIR ต้องรวมไว้อย่างชัดเจน:
#TLS_CACERT /etc/pki/tls/cert.pem
TLS_CACERT /etc/pki/tls/ldapserver.crt

# นโยบาย Crypto ทั่วทั้งระบบมีชุดการเข้ารหัสที่ทันสมัยซึ่งควร
# ใช้เว้นแต่ว่าต้องการรหัสลับที่ละเอียดกว่า ดังนั้น การ
# PROFILE=ค่า SYSTEM แสดงถึงพฤติกรรมเริ่มต้นที่มีอยู่
# เมื่อไม่มีการใช้การตั้งค่าที่ชัดเจน (ดูที่ opensl-ciphers(1) สำหรับข้อมูลเพิ่มเติม)
#TLS_CIPHER_SUITE PROFILE=ระบบ

# การปิดนี้จะแบ่ง GSSAPI ที่ใช้กับ krb5 เมื่อ rdns = เท็จ
เปิด SASL_NOCANON
sudoers_base ou=SUDOers,dc=$domain,dc=$suffix
SUDOERS_DEBUG 1
อฟ

แมว << 'EOF' > /etc/openldap/schema/sudo.ldif
dn: cn=sudo,cn=สคีมา,cn=config
objectClass: olcSchemaConfig
cn: sudo
olcAttributeTypes: ( 1.3.6.1.4.1.15953.9.1.1 NAME 'sudoUser' DESC 'ผู้ใช้ที่อาจเรียกใช้ sudo' EQUALITY caseExactIA5Match SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
olcAttributeTypes: ( 1.3.6.1.4.1.15953.9.1.2 NAME 'sudoHost' DESC 'โฮสต์ที่อาจเรียกใช้ sudo' EQUALITY caseExactIA5Match SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
olcAttributeTypes: ( 1.3.6.1.4.1.15953.9.1.3 NAME 'sudoCommand' DESC 'คำสั่งที่จะดำเนินการโดย sudo' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
olcAttributeTypes: ( 1.3.6.1.4.1.15953.9.1.4 NAME 'sudoRunAs' DESC 'ผู้ใช้เลียนแบบโดย sudo (เลิกใช้แล้ว)' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
olcAttributeTypes: ( 1.3.6.1.4.1.15953.9.1.5 NAME 'sudoOption' DESC 'Options (s) ตามด้วย sudo' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
olcAttributeTypes: ( 1.3.6.1.4.1.15953.9.1.6 NAME 'sudoRunAsUser' DESC 'ผู้ใช้ที่เลียนแบบโดย sudo' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
olcAttributeTypes: ( 1.3.6.1.4.1.15953.9.1.7 NAME 'sudoRunAsGroup' DESC 'กลุ่มที่เลียนแบบโดย sudo' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
olcObjectClasses: ( 1.3.6.1.4.1.15953.9.2.1 NAME 'sudoRole' SUP ด้านบนโครงสร้าง DESC 'รายการ Sudoer' ต้อง ( cn ) อาจ ( sudoUser $ sudoHost $ sudoCommand $ sudoRunAs $ sudoRunAsUser $ sudoRunAsGroup $ sudoOption $ คำอธิบาย ) )
อฟ

cp /usr/share/doc/sudo/schema.OpenLDAP /etc/openldap/schema/sudo.schema

ldapadd -Y ภายนอก -H ldapi:/// -f /etc/openldap/schema/sudo.ldif
ldapadd -Y ภายนอก -H ldapi:/// -f add-tls.ldif
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

mkdir /var/lib/openldap
ชวน ldap. /var/lib/openldap

แมว > rootdn.ldif << 'EOL'
dn: olcDatabase=mdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcMdbConfig
ฐานข้อมูล olc: mdb
OlcDbMaxSize: 42949672960
olcSuffix: dc=$domain,dc=$suffix
olcRootDN: cn=ผู้จัดการ,dc=$โดเมน,dc=$ต่อท้าย
olcRootPW: ความลับ
olcDbDirectory: /var/lib/openldap
olcDbIndex: uid pres,eq
olcDbIndex: cn,sn pres,eq,ประมาณ,sub
olcDbIndex: จดหมาย pres,eq,sub
olcDbIndex: objectClass pres,eq
olcDbIndex: ค่า loginShell เช่น
olcDbIndex: sudoUser,sudoHost pres,eq
EOL

ldapadd -Y ภายนอก -H ldapi:/// -f rootdn.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=$domain,dc=$suffix" อ่านโดย * ไม่มี

dn: olcDatabase={2}mdb,cn=config
ประเภทการเปลี่ยนแปลง: แก้ไข
แทนที่: olcSuffix
olcSuffix: dc=$domain,dc=$suffix

dn: olcDatabase={2}mdb,cn=config
ประเภทการเปลี่ยนแปลง: แก้ไข
แทนที่: olcRootDN
olcRootDN: cn=ผู้จัดการ,dc=$โดเมน,dc=$ต่อท้าย

dn: olcDatabase={2}mdb,cn=config
ประเภทการเปลี่ยนแปลง: แก้ไข
เพิ่ม: olcRootPW
olcRootPW: $(slappasswd -s $olcRootPW)

dn: olcDatabase={2}mdb,cn=config
ประเภทการเปลี่ยนแปลง: แก้ไข
เพิ่ม: olcAccess
olcAccess: {0}ถึง attrs=userPassword,shadowLastChange โดย
  dn="cn=Manager,dc=$domain,dc=$suffix" เขียนโดยผู้ไม่ระบุตัวตน รับรองโดยตนเอง เขียนโดย * ไม่มี
olcAccess: {1}ถึง dn.base="" โดย * อ่าน
olcAccess: {2}to * by dn="cn=Manager,dc=$domain,dc=$suffix" เขียนโดย * อ่าน
olcAccess: เพื่อ attrs=userPassword,shadowLastChange,shadowExpire
  โดยเขียนเอง
  โดยการรับรองความถูกต้องที่ไม่ระบุชื่อ
  โดย dn.subtree="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" จัดการ 
  โดย dn.subtree="ou=System,dc=$domain,dc=$suffix" อ่าน
  โดย * ไม่มี
olcAccess: เพื่อ dn.subtree="ou=System,dc=$domain,dc=$suffix" โดย dn.subtree="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" จัดการ
  โดย * ไม่มี
olcAccess: เพื่อ dn.subtree="dc=$domain,dc=$suffix" โดย dn.subtree="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" จัดการ
  โดยผู้ใช้อ่าน 
  โดย * ไม่มี
อฟ

ldapmodify -Y ภายนอก -H ldapi:/// -f chdomain.ldif

cat <<EOF > basedomain.ldif
# เปลี่ยนเป็นชื่อโดเมนของคุณเองสำหรับส่วน "dc=***,dc=***"

dn: dc=$โดเมน,dc=$ต่อท้าย
objectClass: ด้านบน
objectClass:dcObject
วัตถุคลาส: องค์กร
o: $domain $ต่อท้าย
dc: $โดเมน

dn: cn=ผู้จัดการ,dc=$โดเมน,dc=$ต่อท้าย
objectClass: บทบาทขององค์กร
cn: ผู้จัดการ
คำอธิบาย: ตัวจัดการไดเร็กทอรี

dn: ou=System,dc=$domain,dc=$ต่อท้าย
objectClass: หน่วยขององค์กร
objectClass: ด้านบน
คุณ: ระบบ

dn: ou=ผู้ใช้,dc=$โดเมน,dc=$ต่อท้าย
objectClass: หน่วยขององค์กร
objectClass: ด้านบน
คุณ: ผู้ใช้

dn: ou=กลุ่ม,dc=$โดเมน,dc=$ส่วนต่อท้าย
objectClass: หน่วยขององค์กร
objectClass: ด้านบน
คุณ: กลุ่ม

อฟ

ldapadd -x -w $olcRootPW -D cn=Manager,dc=$domain,dc=$suffix -f basedomain.ldif

systemctl เริ่มไฟร์วอลล์
systemctl เปิดใช้งานไฟร์วอลล์
firewall-cmd --add-service={ldap,ldaps} --ถาวร 
ไฟร์วอลล์ cmd --reload

แมว <<EOF > sudoersou.ldif
dn: ou=SUDOers,dc=$domain,dc=$suffix
objectClass: หน่วยขององค์กร
คุณ: SUDOers
คำอธิบาย: $domain-$suffix LDAP SUDO Entry
อฟ

ldapadd -x -w $olcRootPW -D cn=Manager,dc=$domain,dc=$suffix -f sudoersou.ldif

แมว <<EOF > users_n_groups.ldif

dn: cn=readonly,ou=System,dc=$domain,dc=$suffix
objectClass: บทบาทขององค์กร
objectClass: simpleSecurityObject
cn: อ่านอย่างเดียว
รหัสผ่านผู้ใช้: $(slappasswd -s $binddnpw)
คำอธิบาย: ผูกผู้ใช้ DN สำหรับการดำเนินการ LDAP

dn: uid=adam,ou=Users,dc=$domain,dc=$suffix
objectClass: ด้านบน
objectClass: บัญชี
objectClass: posixบัญชี
objectClass: shadowAccount
cn: อดัม
uid: อดัม
หมายเลขรหัส: 16859
gidNumber: 100
homeDirectory: /home/อดัม
ล็อกอินเชลล์: /bin/bash
gecos: อดัม
รหัสผ่านผู้ใช้: $(slappasswd -s $userpw)
shadowLastChange: 0
เงาสูงสุด: 0
เงาคำเตือน: 0
อฟ
ldapadd -x -w $olcRootPW -D "cn=Manager,dc=$domain,dc=$suffix" -f users_n_groups.ldif

#cvtsudoers -b ou=SUDOers,dc=$domain,dc=$suffix -o sudoers.ldif /etc/sudoers

แมว <<EOF > sudoers.ldif
dn: cn=defaults,ou=SUDOers,dc=$domain,dc=$suffix
objectClass: ด้านบน
objectClass: sudoRole
cn: ค่าเริ่มต้น
คำอธิบาย: เริ่มต้น sudoOption ไปที่นี่
sudoOption: !visiblepw
sudoOption: always_set_home
sudoOption: match_group_by_gid
sudoOption: always_query_group_plugin
sudoOption: env_reset
sudoOption: env_keep=สี แสดงชื่อโฮสต์ HISTSIZE KDEDIR LS_COLORS
sudoOption: env_keep+=MAIL PS1 PS2 QTDIR ชื่อผู้ใช้ LANG LC_ADDRESS LC_CTYPE
sudoOption: env_keep+=LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES
sudoOption: env_keep+=LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE
sudoOption: env_keep+=LC_TIME LC_ALL ภาษา LINGUAS _XKB_CHARSET XAUTHORITY
sudoOption: secure_path=/sbin:/bin:/usr/sbin:/usr/bin
อฟ

ldapadd -x -w $olcRootPW -D cn=Manager,dc=$domain,dc=$suffix -f sudoers.ldif

แมว <<EOF > indsudoers.ldif
dn: cn=sudo,ou=SUDOers,dc=$domain,dc=$suffix
objectClass: ด้านบน
objectClass: sudoRole
cn: sudo
sudoUser: อดัม
sudoHost: ทั้งหมด
sudoRunAsUser: ทั้งหมด
sudoCommand: ทั้งหมด
อฟ

ldapadd -x -w $olcRootPW -D cn=Manager,dc=$domain,dc=$suffix -f indsudoers.ldif

#ldappasswd -s $olcRootPW -w $userpw -D "cn=Manager,dc=$domain,dc=$suffix" -x "uid=adam,ou=Users,dc=$domain,dc=$suffix"

#ldappasswd -s $olcRootPW -w $binddnpw -D "cn=Manager,dc=$domain,dc=$suffix" -x "cn=readonly,ou=System,dc=$domain,dc=$suffix"

คอนเทนเนอร์ SSSD

lxc หยุด ldap-sssd-try2 --force; lxc ลบ ldap-sssd-try2; lxc เปิดตัวอิมเมจ: oracle/8/amd64 ldap-sssd-try2; lxc exec ldap-sssd-try2 รหัสผ่าน wd; คอนโซล lxc ldap-sssd-try2;

วางลงในคอนเทนเนอร์ SSSD

ldaphostname="ldapmaster"
โดเมน = "ตัวอย่าง"
ต่อท้าย = "com"
olcRootPW=1234
userpw=1234
binddnpw=1234
mgrpw=1234
DNS1=192.168.3.1
DNS2=192.168.3.2
LDAPMASTERIP=10.175.235.220
SSSDIP=10.175.235.210
NETMASKIP=255.255.255.0
GATEWAYIP=10.175.235.1

แมว <<EOF > /etc/sysconfig/network-scripts/ifcfg-eth0
อุปกรณ์=eth0
BOOTPROTO=คงที่
IPADDR=$SSSDIP
NETMASKIP=$NETMASKIP
เกตเวย์=$เกตเวย์ไอพี
DNS1=$DNS1
DNS2=$DNS2
ONBOOT=ใช่
HOSTNAME=`cat /proc/sys/kernel/hostname`
TYPE=อีเธอร์เน็ต
มทร. =
DHCP_HOSTNAME=`cat /proc/sys/kernel/hostname`
IPV6INIT=ใช่
อฟ

ถ้าลง eth0

ถ้าอัพ eth0

แมว <<EOF > /etc/yum.repos.d/appstream.repo
[สตรีมแอป]
ชื่อ = Oracle Linux
baseurl=http://yum.oracle.com/repo/OracleLinux/OL8/appstream/x86_64/
เปิดใช้งาน=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
อฟ

แมว <<EOF > /etc/yum.repos.d/base.repo
[ฐาน]
ชื่อ = Oracle Linux
baseurl=https://yum.oracle.com/repo/OracleLinux/OL8/3/baseos/base/x86_64/
เปิดใช้งาน=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
proxy=http://www-proxy.web.boeing.com:31060
อฟ

แมว <<EOF > /etc/yum.repos.d/powertools.repo
[เครื่องมือไฟฟ้า]
ชื่อ = Oracle Linux
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL8/codeready/builder/x86_64/
เปิดใช้งาน=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
อฟ

echo "10.175.235.220 $ldaphostname $ldaphostname.$domain.$suffix" >> /etc/hosts

yum install -y ชื่อโฮสต์ opensh-server nmap openssl sssd sssd-tools oddjob-mkhomedir authselect openldap-clients openldap-servers sssd-tools nss-pam-ldapd bind-utils nano mlocate --nobest

เปิดใช้งาน systemctl - ตอนนี้ sshd

แมว <<EOF > /etc/sudo-ldap.conf
binddn cn=ผู้จัดการ,dc=$โดเมน,dc=$ต่อท้าย
ผูก pw 1234
ssl start_tls
tls_cacertfile = /etc/pki/tls/cacert.crt
sudoers_base = ou=SUDOers,DC=$domain,DC=$suffix
tls_checkpeer ใช่ ldaps://$ldaphostname:636
bind_timelimit5
กำหนดเวลา 15
อฟ

แมว <<EOF > /etc/sssd/sssd.conf
[sssd]
บริการ = nss, แพม, sudo
config_file_version = 2
โดเมน = LDAP

[ซูโดะ]

[nss]

[แพม]
offline_credentials_expiration = 60

[โดเมน/LDAP]
ldap_id_use_start_tls = จริง
cache_credentials = เท็จ
ldap_search_base = dc=$domain,dc=$suffix
id_provider = ldap
auth_provider = ldap
chpass_provider = ldap
access_provider = ldap
sudo_provider = ldap
ldap_uri = ldaps://$ldaphostname:636
ldap_chpass_uri = ldaps://$ldaphostname:636
#ldap_default_bind_dn = cn=Manager,dc=$domain,dc=$suffix
#ldap_default_authtok = $olcRootPW
ldap_default_bind_dn = cn=readonly,ou=System,dc=$domain,dc=$suffix
# ดูเหมือนจะไม่สำคัญถ้าฉันใช้ mapldap_default_authtok_type
#mapldap_default_authtok_type = รหัสผ่าน
ldap_default_authtok = $binddnpw
ldap_user_search_base = ou=ผู้ใช้,DC=$โดเมน,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=$domain,DC=$suffix
ldap_access_order = ตัวกรอง
ldap_access_filter = (objectClass=posixAccount)
อฟ

authselect เลือก sssd --force

chown -R รูท: /etc/sssd

chmod 600 -R /etc/sssd

เปิดใช้งาน systemctl -- ตอนนี้ sssd

แมว <<EOF > /etc/openldap/ldap.conf
#
# ค่าเริ่มต้นของ LDAP
#

# ดู ldap.conf(5) สำหรับรายละเอียด
# ไฟล์นี้ควรเป็น $suffix ที่อ่านได้ แต่ไม่สามารถเขียน $suffix ได้

BASE dc=$domain,dc=$ต่อท้าย
URI ldaps://$ldaphostname:636
#SUDOers_BASE ou=SUDOers,dc=ldapmaster,dc=ldapmaster,dc=com

#SIZELIMIT 12
#TIMELIMIT 15
#เดเรฟไม่เคย

# เมื่อไม่มีการระบุใบรับรอง CA ใบรับรองระบบที่ใช้ร่วมกัน
#กำลังใช้งาน. เพื่อให้มีสิ่งเหล่านี้พร้อมกับที่ระบุไว้
# โดย TLS_CACERTDIR ต้องรวมไว้อย่างชัดเจน:
#TLS_CACERT /etc/pki/tls/cert.pem
TLS_CACERT /etc/pki/tls/cacert.crt

# นโยบาย Crypto ทั่วทั้งระบบมีชุดการเข้ารหัสที่ทันสมัยซึ่งควร
# ใช้เว้นแต่ว่าต้องการรหัสลับที่ละเอียดกว่า ดังนั้น การ
# PROFILE=ค่า SYSTEM แสดงถึงพฤติกรรมเริ่มต้นที่มีอยู่
# เมื่อไม่มีการใช้การตั้งค่าที่ชัดเจน (ดูที่ opensl-ciphers(1) สำหรับข้อมูลเพิ่มเติม)
#TLS_CIPHER_SUITE PROFILE=ระบบ

# การปิดนี้จะแบ่ง GSSAPI ที่ใช้กับ krb5 เมื่อ rdns = เท็จ
เปิด SASL_NOCANON
sudoers_base ou=SUDOers,dc=$domain,dc=$suffix
SUDOERS_DEBUG 1
อฟ

openssl s_client -เชื่อมต่อ $ldaphostname:636 < /dev/null -showcerts | opensl x509 - ข้อความ | sed -เน '
   /-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p # ได้ช่วง ตกลง
   /-END CERTIFICATE-/q # ประกันตัวทันทีที่เห็นใบรับรองสิ้นสุด
' > /etc/pki/tls/cacert.crt

echo "sudoers : ldap files" >> /etc/nsswitch.conf

systemctl รีสตาร์ท sssd

เปิดใช้งาน systemctl -- ตอนนี้oddjobd

echo "ตัวเลือกเซสชัน pam_oddjob_mhomedir.so skel=/etc/skel/ umask=0022" >> /etc/pam.d/system-auth

systemctl รีสตาร์ทoddjobd

หากฉันค้นหาโดยใช้ ldapsearch

โดเมน = "ตัวอย่าง"
ต่อท้าย = "com"
ส่งออก SUDOERS_BASE=ou=SUDOers,DC=$domain,DC=$suffix

ldapsearch -b "$SUDOERS_BASE" -D cn=Manager,DC=$domain,DC=$suffix -W -x อดัม

ฉันเข้าใจ

ป้อนรหัสผ่าน LDAP:
# LDIF ขยาย
#
#LDAPv3
# ฐาน <ou=SUDOers,DC=example,DC=com> พร้อมทรีย่อยของขอบเขต
# ตัวกรอง: (objectclass=*)
# ร้องขอ: อดัม
#

# SUDOers, example.com
dn: ou=SUDOers,dc=example,dc=com

# อดัม SUDOers, example.com
dn: cn=อดัม,คุณ=SUDOers,dc=example,dc=com

# ค่าเริ่มต้น, SUDOers, example.com
dn: cn=defaults,ou=SUDOers,dc=example,dc=com

# ผลการค้นหา
ค้นหา: 2
ผลลัพธ์: 0 สำเร็จ

# numResponses: 4
# จำนวนรายการ: 3

ถ้าฉันวิ่ง

โดเมน = "ตัวอย่าง"
ต่อท้าย = "com"
ส่งออก SUDOERS_BASE=ou=SUDOers,DC=$domain,DC=$suffix

ldapsearch -b "$SUDOERS_BASE" -D cn=Manager,DC=$domain,DC=$suffix -w 1234 -x

ฉันเข้าใจ

# LDIF ขยาย
#
#LDAPv3
# ฐาน <ou=SUDOers,DC=example,DC=com> พร้อมทรีย่อยของขอบเขต
# ตัวกรอง: (objectclass=*)
# คำขอ: ทั้งหมด
#

# SUDOers, example.com
dn: ou=SUDOers,dc=example,dc=com
objectClass: หน่วยขององค์กร
คุณ: SUDOers
คำอธิบาย: example-com รายการ LDAP SUDO

# sudo, SUDOers, example.com
dn: cn=sudo,ou=SUDOers,dc=example,dc=com
objectClass: ด้านบน
objectClass: sudoRole
cn: sudo
sudoUser: อดัม
sudoHost: ทั้งหมด
sudoRunAsUser: ทั้งหมด
sudoCommand: ทั้งหมด

# ค่าเริ่มต้น, SUDOers, example.com
dn: cn=defaults,ou=SUDOers,dc=example,dc=com
objectClass: ด้านบน
objectClass: sudoRole
cn: ค่าเริ่มต้น
คำอธิบาย: เริ่มต้น sudoOption ไปที่นี่
sudoOption: !visiblepw
sudoOption: always_set_home
sudoOption: match_group_by_gid
sudoOption: always_query_group_plugin
sudoOption: env_reset
sudoOption: env_keep=สี แสดงชื่อโฮสต์ HISTSIZE KDEDIR LS_COLORS
sudoOption: env_keep+=MAIL PS1 PS2 QTDIR ชื่อผู้ใช้ LANG LC_ADDRESS LC_CTYPE
sudoOption: env_keep+=LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES
sudoOption: env_keep+=LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE
sudoOption: env_keep+=LC_TIME LC_ALL ภาษา LINGUAS _XKB_CHARSET XAUTHORITY
sudoOption: secure_path=/sbin:/bin:/usr/sbin:/usr/bin

# ผลการค้นหา
ค้นหา: 2
ผลลัพธ์: 0 สำเร็จ

# numResponses: 4
# จำนวนรายการ: 3
Score:0
ธง cf

ปัญหาคือพื้นที่พิเศษหลังจากนั้น /etc/nsswitch.conf

echo "sudoers: ldap files sss" >> /etc/nsswitch.conf

เมื่อแก้ไขแล้วก็ต้องติดตั้ง

libsss_sudo

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา