Pereiti prie turinio

Slapukų nustatymai

Pasirinkite, kokių rūšių slapukus leidžiate. Pasirinkimą bet kada galite pakeisti per „Slapukų nustatymai“ kiekvieno puslapio apačioje. Privatumo pareiškimas

Būtinieji

Visada įjungti

Reikalingi prisijungti, išsaugoti krepšelį ir įsiminti Jūsų pasirinkimus. Jie visada įjungti.

Kokie slapukai?
  • weboke_sessie, weboke_klant, weboke_remember: Jūsų sesija ir prisijungimo išlaikymas
  • weboke_basket: Jūsų krepšelis
  • wkBtwIncl: kainų rodymas su PVM arba be PVM
  • wok_cookies: Jūsų slapukų pasirinkimas, 12 mėnesių

Matuoja, kuri reklama atveda prie apsilankymo ar užsakymo, kad nemokėtume už neveiksmingas reklamas.

Kokie slapukai?
  • Google Ads per Google Tag Manager (_gcl_au, _gcl_aw), iki 90 dienų
  • OpenAI Ads, reklamos ChatGPT
  • wok_aff: per kurį partnerį atėjote pas mus (partnerių programa), 60 dienų

4,6

Šalis ir kalba

Kiekviena šalis turi savo svetainę su tos šalies kainomis ir PVM.

Peržiūrėti

sudo ir mažiausios teisės

3 modulis: Naudotojai, teisės ir sudo · Skaitymo laikas: 11 min.

Mokymosi tikslas: po šios pamokos galėsite dirbti kaip paprastas naudotojas su sudo, saugiai pridėti administratorių, keisti sudo nustatymus neužsirakindami sau prieigos ir paaiškinti, kodėl mažiausios teisės apsaugo Jūsų serverį.

Pagrindinės sąvokos: sudo, grupė sudo, grupė wheel, /etc/sudoers, /etc/sudoers.d, visudo, NOPASSWD, sudo -l, root paskyros užrakinimas, sudo žurnalas, mažiausios teisės (least privilege), paslaugos naudotojas

Kodėl nedirbti tiesiog kaip root?

Po įdiegimo dažnai prisijungiama kaip root. Tai patogu: viskas leidžiama. Tačiau būtent tai ir yra problema:

  • Užtenka vienos rašybos klaidos. rm -rf / home/anna/oud (atkreipkite dėmesį į tarpą po pirmojo pasvirojo brūkšnio), paleista kaip root, ištrina visą Jūsų serverį. Paprastas naudotojas gaus klaidos pranešimą.
  • Viskas veikia kaip root. Iš interneto įklijuotas scenarijus, bandoma programa: viskas gauna visas teises.
  • Nelieka pėdsakų. Jei trys žmonės dirba kaip root, vėliau niekas nežino, kas ką padarė.
  • Root yra vardas, kurį bando kiekvienas užpuolikas. Prisijungimą kaip root geriausia visiškai išjungti (pamoka 2.2), tačiau tai galima padaryti tik tada, kai turite kitą kelią į administratoriaus teises.

Tas kitas kelias yra sudo: prisijungiate savo vardu ir tik prieš komandą, kuriai reikia administratoriaus teisių, parašote 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
...

(Ubuntu nuo 25.10 versijos pagal numatytuosius nustatymus naudoja sudo-rs, naują sudo įgyvendinimą. Viskam, kas aprašyta šioje pamokoje, jis veikia taip pat.)

sudo prašo Jūsų slaptažodžio, o ne root slaptažodžio. Po to pagal numatytuosius nustatymus jį įsimena penkiolikai minučių, kad nereikėtų jo įvesti prie kiekvienos komandos. Kiekviena su sudo įvykdyta komanda patenka į žurnalą.

Administratoriaus sukūrimas

Debian ir Ubuntu sistemose kiekvienas grupės sudo narys per sudo gali daryti viską. Tai nurodyta faile /etc/sudoers:

%sudo   ALL=(ALL:ALL) ALL

Tai skaitoma taip: grupės sudo nariai (%) visuose kompiuteriuose (ALL) kaip bet kuris naudotojas ir grupė ((ALL:ALL)) gali vykdyti bet kurią komandą (ALL).

Taigi administratorius pridedamas dviem žingsniais, kaip root:

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

