Mine sisu juurde

Küpsiste seaded

Vali iga liigi kohta, milliseid küpsiseid lubad. Oma valikut saad alati muuta iga lehe allosas oleva lingi „Küpsiste seaded“ kaudu. Privaatsuspoliitika

Vajalikud

Alati sees

Vajalikud sisselogimiseks, ostukorvi säilitamiseks ja sinu valikute meelespidamiseks. Need on alati sees.

Millised küpsised?
  • weboke_sessie, weboke_klant, weboke_remember: sinu seanss ja sisselogituks jäämine
  • weboke_basket: sinu ostukorv
  • wkBtwIncl: hindade näitamine koos käibemaksuga või ilma
  • wok_cookies: sinu küpsisevalik, 12 kuud

Mõõdab, milline reklaam viib külastuse või tellimuseni, et me ei maksaks reklaamide eest, mis midagi ei anna.

Millised küpsised?
  • Google Ads Google Tag Manageri kaudu (_gcl_au, _gcl_aw), kuni 90 päeva
  • OpenAI Ads, reklaamid ChatGPT-s
  • wok_aff: millise partneri kaudu meie juurde jõudsid (partnerprogramm), 60 päeva

4,6

Riik ja keel

Igal riigil on oma sait, selle riigi hindade ja käibemaksuga.

Vaata

sudo ja minimaalsed õigused

Moodul 3: Kasutajad, õigused ja sudo · Lugemisaeg: 11 minutit

Õpieesmärk: Pärast seda õppetundi oskad töötada tavakasutajana koos sudoga, lisada turvaliselt halduri, muuta sudo seadeid ilma end välja lukustamata ning selgitada, miks minimaalsed õigused su serverit kaitsevad.

Põhimõisted: sudo, grupp sudo, grupp wheel, /etc/sudoers, /etc/sudoers.d, visudo, NOPASSWD, sudo -l, root-konto lukustamine, sudo logi, minimaalsed õigused (least privilege), teenusekasutaja

Miks mitte lihtsalt root'ina töötada?

Pärast paigaldust logid sageli sisse root'ina. See on mugav: kõik on lubatud. Aga just see ongi probleem:

  • Ühest trükiveast piisab. rm -rf / home/anna/oud (pane tähele tühikut pärast esimest kaldkriipsu) kustutab root'ina kogu su serveri. Tavakasutajana saad veateate.
  • Kõik töötab root'ina. Internetist kleebitud skript, programm, mida testid: kõik saavad täisõigused.
  • Jälge ei jää. Kui kolm inimest töötavad root'ina, ei tea hiljem keegi, kes mida tegi.
  • root on nimi, mida iga ründaja proovib. root'ina sisselogimise on parem üldse välja lülitada (õppetund 2.2), kuid seda saad teha alles siis, kui sul on haldusõigusteni mõni muu tee.

See teine tee on sudo: logid sisse iseendana ja paned sudo ainult nende käskude ette, mis vajavad haldusõigusi.

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
...

