Puncte:0

Încercarea de a face sudoers să lucreze pe openldap/centos7

drapel in

Am urmat acest tutorial aici:

https://kifarunix.com/how-to-configure-sudo-via-openldap-server/

Multe dintre ele aveau sens, dar încă sunt noi pentru openldap, așa că unele dintre acestea sunt și ele criptice. Am openldap care rulează cu utilizatori care se autentifică pe alte mașini chiar și lucrează cu phpldapadmin. Așa că era timpul să lucreze sudoers pentru unii utilizatori. Am alergat pe sudoers2ldif comandă și am primit un fișier similar cu ceea ce a fost afișat în tutorial și l-am editat în consecință. Când a venit timpul să alerg ldapadd -Y EXTERNAL -H ldapi:/// -f sudoers_modified.ldif a eșuat cu eroarea:

Autentificarea SASL/EXTERNĂ a început
Nume utilizator SASL: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adăugarea unei noi intrări „cn=defaults,ou=SUDOers,dc=apo,dc=local”
ldap_add: sintaxă nevalidă (21)
    informații suplimentare: objectClass: valoarea #1 nevalidă pe sintaxă

Este 21, numărul de linie al fișierului .ldif? Sau un alt cod de eroare... de asemenea, nu am idee ce este invalid pe comanda objectClass... postat este fișierul ldif de mai jos.

dn: cn=defaults,ou=SUDOers,dc=bbb,dc=local
objectClass: top
objectClass: sudoRole
cn: implicite
descriere: sudoOption implicită merge aici
sudoOption: !visiblepw
sudoOption: always_set_home
sudoOption: match_group_by_gid
sudoOption: always_query_group_plugin
sudoOption: env_reset
sudoOption: env_keep = "CULORI DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS"
sudoOption: env_keep += „MAIL PS1 PS2 QTDIR USERNAME 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 LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"
sudoOption: secure_path = /sbin:/bin:/usr/sbin:/usr/bin

dn: cn=sudo,OU=SUDOers,dc=bbb,dc=local
objectClass: top
objectClass: sudoRole
cn: sudo
sudoUtilizator: bobby
sudoHost: TOATE
sudoRunAsUser: TOATE
sudoCommand: TOATE

Poate că sudoRole trebuie adăugat cumva? Celălalt ldif pe care l-am adăugat cu succes pentru asta a fost:

dn: ou=SUDOers,dc=bbb,dc=local
objectCLass: top
objectClass: organizationalUnit
ou: SUDOeri
descriere: container BBB SUDOers

Am gasit un alt tutorial aici:

https://forums.centos.org/viewtopic.php?t=73807

Cu informații similare ușor diferite, nu l-am folosit pe acesta deoarece unul dintre fișierele ldif care a fost postat avea o mulțime de lucruri care spuneau că este „generat automat” și nu aveam idee cum sau de unde provine.

După un singur răspuns, cred că fișierul afișat pe linkul de mai sus care conține datele:

vi /testfolder/sudoers.ldif
#------------------------
# FIȘIER GENERAT AUTOMAT - NU EDIȚI!! Utilizați ldapmodify.
# CRC32 b181185c
dn: cn=sudoers,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: sudoers
olcAttributeTypes: {0}( 1.3.6.1.4.1.15953.9.1.1 NAME 'sudoUser' DESC 'Utilizator(i)
) care poate rula sudo' EQUALITY caseExactIA5Match SUBSTR caseExactIA5Substrin
SINTAXA gsMatch 1.3.6.1.4.1.1466.115.121.1.26)
olcAttributeTypes: {1}( 1.3.6.1.4.1.15953.9.1.2 NAME 'sudoHost' DESC 'Gazdă(e)
) care poate rula sudo' EQUALITY caseExactIA5Match SUBSTR caseExactIA5Substring
sMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
olcAttributeTypes: {2}( 1.3.6.1.4.1.15953.9.1.3 NAME 'sudoCommand' DESC 'Com
comanda(e) care urmează să fie executată de sudo' EQUALITY caseExactIA5Match SINTAXA 1.3.6.1.4
.1.1466.115.121.1.26)
olcAttributeTypes: {3}( 1.3.6.1.4.1.15953.9.1.4 NAME 'sudoRunAs' DESC 'Utilizator(
s) uzurpat de sudo (depreciat)' EQUALITY caseExactIA5Match SINTAXA 1.3
.6.1.4.1.1466.115.121.1.26)
olcAttributeTypes: {4}( 1.3.6.1.4.1.15953.9.1.5 NAME 'sudoOption' DESC 'Opti
ons(e) urmat de sudo' EQUALITY caseExactIA5Match SINTAXA 1.3.6.1.4.1.1466
.115.121.1.26)
olcAttributeTypes: {5}( 1.3.6.1.4.1.15953.9.1.6 NAME 'sudoRunAsUser' DESC 'U
ser(e) uzurpat de sudo' EGALITATE caseExactIA5Match SINTAXA 1.3.6.1.4.1.
1466.115.121.1.26)
olcAttributeTypes: {6}( 1.3.6.1.4.1.15953.9.1.7 NAME 'sudoRunAsGroup' DESC '
Grup(e) impersonat(e) de sudo' EQUALITY caseExactIA5Match SINTAXA 1.3.6.1.4.
1.1466.115.121.1.26)
olcAttributeTypes: {7}( 1.3.6.1.4.1.15953.9.1.8 NAME 'sudoNotBefore' DESC 'S
tart de interval de timp pentru care intrarea este valabila' EGALITATE generalizataTim
eMatch ORDERING generalizedTimeOrderingMatch SINTAXA 1.3.6.1.4.1.1466.115.12
1.1.24)
olcAttributeTypes: {8}( 1.3.6.1.4.1.15953.9.1.9 NAME 'sudoNotAfter' DESC 'Ro
d de interval de timp pentru care este valabilă intrarea' EGALITATE generalizatăTimeMa
tch ORDINARE generalizedTimeOrderingMatch SINTAXA 1.3.6.1.4.1.1466.115.121.1
.24)
olcAttributeTypes: {9}( 1.3.6.1.4.1.15953.9.1.10 NAME 'sudoOrder' DESC 'an i
nteger pentru a ordona intrările sudoRole EQUALITY integerMatch ORDERING întreg
rOrderingMatch SINTAXA 1.3.6.1.4.1.1466.115.121.1.27)
olcObjectClasses: {0}( 1.3.6.1.4.1.15953.9.2.1 NAME 'sudoRole' DESC 'Sudoer
SUP intrărilor de sus STRUCTURAL MUST cn MAI ( sudoUser $ sudoHost $ sudoCommand
$ sudoRunAs $ sudoRunAsUser $ sudoRunAsGroup $ sudoOption $ sudoOrder $ su
doNotBefore $ sudoNotAfter $ description ) )

Odată ce mi-am dat seama că fișierul este schema, l-am adăugat și, în sfârșit, am făcut totul să funcționeze, așa că într-un mod rotund, am acceptat răspunsul, deși a trebuit să cercetez mai mult ceea ce făceam. De altfel, fișierul schema nu a fost folosit în ldap-ul meu, a trebuit să-l adaug prin ldapadd

Richard Salts avatar
drapel cn
Utilizați configurația dinamică pentru openldap, mai degrabă decât slapd.conf și fișierele asociate *.schema. Configurația serverului este accesată prin ldap și o puteți vizualiza cu `ldapsearch -Y EXTERNAL -d "cn=config" ldapi:///` se pare că tutorialul pe care îl urmați se bazează doar pe faptul că schema sudo era deja încorporate în serverul ldap.
Puncte:1
drapel no

Este 21, numărul de linie al fișierului .ldif? Sau un alt cod de eroare

Acesta este codul de returnare pentru Sintaxa invalidă.

LDAP_INVALID_SYNTAX - 21 (0x15)
O valoare de atribut specificată într-o solicitare de client LDAP nu are o sintaxă validă specificată. 
De exemplu, dacă un tip de atribut din schemă are o sintaxă întreagă, trebuie specificată o valoare întreagă într-o cerere de adăugare sau modificare.

Puteți face următoarele pentru a remedia problema în continuare?

  • Verificați dacă fișierele schema sudoers sunt prezente pe gazdă. dacă nu este prezent, copiați-l de pe Aici
    # ls -l /etc/openldap/schema/sudo.schema
    
  • Verificați dacă sudo.schema (sau fișierul echivalent) este adăugat la fișierul de configurare a serverului openldap relevant.
    # grep sudo.schema /etc/openldap/slapd.conf
    includ /etc/openldap/schema/sudo.schema
    
  • Verificați dacă sudoers OU există!
    # ldapsearch -H ldap://localhost -x -LLL -s one -b "OU=SUDOers,dc=bbb,dc=local"
    
    Dacă nu este, adăugați-l folosind ldapadd (1)
  • Verificați dacă există erori de sintaxă în fișierul ldif folosind
    # /usr/bin/cvtsudoers /tmp/sample.ldif -i ldif -f sudoers
    

Probabil ar trebui să parcurgeți documentația oficială sudo legătură care conțin explicații pentru unele dintre lucrurile de mai sus.

drapel in
Am observat că nu am deloc un slapd.conf, dar cred că este pentru că a fost depreciat și rulez o versiune nouă?
drapel no
Deoarece utilizați centos, puteți verifica versiunea de openldap pe care o rulați acum folosind ceva de genul acesta `rpm -qi openldap-servers`?

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.