Felhasználókezelés

A felhasználókezelés a biztonságos rendszer karbantartásának kritikus része. A nem megfelelő felhasználó- és jogosultságkezelés gyakran a rendszerek feltörését eredményezi. Emiatt fontos megértenie, hogyan védheti meg rendszerét egyszerű és hatékony felhasználóifiók-kezelési eljárásokkal.

Hol van a root?

Az Ubuntu fejlesztői tudatos döntést hoztak, amikor alapértelmezésben letiltották a root fiókot minden Ubuntu telepítésen. Ez nem azt jelenti, hogy a root fiók törlésre került, vagy hogy ne lenne elérhető. Egyszerűen csak olyan jelszót kapott, amelyhez egyetlen lehetséges titkosított érték sem tartozik, így közvetlenül nem lehet bejelentkezni rá.

Ehelyett a felhasználókat a rendszergazdai feladatok végrehajtásához a sudo nevű eszköz használatára bátorítjuk. A sudo lehetővé teszi a felhatalmazott felhasználó számára jogosultságainak saját jelszavának használatával történő, a root fiókhoz tartozó jelszó ismerete nélküli ideiglenes megemelését. Ez az egyszerű, de mégis hatékony módszer biztosítja az összes felhasználói művelet elszámoltathatóságát, és lehetővé teszi a rendszergazdának a felhasználók által az adott jogokkal végezhető műveletek részletes felügyeletét.

  • Ha valamilyen okból engedélyezni szeretné a root fiókot, egyszerűen csak adjon neki jelszót:

    sudo passwd
    

    A sudo bekéri a jelszavát, majd új jelszó megadására kéri a root felhasználó számára:

    [sudo] password for felhasználónév: (adja meg saját jelszavát)
    Enter new UNIX password: (adja meg a root új jelszavát)
    Retype new UNIX password: (ismételje meg a root új jelszavát)
    passwd: password updated successfully
    
  • A root fiók letiltásához adja ki a következő parancsot:

    sudo passwd -l root
    
  • További információkért nézze meg a Sudo kézikönyvoldalát:

    man sudo
    

Alapértelmezésben az Ubuntu telepítő által létrehozott első felhasználó az „admin” csoport tagja, amely felhatalmazott sudo felhasználóként felvételre kerül az /etc/sudoers fájlba. Ha másik fióknak is teljes rendszergazdai hozzáférést szeretne biztosítani a sudo használatával, akkor egyszerűen adja hozzá az admin csoporthoz.

Felhasználók hozzáadása és törlése

A helyi felhasználók és csoportok kezelése egyszerű és alig különbözik a más GNU/Linux operációs rendszereken megszokottól. Az Ubuntu és más Debian alapú disztribúciók a fiókok kezeléséhez az „adduser” csomag használatát ajánlják.

  • Felhasználói fiók hozzáadásához használja a következő parancsot, és kövesse a megjelenő utasításokat a fiók jelszavának és azonosítható jellemzőinek (például teljes név, telefonszám, stb.) megadásához.

    sudo adduser felhasználónév
    
  • Felhasználói fiók és elsődleges csoportjának törléséhez adja ki a következő parancsot:

    sudo deluser felhasználónév
    

    A fiók törlése nem törli a hozzá tartozó saját könyvtárat. Ez a rendszergazdára van bízva, aki saját kezűleg törölheti a könyvtárat, vagy megtarthatja a helyi adatmegőrzési irányelveknek megfelelően.

    Ne feledje, hogy az előző tulajdonossal azonos felhasználói- és csoportazonosítóval felvett új felhasználó hozzá fog férni ehhez a könyvtárhoz, ha nem tette meg a szükséges óvintézkedéseket.

    Hasznos lehet módosítani ezeket a felhasználói- és csoportazonosítókat valami megfelelőbbre, például a root fiókéra, sőt akár áthelyezni a könyvtárat a jövőbeli konfliktusok elkerülése érdekében:

    sudo chown -R root:root /home/felhasználónév/
    sudo mkdir /home/archivált_felhasználók/
    sudo mv /home/felhasználónév /home/archivált_felhasználók/
    
  • Felhasználói fiók ideiglenes zárolásához vagy feloldásához adja ki a következő parancsokat:

    sudo passwd -l felhasználónév
    sudo passwd -u felhasználónév
    
  • Személyre szabott csoport hozzáadásához vagy törléséhez adja ki a következő parancsokat:

    sudo addgroup csoportnév
    sudo delgroup csoportnév
    
  • Felhasználó csoporthoz adásához adja ki a következő parancsot:

    sudo adduser felhasználónév csoportnév
    

