Ověření uživatele u linuxu
Bezprostředně po instalaci přes deboostrap má linuxový systém pouze jednoho superuživatele root, s id 0 a bez hesla.
Ověření uživatele, je operace, při níž se operační systém nejprve zeptá, prostřednictvím přihlašovacího dialogu na uživatelské jméno a heslo.
Nejprve ověří zda-li pro uvedené uživatelské jméno existuje ID.
Pokud ano, zkontroluje přes zvolený ověřovací mechanismus heslo, nebo předaný klíč (SSH). Pak už záleží na výsledku ověření.
Domovský adresář, sdílený přes NFS se bez ověření nezaloží, protože vyžaduje číselné ID. Ale může nastat situace, že je uživatel úspěšně ověřen, má vytvořen domovský adresář sdílený přes NFS a dokonce i připojený - přesto se do něj nedostane. A to pokud mount nedostane option=sys
PAM
K ověření uživatele se u linuxu používají tzv. PAM moduly (Pluggable Authentication Modules). Konfigurace těchto PAM modulů určuje které a v jakém pořadí se mají vyzkoušet, a jak má eventuálně systém reagovat v případě že ověření selže.
Celá konfigurace může být v jednom konfiguračním souboru /etc/pam.conf
, ale u Debianu je ve výchozím stavu konfigurace PAM modulů rozdělena do několika samostatných konfiguračních souborů s příponou .conf
v adresáři /etc/pam.d
.
Debian použije soubor /etc/pam.conf pouze v případě že adresář /etc/pam.d neexistuje.
|
Jak probíhá přihlašovací proces lze kontrolovat na průběžném výpise logovacího souboru /var/log/auth.log
. To je důležité vědět, pokud potřebujeme zjistit v jakém pořadí a které PAM moduly se volají.
Z ukázkového výpisu lze kupř. vyčíst, že ověření uživatele usernameX oproti kerberos serveru proběhlo v pořádku, ale přihlašovací proces selhal u PAM modulu pam_unix, kterému se nepodařilo zjistit jeho UID - pro uživatele usernameX neexistuje lokální účet.
Autentizace přes Kerberos
krb5 -> Novellovská nds -> lokální přihlášení
- ntp - konfigurace časové zóny
- libnss-ldap - konfigurace Novellovského ldapu
Autorizace přes NDS a LDAP Novellu
Aby se uživatel z naší katedry mohl přihlásit na strojích, které používají Novellovský LDAP a NDS, musí mít zaveden platný účet v Novellu. |
Při použití účtů z Novellu na linuxových strojích zjišťuje PAM z jeho LDAPu jaké má mít ověřený uživatel UID a GID. K tomu je ovšem třeba do systému doinstalovat balík libnss-ldap, který si sebou přitáhne také balík s démonem nscd a balíček libpam-ldap, který nám - pokud to vyžadujeme - provádět vůči Novellovské NDS také autorizaci uživatele.
root@stroj~: apt-get install libnss-ldap
Nastavení LDAPu
Pokud nás z LDAPu zajímá pouze UID a GID příslušného uživatele, není vůbec třeba zasahovat do souboru /etc/pam_ldap.conf
. Pro nastavení přístupu k LDAPu totiž stačí upravit nastavení v souborech /etc/libnss-ldap.conf
a /etc/nssswitch.conf
Při počáteční konfiguraci přes postinstalační dialog balíčku libnss-ldap jsme postupně dotazováni: URI LDAP serveru. Sem je třeba v případě katedry DCE uvést...
- LDAP server URI: --> ldaps://novell.felk.cvut.cz:636/
- LDAP server search base: --> ou=felk,o=cvut,c=cz
- LDAP version: --> 3
- LDAP database require login?: --> no
- LDAP special privileges root --> yes
- Make config readable/writable by owner only? --> yes
- LDAP account for root: --> cn=ldapuser,ou=felk,o=cvut,c=cz
- LDAP root password : --> heslo...
Rekonfiguraci a zopakování celého postupu postinstalačního skriptu lze kdykoliv spustit příkazem
root@stroj~: dpkg-reconfigure libnss-ldap
|
I když se postinstalační skript zeptá na základní nastavení, nebude to pro funkční komunikaci s Novellem na katedře DCE stačit! Ta je totiž šifrovaná přes SSL, tudíž se stejně nevyhneme manuálnímu zásahu do konfigurace. Je třeba nastavit dva atributy:
- ssl
- na hodnotu on - aby komunikace probíhala přes SSL
- tls_checkpeer
- na nodnotu no, aby si klient certifikát stáhnul z novellovského serveru nevyžadoval certifikát lokální
root@stroj~: grep -v ^# /etc/libnss-ldap.conf | grep -v ^$
base ou=felk,o=cvut,c=cz
uri ldaps://novell.felk.cvut.cz:636/
ldap_version 3
rootbinddn cn=ldapuser,ou=felk,o=cvut,c=cz
ssl on
tls_checkpeer no
Heslo je uloženo v souboru /etc/libnss-ldap.secret
root@stroj~: cat /etc/libnss-ldap.secret
...
Aby systém LDAP používal, musí být (manuálně) upraven soubor /etc/nsswitch.conf
passwd: compat ldap
group: compat
shadow: compat
...
Po jeho doplnění (a každé změně v konfiguraci) je třeba provést restart nscd démona
Ověření LDAPu
Ověření, zda-li LDAP funguje lze provést příkazem id
root@stroj~: id usernameX
uid=45457(usenameX) gid=100(users) groups=100(users)
Čeká-li příkaz id delší dobu na odezvu a pak skončí oznámením, že uživatel neexistuje, přesto že si jsme jisti tím že existuje, pak může být příčinou problému chybně nastavené heslo do NDS v souboru /etc/libnss-ldap.secret
Pokud se takové oznámení objeví ihned, pak může být příčina v chybně nastaveném parametru tls_checkpeer v souboru /etc/libnss-ldap.secret
. Ten totiž, pokud není nastaven vůbec, má výchozí hodnotu yes. A tudíž musí být přenastaven na hodnotu no, tak aby server nevyžadoval lokální certifikát.
Autorizace přes NDS
Pokud chceme kromě LDAPu využívat také autorizaci přes novellovskou NDS, pak je třeba nakonfigurovat i soubor /etc/pam-ldap.conf
. V tomto případě je zbytečné se zdržovat výchozí rekonfigurací, protože je rychlejší rovnou zkontrolovat, jestli tento soubor obsahuje následující nezakomentovaní řádky..
root@stroj~: grep -v ^# /etc/pam_ldap.conf | grep -v ^$
base ou=felk,o=cvut,c=cz
uri ldaps://novell.felk.cvut.cz:636/
ldap_version 3
pam_password nds
ssl on
tls_checkpeer no