Ugrás a tartalomhoz

Sütibeállítások

Típusonként válassza ki, mely sütiket engedélyezi. Választását bármikor módosíthatja a Sütibeállítások linken, amely minden oldal alján megtalálható. Adatvédelmi nyilatkozat

Szükséges

Mindig bekapcsolva

A bejelentkezéshez, a kosár megőrzéséhez és a választásai megjegyzéséhez szükségesek. Ezek mindig be vannak kapcsolva.

Milyen sütik?
  • weboke_sessie, weboke_klant, weboke_remember: a munkamenet és a bejelentkezve maradás
  • weboke_basket: a kosár
  • wkBtwIncl: az árak megjelenítése ÁFÁ-val vagy anélkül
  • wok_cookies: a sütiválasztás, 12 hónap

Méri, melyik hirdetés vezet látogatáshoz vagy rendeléshez, hogy ne fizessünk hatástalan hirdetésekért.

Milyen sütik?
  • Google Ads a Google Tag Manageren keresztül (_gcl_au, _gcl_aw), legfeljebb 90 napig
  • OpenAI Ads, hirdetések a ChatGPT-ben
  • wok_aff: melyik partnerünk ajánlására érkezett (partnerprogram), 60 nap

4,6

Ország és nyelv

Minden országnak saját oldala van, az adott ország áraival és ÁFA-jával.

Megtekintés

sudo és a minimális jogosultságok

Modul 3: Felhasználók, jogosultságok és sudo · Olvasási idő: 11 perc

Tanulási cél: A lecke után Ön képes lesz egyszerű felhasználóként sudóval dolgozni, biztonságosan hozzáadni egy rendszergazdát, módosítani a sudo beállításait úgy, hogy ne zárja ki önmagát, és el tudja magyarázni, miért védik a szerverét a minimális jogosultságok.

Kulcsfogalmak: sudo, sudo csoport, wheel csoport, /etc/sudoers, /etc/sudoers.d, visudo, NOPASSWD, sudo -l, a root zárolása, a sudo naplója, minimális jogosultságok (least privilege), szolgáltatásfelhasználó

Miért ne dolgozzunk egyszerűen rootként?

A telepítés után gyakran rootként jelentkezik be. Ez kényelmes: minden szabad. De éppen ez a probléma:

  • Egyetlen elgépelés is elég. A rm -rf / home/anna/oud (figyelje meg a szóközt az első perjel után) rootként a teljes szerverét törli. Egyszerű felhasználóként csak hibaüzenetet kap.
  • Minden rootként fut. Egy internetről bemásolt szkript, egy program, amelyet kipróbál: mindegyik teljes jogosultságot kap.
  • Nem marad nyom. Ha hárman dolgoznak rootként, utólag senki sem tudja, ki mit csinált.
  • A root az a név, amellyel minden támadó próbálkozik. A rootként történő bejelentkezést jobb teljesen kikapcsolni (2.2. lecke), de ez csak akkor lehetséges, ha van más útja a rendszergazdai jogosultságokhoz.

Ez a másik út a sudo: saját nevén jelentkezik be, és csak a rendszergazdai jogosultságot igénylő parancsok elé írja oda: sudo.

anna@web1:~$ apt update
E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)
anna@web1:~$ sudo apt update
[sudo] password for anna:
Hit:1 http://deb.debian.org/debian trixie InRelease
...

(Az Ubuntu a 25.10-es verzió óta alapértelmezésként a sudo-rs-t használja, amely a sudo egy új megvalósítása. A leckében szereplő minden dologhoz ugyanúgy működik.)

A sudo az Ön saját jelszavát kéri, nem a rootét. Ezután alapértelmezésként negyed óráig megjegyzi, így nem kell minden parancsnál újra megadnia. Minden sudóval futtatott parancs bekerül a naplóba.

Rendszergazda létrehozása

Debianon és Ubuntun a sudo csoport minden tagja bármit megtehet sudón keresztül. Ez a /etc/sudoers fájlban szerepel:

%sudo   ALL=(ALL:ALL) ALL

Így olvassa: a sudo csoport tagjai (%) minden gépen (ALL) bármely felhasználóként és csoportként ((ALL:ALL)) bármely parancsot (ALL) futtathatnak.

Rendszergazda hozzáadása tehát két lépésben történik, rootként:

root@web1:~# adduser anna
root@web1:~# adduser anna sudo

Ezután helyezze el Anna nyilvános kulcsát a /home/anna/.ssh/authorized_keys fájlban, a megfelelő tulajdonossal és jogosultságokkal:

root@web1:~# mkdir -p /home/anna/.ssh
root@web1:~# cp /root/.ssh/authorized_keys /home/anna/.ssh/
root@web1:~# chown -R anna:anna /home/anna/.ssh
root@web1:~# chmod 700 /home/anna/.ssh
root@web1:~# chmod 600 /home/anna/.ssh/authorized_keys