Felhasználói profil biztonsága

Új felhasználó létrehozásakor az adduser segédprogram egy vadonatúj saját könyvtárat hoz létre /home/felhasználónév néven. Az alapértelmezett profil az /etc/skel könyvtár tartalma alapján jön létre, ez a könyvtár tartalmazza a profil minden alapértelmezését.

Ha a kiszolgálójának több felhasználója lesz, oda kell figyelnie a felhasználók saját könyvtárainak jogosultságaira az adatok bizalmasságának biztosítása érdekében. Ubuntu alatt alapértelmezésben a felhasználók saját könyvtárai mindenki számára olvasási és végrehajtási jogot biztosítanak. Ez azt jelenti, hogy minden felhasználó tallózhatja és elérheti más felhasználók saját könyvtárait. Ez nem biztos, hogy minden környezetben megfelelő.

  • A meglévő felhasználók saját könyvtárainak jogosultságainak ellenőrzéséhez adja ki a következő parancsot:

    ls -ld /home/felhasználónév
    

    A következő kimenet jelzi, hogy a /home/felhasználónév könyvtár mindenki számára olvasható:

    drwxr-xr-x  2 felhasználónév felhasználónév     4096 2007-10-02 20:03 felhasználónév
    
  • A mindenki számára biztosított olvasási jogosultság eltávolításához adja ki a következő parancsot:

    sudo chmod 0750 /home/felhasználónév
    
    [Megjegyzés]

    Egyesek megkülönböztetés nélkül használják a rekurzív kapcsolót (-R), ami minden gyermekmappát és fájlt módosít, noha ez nem csak szükségtelen, de más nemkívánatos eredményekre is vezethet. A szülőkönyvtár önmagában elégséges a szülőkönyvtár tartalmának jogosultság nélküli elérésének megakadályozásához.

    A probléma sokkal hatékonyabb megoldása lehet az adduser globális alapértelmezett jogosultságainak módosítása a felhasználók saját könyvtárának létrehozásakor. Egyszerűen szerkessze az /etc/adduser.conf fájlt, és a DIR_MODE változót módosítsa úgy, hogy az összes új saját könyvtár a megfelelő jogosultságokat kapja.

    DIR_MODE=0750
    
  • A könyvtárjogosultságok az előbbi eljárások egyikével való javítása után ellenőrizze az eredményeket a következő parancs kiadásával:

    ls -ld /home/felhasználónév
    

    Az alábbi kimenet jelzi, hogy a mindenki által olvasható jogosultság eltávolításra került:

    drwxr-x---   2 felhasználónév felhasználónév    4096 2007-10-02 20:03 felhasználónév
    

Jelszóházirend

A biztonsági helyzet egyik legfontosabb szempontja az erős jelszóházirend. Számos sikeres betöréshez nyers erőt és szótári támadást használtak gyenge jelszavak ellen. Ha a helyi jelszórendszert érintő bármilyen távoli hozzáférést tervez kínálni, akkor győződjön meg róla, hogy megfelelően kezeli a minimális jelszó-bonyolultsági követelményeket, a maximális jelszó-élettartamot, és a hitelesítési rendszer gyakori auditálását.

Minimális jelszóhossz

Alapértelmezésben az Ubuntu 4 karakteres minimális jelszóhosszt vár, valamint néhány minimális entrópia-ellenőrzést is végez. Ezeket az értékeket az /etc/pam.d/common-password fájl vezérli, amelyet alább részletezünk.

password   required   pam_unix.so nullok obscure min=4 max=8 md5

Ha a minimális hosszt 6 karakterre szeretné növelni, módosítsa a megfelelő változót min=6 értékre. A módosított sor a következő lesz:

password   required   pam_unix.so nullok obscure min=6 max=8 md5
[Megjegyzés]

A max=8 változó nem a jelszó maximális hosszát képviseli. Azt jelenti, hogy a 8 karakternél hosszabb jelszavak összetettségi követelményei nem kerülnek ellenőrzésre. A jelszó entrópiájával kapcsolatos további segítségért telepítse a libpam-cracklib csomagot.

