SSSD-SUDO(5) Filformat och konventioner SSSD-SUDO(5)

sssd-sudo - Konfigurera sudo med SSSD-bakänden

Denna manualsida beskriver hur man konfigurerar sudo(8) till att fungera med sssd(8) och hur SSSD cachar sudo-regler.

För att aktivera SSSD som en källa för sudo-regler, lägg till sss till posten sudoers i nsswitch.conf(5).

Till exempel, för att konfigurera sudo till att först slå upp regler i standardfilen sudoers(5) (som bör innehålla regler som gäller för lokala användare) och sedan i SSSD, skall filen nsswitch.conf innehålla följande rad:

sudoers: files sss

Mer information om att konfigurera sökordningen för sudoers från filen nsswitch.conf liksom information om LDAP-schemat som används för att spara sudo-regler i katalogen finns i sudoers.ldap(5).

Observera: för att använda nätgrupper eller IPA-värdgrupper i sudo-regler behöver man även sätta nisdomainname(1) korrekt till sitt NIS-domännamn (som är samma som IPA-domännamnet när värdgrupper används).

All konfiguration som behövs på SSSD-sidan är att utöka listan över tjänster med ”sudo” i avsnittet [sssd] i sssd.conf(5). För att snabba upp LDAP-uppslagningarna kan man även sätta sökbasen för sudo-regler med alternativet ldap_sudo_search_base.

Följande exempel visar hur man konfigurerar SSSD att hämta sudo-regler från en LDAP-server.

[sssd]
config_file_version = 2
services = nss, pam, sudo
domains = EXEMPEL
[domain/EXEMPEL]
id_provider = ldap
sudo_provider = ldap
ldap_uri = ldap://example.com
ldap_sudo_search_base = ou=sudoers,dc=example,dc=com

Det är viktigt att observera att på plattformar där systemd stödjs finns det inget behov av att lägga till ”sudo”-leverantören till listan av tjänster, eftersom det blev frivilligt. Dock måste sssd-sudo.socket vara aktiverat istället.

När SSSD är konfigurerat till att använda IPA som ID-leverantör aktiveras sudo-leverantören automatiskt. Sudo-sökbasen konfigureras till att använda IPA:s egna LDAP-träd (cn=sudo,$SUFFIX). Om någon annan sökbas är definierad i sssd.conf kommer detta värde användas istället. Kompatibilitetsträdet (ou=sudoers,$SUFFIX) behövs inte längre för IPA-sudo-funktionalitet.

Den största utmaningen vid utvecklingen av stöd för sudo i SSSD var att säkerställa att köra sudo med SSSD som datakälla ger samma användarupplevelse och är lika snabbt som sudo men tillhandahåller de senaste reglerna så mycket som möjligt. För att uppfylla dessa krav använder SSSD tre sorters uppdateringar. De refereras till som fullständig uppdatering, smart uppdatering och regeluppdatering.

Den smarta uppdateringen hämtar periodiskt regler som är nya eller ändrades efter den senaste uppdateringen. Dess primära mål är att se till att databasen växer genom att bara hämta små inkrementella steg som inte genererar stora mängder med nätverkstrafik.

Den fullständiga uppdateringen raderar helt enkelt alla sudo-regler som är lagrade i cachen och ersätter dem med alla regler som är sparade på servern. Detta används för att hålla cachen konsistent genom att ta bort varje regel som var raderad från servern. Dock kan en fullständig uppdatering skapa mycket trafik och den bör alltså bara köras ibland beroende på storleken och stabiliteten hos sudo-reglerna.

Regeluppdateringen säkerställer att vi inte ger användaren fler rättigheter än definierat. Den triggas varje gång användaren kör sudo. Regeluppdateringen kommer hitta alla regler som är tillämpliga på den användaren, kontrollera deras utgångstidpunkt och hämta om dem om de gått ut. Ifall att någon av dessa regler saknas på servern kommer SSSD göra en fullständig uppdatering vid sidan av för att fler regler (som är tillämpliga på andra användare) kan ha raderats.

Om aktiverat kommer SSSD endast lagra regler som kan tillämpas på denna maskin. Detta betyder att regler som innehåller ett av följande värden i attributet sudoHost:

•nyckelordet ALL
•jokertecken (wildcard)
•nätgrupp (i formen ”+nätgrupp”)
•värdnamn eller fullständigt kvalificerat domännamn på denna maskin
•en av IP-adresserna till denna maskin
•en av IP-adresserna till nätverket (på formen ”adress/mask”)

Det finns många konfigurationsalternativ som kan användas för att justera beteendet. Se ”ldap_sudo_*” i sssd-ldap(5) och ”sudo_*” i sssd.conf(5).

SSSD använder olika mekanismer med mer eller mindre komplexa LDAP-filter för att hålla de cachade sudo-reglerna uppdaterade. Standardkonfigurationen är satt till värden som skall passa de flesta av våra användare, men följande stycken innehåller några tips om hur man kan finjustera konfigurationen för sina behov.

1. Indexera LDAP-attribut. Se till att följande LDAP-attribut är indexerade: objectClass, cn, entryUSN eller modifyTimestamp.

2. Sätt ldap_sudo_search_base. Sätt sökbasen till den behållare som innehåller sudo-reglerna för att begränsa räckvidden för uppslagningen.

3. Sätt fullt och smart uppdateringsintervall. Om ens sudo-regler inte ändras ofta och man inte behöver snabba uppdateringar av cachade regler på sina klienter kan man avsevärt öka ldap_sudo_full_refresh_interval och ldap_sudo_smart_refresh_interval. Man kan också överväga att avaktivera den smarta uppdateringen genom att sätta ldap_sudo_smart_refresh_interval = 0.

4. Om man har ett stort antal klienter kan man överväga att öka värdet på ldap_sudo_random_offset för att fördela lasten på servern bättre.

sssd(8), sssd.conf(5), sssd-ldap(5), sssd-ldap-attributes(5), sssd-krb5(5), sssd-simple(5), sssd-ipa(5), sssd-ad(5), sssd-files(5), sssd-sudo(5), sssd-session-recording(5), sss_cache(8), sss_debuglevel(8), sss_obfuscate(8), sss_seed(8), sssd_krb5_locator_plugin(8), sss_ssh_authorizedkeys(8), sss_ssh_knownhostsproxy(8), sssd-ifp(5), pam_sss(8). sss_rpcidmapd(5)

SSSD uppströms – https://github.com/SSSD/sssd/

04/02/2024 SSSD