Ne felejtse el a chown parancsot: ha a root másolja be, a fájl a root tulajdona lesz, és akkor Anna nem tud bejelentkezni a kulcsával.

Most, miközben a root-munkamenet nyitva marad, tesztelje egy második ablakban:

anna@laptop:~$ ssh anna@192.0.2.10
anna@web1:~$ sudo -l
[sudo] password for anna:
User anna may run the following commands on web1:
    (ALL : ALL) ALL
anna@web1:~$ sudo whoami
root

Csak ha ez működik, állítsa be az SSH-beállításokban a PermitRootLogin no értéket (2.2. lecke). Ettől kezdve mindig Annaként jelentkezik be.

Egy dolgot érdemes megjegyezni: Annának most jelszóra van szüksége a sudóhoz. Tárolja a jelszókezelőjében. A bejelentkezés a kulccsal történik, a sudo a jelszóval: két különböző dolog, amelyre egy betörőnek egyaránt szüksége van.

A sudo beállításainak módosítása: mindig visudóval

Egy hiba a /etc/sudoers fájlban azt jelentheti, hogy a sudo egyáltalán nem működik többé. Ha a root sem tud bejelentkezni, elakadt. Ezért a sudo beállításait soha ne egy átlagos szerkesztővel módosítsa, hanem a visudo segítségével. Ez egy ideiglenes másolatot nyit meg, és mentés előtt ellenőrzi a tartalmat:

root@web1:~# visudo -f /etc/sudoers.d/backup

Az SSH-hoz hasonlóan itt is inkább egy saját fájlt használjon a /etc/sudoers.d/ mappában, mint a fő fájlt. Figyeljen a mappa két szabályára:

  • Azokat a fájlokat, amelyek neve pontot tartalmaz vagy ~ végződésű, a rendszer kihagyja. A backup.conf tehát nem működik, a backup viszont igen. Ennek célja a szerkesztők által készített másolatok figyelmen kívül hagyása, de sokakat meglep.
  • A fájlnak a root tulajdonában kell lennie, és mások számára nem lehet írható (a 440 a szokásos; ezt a visudo elintézi).

Ha egy meglévő fájlt szerkesztés nélkül szeretne ellenőrizni: a visudo -c mindent ellenőriz.

NOPASSWD: kényelmes, de tudja, mit csinál

A NOPASSWD beállítással a sudo nem kér többé jelszót:

anna ALL=(ALL:ALL) NOPASSWD: ALL

Egyes VPS-lemezképek ezt beállítják az alapértelmezett felhasználónak, így a kulccsal történő bejelentkezés után azonnal rendszergazda. A sudo -l paranccsal nézze meg, mi érvényes az Ön szerverén. A következmény: akinél Anna kulcsa van, az azonnal root. Nincs többé második zár. Személyes szervernél választhatja ezt, de tudatosan tegye.

Sokkal jobb, ha a NOPASSWD csak egyetlen meghatározott parancsra vonatkozik, például egy biztonsági mentési szkriptre, amelynek automatikusan kell futnia:

backup ALL=(root) NOPASSWD: /usr/local/bin/maak-backup

A backup felhasználó ekkor pontosan azt az egy szkriptet futtathatja rootként, jelszó nélkül, mást nem. Két csapda:

  • Mindig a teljes elérési utat használja. Ha csak maak-backup szerepel, valaki elhelyezhet egy saját, ugyanilyen nevű programot az elérési útja elején.
  • Maga a szkript nem lehet írható ennek a felhasználónak. Különben módosítja, és utána tetszőleges parancsokat futtat rootként. Ugyanez érvényes azokra a parancsokra, amelyek maguk is képesek shellt nyitni, például egy szerkesztőre (vim, nano) vagy a less parancsra: aki ezeket sudón keresztül indíthatja, a programból root shellt nyithat. Ilyen parancsokat soha ne engedélyezzen önmagukban sudón keresztül.

Mi kerül a naplóba

Valahányszor valaki sudót használ, egy sor kerül a journalba (rsysloggal rendelkező rendszereken a /var/log/auth.log fájlba is):

anna@web1:~$ sudo journalctl _COMM=sudo --since today
Nov 09 10:31:02 web1 sudo[2214]:     anna : TTY=pts/0 ; PWD=/home/anna ; USER=root ; COMMAND=/usr/bin/apt update

Látja, ki, hol, kinek a nevében és milyen parancsot futtatott. Ez az egyik oka annak, hogy ne dolgozzanak többen rootként. A sikertelen sudo-kísérletek ("incorrect password attempts", vagyis hibás jelszavas próbálkozások) egy olyan fiókból, amely nem az Öné, vészjelzésnek számítanak.