Tada įrašykite Annos viešąjį raktą į /home/anna/.ssh/authorized_keys su tinkamu savininku ir teisėmis:

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

Nepamirškite chown: jei failą nukopijavo root, jis priklauso root, ir tada Anna negalės prisijungti savo raktu.

Dabar, palikę root sesiją atvirą, išbandykite antrame lange:

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

Tik kai tai veikia, SSH nustatymuose nustatykite PermitRootLogin no (pamoka 2.2). Nuo tada visada prisijungiate kaip Anna.

Vienas dalykas, kurį verta prisiminti: dabar Annai sudo reikia slaptažodžio. Laikykite jį savo slaptažodžių tvarkyklėje. Prisijungiama raktu, sudo naudojamas su slaptažodžiu: tai du skirtingi dalykai, kuriuos įsilaužėlis turėtų gauti abu.

sudo nustatymų keitimas: visada su visudo

Klaida faile /etc/sudoers gali reikšti, kad sudo visiškai nebeveiks. Jei ir root negali prisijungti, būsite įstrigę. Todėl sudo nustatymų niekada neredaguokite įprastu redaktoriumi, o naudokite visudo. Jis atidaro laikiną kopiją ir prieš išsaugodamas patikrina jos turinį:

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

Kaip ir su SSH, verčiau naudokite atskirą failą kataloge /etc/sudoers.d/, o ne pagrindinį failą. Atkreipkite dėmesį į dvi šio katalogo taisykles:

  • Failai, kurių pavadinime yra taškas arba kurių pavadinimas baigiasi ~, praleidžiami. Taigi backup.conf neveikia, o backup veikia. Taip siekiama ignoruoti redaktorių kopijas, tačiau tai nustebina daugelį žmonių.
  • Failas turi priklausyti root ir kiti negali turėti teisės į jį rašyti (įprasta 440; tuo pasirūpina visudo).

Jei norite patikrinti esamą failą jo neredaguodami: visudo -c patikrina viską.

NOPASSWD: patogu, bet žinokite, ką darote

Su NOPASSWD sudo nebeprašo slaptažodžio:

anna ALL=(ALL:ALL) NOPASSWD: ALL

Kai kurie VPS atvaizdai tai nustato numatytajam naudotojui, kad prisijungę raktu iš karto būtumėte administratorius. Su sudo -l pažiūrėkite, kas galioja Jūsų sistemoje. Pasekmė: kas turi Annos raktą, iš karto yra root. Antrosios spynos nebelieka. Asmeniniam serveriui galite tai pasirinkti, bet darykite tai sąmoningai.

Daug geriau NOPASSWD taikyti tik vienai konkrečiai komandai, pavyzdžiui, atsarginių kopijų scenarijui, kuris turi veikti automatiškai:

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

Tada naudotojas backup gali paleisti būtent tą vieną scenarijų kaip root, be slaptažodžio, ir nieko daugiau. Dvi spąstai:

  • Visada naudokite visą kelią. Jei nurodysite tik maak-backup, kas nors gali įdėti savo programą tokiu pačiu pavadinimu savo kelio pradžioje.
  • Pats scenarijus tam naudotojui turi būti neįrašomas. Kitaip jis jį pakeis ir tada kaip root vykdys bet kokias komandas. Tas pats galioja komandoms, kurios pačios gali atidaryti apvalkalą, pavyzdžiui, redaktoriui (vim, nano) arba less: kas gali jas paleisti per sudo, gali iš programos atidaryti root apvalkalą. Tokių komandų niekada neleiskite atskirai per sudo.

Kas registruojama žurnale