(Ubuntu kasutab alates versioonist 25.10 vaikimisi sudo-rs'i, mis on sudo uus teostus. Kõige selles õppetunnis kirjeldatu jaoks töötab see samamoodi.)

sudo küsib sinu parooli, mitte root'i oma. Seejärel jätab see selle vaikimisi veerandtunniks meelde, nii et sa ei pea iga käsu juures uuesti sisestama. Iga käsk, mille sudoga käivitad, jõuab logisse.

Halduri loomine

Debianis ja Ubuntus võib iga grupi sudo liige sudo kaudu kõike teha. See on kirjas failis /etc/sudoers:

%sudo   ALL=(ALL:ALL) ALL

Loe seda nii: grupi sudo liikmed (%) võivad kõigis masinates (ALL) iga kasutaja ja grupina ((ALL:ALL)) käivitada iga käsu (ALL).

Halduri lisamine käib seega root'ina kahes sammus:

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

Seejärel pane Anna avalik võti faili /home/anna/.ssh/authorized_keys õige omaniku ja õigustega:

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

Ära unusta käsku chown: kui root faili kopeerib, kuulub fail root'ile ja siis ei saa Anna oma võtmega sisse logida.

Testi nüüd teises aknas, samal ajal kui su root-seanss jääb avatuks:

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

Alles siis, kui see töötab, sea SSH seadetes PermitRootLogin no (õppetund 2.2). Sellest hetkest logid alati sisse Annana.

Üks asi, mida meeles pidada: Anna vajab nüüd sudo jaoks parooli. Hoia seda oma paroolihalduris. Sisselogimine käib võtmega, sudo parooliga: kaks eri asja, mis sissetungijal peavad mõlemad olemas olema.

sudo seadete muutmine: alati visudoga

Viga failis /etc/sudoers võib tähendada, et sudo ei tööta enam üldse. Kui ka root ei saa sisse logida, oled lõksus. Seepärast ei muuda sa sudo seadeid kunagi tavalise redaktoriga, vaid käsuga visudo. See avab ajutise koopia ja kontrollib sisu enne salvestamist:

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

Nagu SSH puhul, kasuta põhifaili asemel pigem oma faili kaustas /etc/sudoers.d/. Pane tähele kahte selle kausta reeglit:

  • Failid, mille nimi sisaldab punkti või lõpeb märgiga ~, jäetakse vahele. backup.conf seega ei tööta, backup aga töötab. See on mõeldud redaktorite koopiate eiramiseks, kuid üllatab paljusid.
  • Fail peab kuuluma root'ile ega tohi olla teistele kirjutatav (tavaline on 440; visudo hoolitseb selle eest).

Kui tahad olemasolevat faili kontrollida ilma seda muutmata: visudo -c kontrollib kõike.

NOPASSWD: mugav, aga tea, mida teed

Valikuga NOPASSWD ei küsi sudo enam parooli:

anna ALL=(ALL:ALL) NOPASSWD: ALL

Mõned VPS-i tõmmised seavad selle vaikekasutajale, nii et pärast võtmega sisselogimist oled kohe haldur. Vaata käsuga sudo -l, mis sinu puhul kehtib. Tagajärg: kellel on Anna võti, on kohe root. Teist lukku enam pole. Isikliku serveri puhul võid selle kasuks otsustada, kuid tee seda teadlikult.

Palju parem on kasutada NOPASSWD-d ainult ühe kindla käsu jaoks, näiteks varundusskripti jaoks, mis peab saama automaatselt käivituda:

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

Kasutaja backup võib siis käivitada root'ina täpselt selle ühe skripti, ilma paroolita, ja mitte midagi muud. Kaks lõksu:

  • Kasuta alati täielikku teed. Kui on ainult maak-backup, võib keegi panna oma samanimelise programmi oma PATH-i algusesse.
  • Skript ise ei tohi olla kirjutatav sellele kasutajale. Muidu muudab ta seda ja käivitab siis suvalisi käske root'ina. Sama kehtib käskude kohta, mis suudavad ise kesta avada, näiteks redaktor (vim, nano) või less: kes tohib neid sudo kaudu käivitada, saab programmist avada root-kesta. Ära anna selliseid käske kunagi eraldi sudo kaudu.

Mida logitakse

Iga kord, kui keegi sudot kasutab, tekib rida journal'isse (ja rsyslogiga süsteemides ka faili /var/log/auth.log):

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

Näed, kes, kus, kellena ja millise käsu käivitas. See on üks põhjus, miks mitte töötada mitme inimesega root'ina. Ebaõnnestunud sudo katsed ("incorrect password attempts") kontolt, mis pole sinu oma, on häiresignaal.

Minimaalsed õigused laiemalt

sudo on üks üldise põhimõtte rakendus: minimaalsed õigused (least privilege). Iga kasutaja ja iga teenus saab täpselt need õigused, mida vaja, ja mitte rohkem. Serveris tähendab see muu hulgas järgmist:

  • töötad tavakasutajana ja kasutad sudot ainult siis, kui vaja;
  • iga teenus töötab oma kesta-ta kasutaja all (õppetund 3.1), mitte root'ina;
  • veebirakendus saab andmebaasikasutaja, kes tohib kasutada ainult oma andmebaasi, mitte andmebaasiserveri haldurit;
  • varundusskript tohib käivitada ainult seda ühte käsku, mida ta vajab (NOPASSWD täieliku teega);
  • kolleeg, kes ainult veebisaiti uuendab, saab grupi kaudu kirjutusõiguse kausta /var/www/example.com, mitte sudot.

Mõte on selles: kui midagi läheb valesti (turvaauk pluginas, varastatud võti), jääb kahju piiratuks selle ühe kasutaja või teenusega. CIS-i põhimõtetes ja turvatugevduse õppetunnis (10.1) tuleb see ikka ja jälle tagasi.

AlmaLinuxis ja Rocky Linuxis

Seal on haldurite grupi nimi sudo asemel wheel: usermod -aG wheel anna. Rida failis /etc/sudoers on %wheel ALL=(ALL) ALL. visudo ja /etc/sudoers.d töötavad samamoodi. sudo teated on seal ka failis /var/log/secure.

Kokkuvõte

  • Tööta tavakasutajana ja kasuta haldamiseks sudot; sudo küsib sinu enda parooli ja logib iga käsu.
  • Halduri loomine: adduser anna, adduser anna sudo (RHEL-i laadsetes wheel), võti õige omaniku ja õigustega, test teises aknas, alles siis lülita root-login välja.
  • Muuda sudo reegleid ainult käsuga visudo, eelistatult oma failis kaustas /etc/sudoers.d/, ilma punktita nimes.
  • NOPASSWD kõigele eemaldab ühe luku; kasuta seda pigem ainult ühe käsu jaoks täieliku teega, mida kasutaja muuta ei saa.
  • Minimaalsed õigused: iga kasutaja ja teenus saab täpselt seda, mida vaja, nii et viga või turvaauk jääb väikeseks.

Test (quiz)

1. Millist parooli küsib sudo vaikimisi, kui Anna sisestab sudo apt update?



2. Lood faili /etc/sudoers.d/backup.conf kehtiva reegliga, kuid see ei tööta. Miks?



3. Miks muudad sudo reegleid visudoga?



4. Milline reegel annab varunduskasutajale kõige väiksema riski?



5. Millises järjekorras lülitad root-logini välja ilma end välja lukustamata?



Ülesanne

Ülesanne O3.2: Haldur, kellel on sudo. Loo oma serveris tavaline haldur (näiteks anna), sea võti õigesti, testi teises aknas sisselogimist ja käsku sudo -l ning lülita seejärel root-login SSH kaudu välja (PermitRootLogin no). Märgi sammud tehtuks, kleebi käsu id väljund (ainult nimi ja grupid) ja vasta küsimustele: milline reegel annab su haldurile õigused, kas kuskil on NOPASSWD ja kuidas pääsed sisse, kui unustad oma parooli?

Ülesanne O3.2: Haldur, kellel on sudo

Selle ülesande teed ise, keegi ei kontrolli seda. Märgi ära, mida tegid, ja märgi ülesanne tehtuks.




Su linnukesed ja märkmed jäävad ainult sellesse brauserisse, me ei saada neid kuhugi. Kui oled sisse loginud, salvestame Minu kursustes ainult info, et tegid ülesande ära.

Loe edasi

Nende artiklite sammud kehtivad WebOké VPS-ide kohta; teiste teenusepakkujate juures toimib see sarnaselt.

Hetk…

Seadista oma domeenid

Määra iga domeeni jaoks nimeserverid, seos sinu majutusega ja kes saab omanikuks.

Laadin sinu domeene…