Minimális jogosultságok nagyban

A sudo egy általános elv egyik alkalmazása: a minimális jogosultságoké (least privilege). Minden felhasználó és minden szolgáltatás pontosan annyi jogosultságot kap, amennyire szüksége van, és nem többet. Egy szerveren ez többek között a következőket jelenti:

  • Ön egyszerű felhasználóként dolgozik, és csak akkor használ sudót, ha szükséges;
  • minden szolgáltatás saját, shell nélküli felhasználó alatt fut (3.1. lecke), nem rootként;
  • egy webalkalmazás olyan adatbázis-felhasználót kap, amely csak a saját adatbázisát használhatja, nem pedig az adatbázisszerver rendszergazdáját;
  • egy biztonsági mentési szkript csak azt az egy parancsot futtathatja, amelyre szüksége van (NOPASSWD teljes elérési úttal);
  • egy kolléga, aki csak a webhelyet frissíti, írási jogot kap a /var/www/example.com mappára egy csoporton keresztül, nem sudót.

Az alapgondolat: ha valami elromlik (egy bővítmény biztonsági rése, egy ellopott kulcs), a kár arra az egy felhasználóra vagy szolgáltatásra korlátozódik. A CIS-elvekben és a hardeningről szóló leckében (10.1) ez újra és újra előkerül.

AlmaLinuxon és Rocky Linuxon

Ott a rendszergazdai csoport neve wheel a sudo helyett: usermod -aG wheel anna. A /etc/sudoers fájlban szereplő sor: %wheel ALL=(ALL) ALL. A visudo és a /etc/sudoers.d ugyanúgy működik. A sudo-üzenetek ott a /var/log/secure fájlban is megtalálhatók.

Összefoglalás

  • Dolgozzon egyszerű felhasználóként, és a felügyelethez használjon sudót; a sudo az Ön saját jelszavát kéri, és minden parancsot naplóz.
  • Rendszergazda létrehozása: adduser anna, adduser anna sudo (RHEL-szerű rendszereken wheel), kulcs a megfelelő tulajdonossal és jogosultságokkal, tesztelés egy második ablakban, és csak ezután a root-bejelentkezés kikapcsolása.
  • A sudo-szabályokat csak a visudo segítségével szerkessze, lehetőleg egy saját fájlban a /etc/sudoers.d/ mappában, pont nélküli névvel.
  • A mindenre érvényes NOPASSWD eltávolít egy zárat; inkább csak egyetlen, teljes elérési úttal megadott parancsra használja, amelyet a felhasználó nem módosíthat.
  • Minimális jogosultságok: minden felhasználó és szolgáltatás pontosan annyit kap, amennyire szüksége van, így egy hiba vagy biztonsági rés kicsi marad.

Kvíz

1. Milyen jelszót kér alapértelmezésként a sudo, amikor Anna begépeli a sudo apt update parancsot?



2. Létrehozza a /etc/sudoers.d/backup.conf fájlt egy érvényes sorral, de az nem működik. Miért?



3. Miért visudóval szerkessze a sudo-szabályokat?



4. Melyik sor jelenti a legkisebb kockázatot egy biztonsági mentési felhasználó számára?



5. Milyen sorrendben kapcsolja ki a root-bejelentkezést anélkül, hogy kizárná önmagát?



Feladat

O3.2. feladat: Rendszergazda sudo jogosultsággal. Hozzon létre a szerverén egy egyszerű rendszergazdát (például anna), állítsa be helyesen a kulcsát, tesztelje a bejelentkezést és a sudo -l parancsot egy második ablakban, majd kapcsolja ki a root SSH-bejelentkezését (PermitRootLogin no). Jelölje be a lépéseket, illessze be a id kimenetét (csak a nevet és a csoportokat), és válaszoljon a kérdésekre: melyik sor ad jogosultságot a rendszergazdájának, szerepel-e valahol NOPASSWD, és hogyan jut be, ha elfelejti a jelszavát?

O3.2. feladat: Rendszergazda sudo jogosultsággal

Ezt a feladatot saját maga végzi el, senki nem ellenőrzi. Pipálja ki, amit elvégzett, és jelölje meg a feladatot elvégzettként.




A pipái és jegyzetei csak ebben a böngészőben maradnak meg, sehova nem küldjük el őket. Ha bejelentkezett, a Fiókomban csak azt tároljuk, hogy elvégezte a feladatot.

További olvasnivaló

A cikkekben szereplő lépések a WebOké VPS-eire vonatkoznak; más szolgáltatóknál hasonlóan működik.

Egy pillanat…

Domainek beállítása

Állítsa be domainenként a névszervereket, a tárhelyhez való kapcsolást és azt, hogy ki legyen a tulajdonos.

Domainek betöltése…