Kiekvieną kartą, kai kas nors naudoja sudo, į journal įrašoma eilutė (o sistemose su rsyslog ir į /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

Matote, kas, kur, kieno vardu ir kokią komandą vykdė. Tai viena iš priežasčių, kodėl keliems žmonėms nereikėtų dirbti kaip root. Nesėkmingi sudo bandymai („incorrect password attempts“) iš paskyros, kuri nėra Jūsų, yra pavojaus signalas.

Mažiausios teisės plačiau

sudo yra vienas bendro principo pritaikymas: mažiausios teisės (least privilege). Kiekvienas naudotojas ir kiekviena paslauga gauna tiksliai tiek teisių, kiek reikia, ir ne daugiau. Serveryje tai, be kita ko, reiškia:

  • dirbate kaip paprastas naudotojas ir sudo naudojate tik tada, kai reikia;
  • kiekviena paslauga veikia savo naudotojo vardu be apvalkalo (pamoka 3.1), o ne kaip root;
  • žiniatinklio programa gauna duomenų bazės naudotoją, kuris gali naudoti tik savo duomenų bazę, o ne duomenų bazių serverio administratorių;
  • atsarginių kopijų scenarijus gali vykdyti tik tą vieną jam reikalingą komandą (NOPASSWD su visu keliu);
  • kolega, kuris tik atnaujina svetainę, gauna rašymo teisę į /var/www/example.com per grupę, o ne sudo.

Idėja tokia: jei kas nors nutinka (spraga įskiepyje, pavogtas raktas), žala apsiriboja tuo vienu naudotoju ar paslauga. Tai nuolat kartojasi CIS principuose ir sistemos stiprinimo pamokoje (10.1).

AlmaLinux ir Rocky Linux sistemose

Ten administratorių grupė vadinama wheel, o ne sudo: usermod -aG wheel anna. Eilutė faile /etc/sudoers yra %wheel ALL=(ALL) ALL. visudo ir /etc/sudoers.d veikia taip pat. Sudo pranešimai ten taip pat įrašomi į /var/log/secure.

Santrauka

  • Dirbkite kaip paprastas naudotojas ir administravimui naudokite sudo; sudo prašo Jūsų paties slaptažodžio ir registruoja kiekvieną komandą.
  • Administratoriaus sukūrimas: adduser anna, adduser anna sudo (RHEL tipo sistemose wheel), raktas su tinkamu savininku ir teisėmis, bandymas antrame lange, tik tada išjungiamas root prisijungimas.
  • sudo taisykles redaguokite tik su visudo, geriausia atskirame faile kataloge /etc/sudoers.d/, be taško pavadinime.
  • NOPASSWD viskam pašalina vieną spyną; verčiau naudokite jį tik vienai komandai su visu keliu, kurios naudotojas negali pakeisti.
  • Mažiausios teisės: kiekvienas naudotojas ir paslauga gauna tiksliai tai, ko reikia, kad klaida ar spraga liktų maža.

Testas (quiz)

1. Kokio slaptažodžio pagal numatytuosius nustatymus prašo sudo, kai Anna įveda sudo apt update?



2. Sukuriate failą /etc/sudoers.d/backup.conf su teisinga eilute, bet ji neveikia. Kodėl?



3. Kodėl sudo taisykles redaguojate su visudo?



4. Kuri eilutė atsarginių kopijų naudotojui kelia mažiausią riziką?



5. Kokia tvarka išjungiate root prisijungimą neužsirakindami sau prieigos?



Užduotis

Užduotis O3.2: Administratorius su sudo. Sukurkite savo serveryje paprastą administratorių (pavyzdžiui, anna), tinkamai įdėkite savo raktą, antrame lange išbandykite prisijungimą ir sudo -l, o tada išjunkite root prisijungimą per SSH (PermitRootLogin no). Pažymėkite atliktus žingsnius, įklijuokite id išvestį (tik vardą ir grupes) ir atsakykite į klausimus: kuri eilutė suteikia Jūsų administratoriui teises, ar kur nors yra NOPASSWD ir kaip pateksite vidun, jei pamiršite slaptažodį?

Užduotis O3.2: Administratorius su sudo

Šią užduotį atliekate patys; niekas jos netikrina. Pažymėkite, ką atlikote, ir pažymėkite užduotį kaip atliktą.




Jūsų pažymėti varneliai ir pastabos lieka tik šioje naršyklėje; niekur jų nesiunčiame. Jei esate prisijungę, skiltyje Mano kursai išsaugome tik tai, kad užduotį atlikote.

Skaitykite daugiau

Šiuose straipsniuose aprašyti žingsniai taikomi WebOké VPS serveriams; pas kitus teikėjus tai veikia panašiai.

Akimirką…

Nustatykite domenus

Kiekvienam domenui nustatykite vardų serverius, susiejimą su talpinimu ir tai, kas taps valdytoju.

Įkeliami Jūsų domenai…