Jelszavak lejárata

Felhasználói fiókok létrehozásakor elő kell írnia a minimális és maximális jelszókort, így a jelszavak lejáratakor azok megváltoztatására kényszerítve a felhasználókat.

  • A felhasználói fiók aktuális állapotát a következő parancs kiadásával jelenítheti meg:

    sudo chage -l felhasználónév
    

    Az alábbi kimenet érdekes tényeket közöl a felhasználói fiókról, nevezetesen azt, hogy nem érvényes rá semmilyen házirend:

    Last password change                                    : Jan 20, 2008
    Password expires                                        : never
    Password inactive                                       : never
    Account expires                                         : never
    Minimum number of days between password change          : 0
    Maximum number of days between password change          : 99999
    Number of days of warning before password expires       : 7
    
  • Ezen értékek bármelyikének beállításához adja ki a következő parancsot, és kövesse a megjelenő utasításokat:

    sudo chage felhasználónév
    

    A következő példa bemutatja, hogyan módosíthatja saját kezűleg a pontos lejárati dátumot (-E) 2008. 01. 31.-re, a minimális jelszó-élettartamot (-m) 5 napra, a maximális jelszó-élettartamot (-M) 90 napra, és a figyelmeztetési időtartamot (-W) a jelszó lejártát megelőző 14 napra.

    sudo chage -E 01/31/2008 -m 5 -M 90 -I 30 -W 14 felhasználónév
    
  • A módosítások ellenőrzéséhez használja a korábban említett parancsot:

    sudo chage -l felhasználónév
    

    Az alábbi kimenet bemutatja a fiókhoz létrehozott új házirendet:

    Last password change                                    : Jan 20, 2008
    Password expires                                        : Apr 19, 2008
    Password inactive                                       : May 19, 2008
    Account expires                                         : Jan 31, 2008
    Minimum number of days between password change          : 5
    Maximum number of days between password change          : 90
    Number of days of warning before password expires       : 14
    

Más biztonsági szempontok

Számos alkalmazás alternatív hitelesítési módszereket használ, amelyek egyszerűen elnézhetők még tapasztalt rendszergazdák számára is. Emiatt fontos megérteni és felügyelni a felhasználók hitelesítésének, és a kiszolgáló szolgáltatásainak és alkalmazásainak elérési módját.

SSH hozzáférés letiltott felhasználók által

A felhasználói fiók egyszerű letiltása/zárolása nem akadályozza meg a felhasználót a kiszolgálóra való távoli bejelentkezésben, ha korábban beállítottak nyilvános kulcsú RSA hitelesítést. Emiatt továbbra is képesek lesznek a kiszolgáló parancssoros elérésére, jelszó használata nélkül. Ne feledje el megkeresni a felhasználók saját mappáiban az ilyen típusú hitelesített SSH hozzáférést biztosító fájlokat, mint például a /home/felhasználónév/.ssh/authorized_keys.

Törölje, vagy nevezze át a .ssh/ könyvtárat a felhasználó saját mappájában a jövőbeli SSH hitelesítési képesség megszüntetéséhez.

Ne feledje el ellenőrizni a letiltott felhasználó létrehozott SSH kapcsolatait, mert lehetséges hogy vannak létező bejövő vagy kimenő kapcsolatai. Ha talál ilyet, lője ki.

Korlátozza az SSH hozzáférést azokra a felhasználói fiókokra, akiknek tényleg szükségük van rá. Létrehozhat például egy „sshlogin” nevű csoportot, és felveheti a csoportnevet az /etc/ssh/sshd_config fájlban található AllowGroups változó értékeként.

AllowGroups sshlogin

Ezután vegye fel az engedélyezett SSH-felhasználókat az „sshlogin” csoportba, és indítsa újra az SSH szolgáltatást.

sudo adduser felhasználónév sshlogin
sudo /etc/init.d/ssh restart

Hitelesítés külső felhasználó-adatbázisból

A legtöbb vállalati hálózat központosított hitelesítést és hozzáférés-felügyeletet igényel az összes rendszer-erőforráshoz. Ha a kiszolgálóját a felhasználók külső adatbázisokból való hitelesítésére állította be, akkor tiltsa le a felhasználói fiókokat a külső adatbázisból és helyileg is, ezzel lehetetlenné téve a tartalék helyi hitelesítést.