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.
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.
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
Ú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
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 aDIR_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
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.
Alapértelmezésben az Ubuntu 6 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 [success=2 default=ignore] pam_unix.so obscure sha512
Ha a minimális hosszt 8 karakterre szeretné növelni, módosítsa a megfelelő változót min=8 értékre. A módosított sor a következő lesz:
password [success=2 default=ignore] pam_unix.so obscure sha512 min=8
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/2011 -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
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.
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
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.