NSS, PAM a LDAP

Jakub Kováč, xkovac5@mail.muni.cz

Obsah

Autentizace v UNIXu

každý uživatel má uid gid a doplňková gid

Name Service Switch (NNS)

umožňuje brát inforamce o uživetelích a skupinách nejen z /etc/passwd /etc/shadow. Specifikuje kde se mají hledat

Konfigurace - /etc/nsswitch.conf

vypisuje "databáze" a kde je hledat. Databáze může být třeba passwd, shadow, group, hosts, ... . Pak následuje jeden nebo více zdrojů kde je hledat - vezme se první který vyhoví. To jak funguje je specifikováno v /lib/libnss_*zdroj*.so.X

Nebo akce ve formátu [!]status = akce (!status - všechny kromě toho statusu)

statusy jsou:

akce zamenají:

příklad

    hosts: dns files
    ethers: nisplus [NOTFOUND=return] db files

cashe

zdroje nemusí být vždycky k dispozici, proto se používají cashe - sssd, ...

nis

protokol na kominikaci; centrální NIS server, ukládá autentizační informace

Pluggable Authentication Modules (PAM)

sdílené moduly pro su, sshd, ftpd, ... . Musí implemontovat api libpam.so

konfigurace v /etc/pam.d

soubory pro jednotlivé služby a taky common-[něco]
formát: služba(/etc/pam.conf) typ control modul parametry

typ

control

buď jen jedno slovo nebo [náv. hodnota=akce,...]
[náv. hodnota=akce]
návratových hodnot je víc jak 30 - success, ignore, abort, něco_err, default, ...; akce:

příklad - sshd

    # PAM configuration for the Secure Shell service
    @include common-auth

    account    required     pam_nologin.so

    @include common-account

    session [success=ok ignore=ignore module_unknown=ignore default=bad]        pam_selinux.so close
    session    required     pam_loginuid.so
    session    optional     pam_keyinit.so force revoke

    @include common-session

    session    optional     pam_motd.so  motd=/run/motd.dynamic
    session    optional     pam_motd.so noupdate
    session    optional     pam_mail.so standard noenv # [1]
    session    required     pam_limits.so
    session    required     pam_env.so # [1]
    session    required     pam_env.so user_readenv=1 envfile=/etc/default/locale
    session [success=ok ignore=ignore module_unknown=ignore default=bad]        pam_selinux.so open

    @include common-password

nějaké moduly

další autentizační systémy

Lightweight Directory Access Protocol (LDAP)

je to protokol (port 389, LDAPS 636) pro komunikaci s databází, je na LDAP serveru jak ta databáze bude vypadat. Neukládá jenom jména, hesla ale může vše (konfigurace služeb).

modely

Konfigurace

administrativní uživatel cn=admin,to co zadáte při instalaci
nastavení démona pomocí cn=config,to co zadáte při instalaci

/etc/ldap/slapd.d/ - výpis configů ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config dn

cn=module,cn=config dynamicky načtené moduly;
cn=schema,cn=config definice schémat - děti jsou uživatelsky definované schémata; (/etc/ldap/schema)
olcBackend=xxx,cn=config nastavení backendu;
olcDatabase=xxx,cn=config nastavení databází;

autentizace

LDAP není šifrováný je nutno použít TLS/SSL pro LDAPS

pro každou databázi je admin uživatel zvlášť (olcRootDN a olcRootPW)

pro každou databázi je ACL zvlášť (olcAccess)


    olcAccess: {1}to attrs=loginShell,gecos
      by dn="cn=admin,dc=example,dc=com" write
      by self write
      by * read

SASL

poskytuje autentizaci a bezpočnostní vrstvu pro různé služby. Funguje tak, že server poskytne list podporovaných autentiačních mechanizmů a client si vybere
některé: ANONYMOUS, DIGEST-MD5, GSSAPI, PLAIN, NMAS_LOGIN, SPNEGO

ldap utils

v /etc/ldap/slapd.d/ složce se nacházejí složky a soubory podle jmenného modelu

Spojení LDAP s NSS, PAM

NSS

PAM

Literatura