LFCA: Linux ulgamynyň howpsuzlygyny nädip gowulandyrmaly - 20-nji bölüm


Hemmämiziň bilşimiz ýaly, kök ulanyjy şa bolup, Linux ulgamyndan çäksiz artykmaçlyklara eýe. Şeýle-de bolsa, kök däl ulanyjylar esasy meseleler bilen çäklenýärler. Mundan başga-da, sudo ulanyjylaryna diňe belli bir ýokary derejeli işleri ýerine ýetirmek üçin kök ulanyjy tarapyndan laýyk hasaplanýan belli bir derejede kök artykmaçlyklary berilýär.

Adaty ulanyjylar çeşmelere gözegçiliksiz girip ýa-da bilgeşleýin kök uranlarynda ýüze çykýar. Bu çynlakaý bozulmalara, islenmedik üýtgeşmelere we iň erbet ýagdaýda ulgamyň çökmegine sebäp bolup biljek çynlakaý howpsuzlyk töwekgelçiligi. Anotherene bir töwekgelçilik, faýllaryň ygtybarly faýl rugsatlary az bolanda. Mysal üçin, global ulanyjylar üçin ýazmak rugsady bolan faýllary aňsatlyk bilen üýtgedip ýa-da zaýalap, ulgamyň bozulmagyna sebäp bolup biler.

[Şeýle hem halamagyňyz mümkin: Maglumatlary we Linux-y goramak üçin peýdaly maslahatlar]

Fiziki, tor we maglumat howpsuzlygyny amala aşyryp bilsek-de, zyýanly ulanyjy howpsuzlyk çärelerinden geçip, şeýle howpsuzlyk kemçiliklerinden peýdalanyp biler. Şol sebäpli faýl ulgamynyň howpsuzlygyna çynlakaý çemeleşilmelidir. Faýllara girmek üçin howpsuzlyk çärelerini görmekde agyr götermeli däl zyýanly işgärleriň hüjümleri ýa-da içerki howplary sebäpli goşmaça gorag gatlagyny üpjün edýär.

Ulgam howpsuzlygynda aşakdaky esasy nokatlara üns bereris:

  • Giriş hukuklary - Ulanyjy we topar rugsatlary.
  • PAM moduly bilen parol syýasatlaryny ýerine ýetiriň.

Giriş hukuklary - Ulanyjy we topar bölünişi

Linux-daky hemme zadyň faýl hasaplanýandygyny eşiden bolsaňyz gerek. Eger ýok bolsa, bu bir proses. Linux ulgamyndaky her bir faýl ulanyja we topar ulanyjysyna degişlidir. Şeýle hem 3 ulanyjy kategoriýasy üçin faýl rugsatlary bar: Ulanyjy (u), Topar (g) we başgalar (o). Rugsatlar her ulanyjy kategoriýasy üçin okamak, ýazmak we ýerine ýetirmek (rwx) görnüşinde görkezilýär.

rwx        rwx	     rwx
User       Group     Others

Öň görşümiz ýaly, görkezilişi ýaly ls buýrugynda.

$ ls -l

Diňe bir gezek aýdanymyzda, rugsatlar adatça dokuz simwoldan ybaratdyr. Ilkinji üç simwol faýla eýe bolan hakyky ulanyjynyň giriş hukuklaryny görkezýär. Nyşanlaryň ikinji toplumy faýlyň topar eýesiniň rugsatlaryny görkezýär. Netijede, beýleki ýa-da global ulanyjylar üçin iň soňky toplum. Bu simwollar hemişe okamak, ýazmak, ýerine ýetirmek (rwx) tertibinde.

Rugsatlardan soň ulanyjy we topar eýeçiligimiz bar, ondan soň faýl ýa-da bukjanyň ululygy, üýtgedilen senesi we iň soňunda faýlyň ady bar.

Faýl/katalog rugsatlaryny we eýeçiligini üýtgetmek

Faýllaryň we kataloglaryň ulanyjy rugsatlary, laýyk hasap edilip üýtgedilip bilner. Düzgüne görä, iň az artykmaçlyk howpsuzlyk ýörelgesini ulanmak. Plyönekeý söz bilen aýdanyňda, ulanyjylaryň işi bitirmek üçin zerur bolan iň az giriş hukuklaryny ýa-da rugsatlaryny almagyny üpjün ediň.

Iň az artykmaçlyk ýörelgesi ulanyjylary diňe belli bir rollar bilen çäklendirýär we şeýle etmek bilen, pes ulanyjy hasabyny alyp, hüjümçileriň möhüm maglumatlara girmek we üýtgetmek howpuny azaldýar. Şeýle hem hüjümçi ulgamyňyza gözegçilik eden ýagdaýynda hüjümiň üstüni azaldýar we zyýanly programma üpjünçiliginiň ýaýramagyny çäklendirýär.

Şonuň üçin ulanyjy diňe bir faýlyň ýa-da katalogyň mazmunyny görmeli bolsa, ýerine ýetirmek ýa-da ýazmak üçin rugsat berilmeli däldir. Iň esasy derejede, ulanyjynyň tabşyryklary ýerine ýetirmek üçin talap edýän iň az rugsatlaryny we eýeçiligini beriň. Linux buýruklarynyň esasy mowzugynda chmod we chown buýruklaryny ulanyp, faýllaryň/kataloglaryň ulanyjy rugsatlaryny we eýeçiligini nädip üýtgetmelidigini çözdük.

Ulgam dolandyryjysynyň rugsatlary dolandyrmakda has aňsat bolmagy üçin, ähli kataloglara ýörite rugsatlar ýa-da giriş hukuklary berlip bilner. Faýlyň ýa-da katalogyň öçürilmegini we üýtgedilmegini çäklendirmek üçin ulanylyp bilinjek ýörite rugsatlaryň biri-de ýelmeýän bit.

Ulgamdaky ýa-da tordaky ähli ulanyjylar tarapyndan umumy kataloga girip boljak ssenariýada, käbir ulanyjylaryň bukjanyň içindäki faýllary pozup ýa-da üýtgedip bilmek howpy bar. Katalog mazmunynyň bitewiligini saklamak isleseňiz, bu islenilmeýär. Ynha, ýelmeýän bit girýär.

Bitapyşan bit, bir faýlda ýa-da tutuş katalogda goýlan ýörite faýl rugsadydyr. Diňe şol faýl/katalogyň eýesine faýly ýa-da katalog mazmunyny pozmaga ýa-da üýtgetmäge rugsat berýär. Başga bir ulanyjy faýl/katalogy pozup ýa-da üýtgedip bilmez. t simwoliki bahasy we san bahasy 1000.

Katalogda ýelmeýän biti açmak üçin chmod buýrugyny aşakdaky ýaly ulanyň:

$ chmod +t directory_name

Aşakdaky mysalda, test diýilýän kataloga ýelmeşip goýduk. Katalog bar bolsa, ähli mazmun ýelmeýän bit rugsatlaryna eýe bolar. Ls -ld buýrugyny ulanyp, ýelmeýän bit rugsatlaryny barlap bilersiňiz. Faýl rugsatlarynyň soňundaky t nyşanyna üns beriň.

$ ls -ld test

Başga bir ulanyjy katalogy pozmaga ýa-da bukjanyň içindäki faýly üýtgetmäge synanyşsa, Rugsat berilmedik säwlik bilen garşylanýar.

Bu taýak bit faýl rugsadynyň esasy manysy.

SUID (Ulanyjy ID-ni düzmek) başga bir adaty ulanyja faýl eýesiniň faýl rugsatlary bilen bir faýly işletmäge mümkinçilik berýän başga bir ýörite faýl rugsadydyr. Adatça, ýerine ýetiriş rugsatlaryny görkezýän x ýerine faýl rugsatlarynyň ulanyjy böleginde simwoliki baha s bilen kesgitlenýär. SUID-iň san bahasy 4000.

SGID, (Toparyň ID-sini düzmek) yzygiderli ulanyja faýl toparynyň eýesiniň topar rugsatlaryny miras almaga mümkinçilik berýär. Rugsatlary ýerine ýetirmek üçin x ýerine, faýl rugsatlarynyň topar böleginde s görersiňiz. SGID-iň san bahasy 2000-e deňdir.

Näçe amatly bolsa-da, SUID we SGID rugsatlary howpsuzlyk töwekgelçiligi bilen baglanyşykly we ähli çykdajylardan gaça durmaly. Munuň sebäbi, adaty ulanyjylara aýratyn artykmaçlyklar berýär. Adaty ulanyjy hökmünde özüni görkezýän bir çozuş, SUID bitli kök ulanyjynyň eýeçiligindäki ýerine ýetirip boljak faýly görse, şol boşlugy ulanyp we ulgamdan peýdalanyp bilerler.

Linux-da gurlan SUID bitli ähli faýllary tapmak üçin kök ulanyjy hökmünde tapmak buýrugyny işlediň.

$ find / -perm -4000 type -f

Kataloglar üçin:

$ find / -perm -4000 type -d

SGID bit toplumy bilen işleýän ähli faýllary tapmak üçin:

$ find / -perm -2000 type -f

Kataloglar üçin ýerine ýetiriň:

$ find / -perm -2000 type -d

Faýldaky SUID bitini aýyrmak üçin chmod buýrugyny görkeziň:

$ chmod u-s /path/to/file

Faýldaky SGID bitini aýyrmak üçin buýrugy ýerine ýetiriň:

$ chmod g-s filename /path/to/file

Ulanyjylaryň gowşak parollary goýmagy seýrek däl. Gowy san, giriş wagtynda ýatdan çykarmazlyk üçin gysga, ýönekeý we aňsatlyk bilen çak edilýän parollary düzýär. Amatly bolsa-da, zalym güýçli hüjüm skriptlerini ulanyp, gowşak parollary aňsatlyk bilen bozup bolýar.

PAM moduly (Plugable Authentication Module), ulgam dolandyryjylaryna Linux ulgamlarynda parol syýasatlaryny ýerine ýetirmäge mümkinçilik berýän modul. Muny amala aşyrmak üçin libpam_pwquality kitaphanasy tarapyndan üpjün edilýän pam_pwquality moduly gerek. “Pam_pwquality” moduly parolyň düzgünler toplumyna we ulgam sözlügine garşy berkligini barlaýar we gowşak parol saýlamalaryny görkezýär.

Ubuntu 18.04 we soňraky wersiýalarynda pam_pwquality modulyny gurmak üçin işlediň:

$ sudo apt install libpam_pwquality

RHEL/CentOS 8 üçin buýrugy işlediň:

$ sudo dnf install libpwquality

Sazlama faýly aşakdaky ýerde tapylýar:

  • Debian-Systems-da - /etc/pam.d/common-password
  • RedHat ulgamlarynda - /etc/pam.d/system-auth

PAM konfigurasiýa faýlyny üýtgedip başlamazdan ozal, parolyň garramagy dolandyryşlary barada düşünjeleri ýygnamaga seredeliň.

Bulary /etc/login.defs faýlyndan tapyp bilersiňiz.

Faýlda aşakdaky açar parol dolandyryşlary bar:

  • PASS_MAX_DAYS: Paroly ulanyp boljak iň köp gün.
  • PASS_MIN_DAYS: Iň az san. parol üýtgetmeleriniň arasynda rugsat berlen günler.
  • PASS_WARN_AGE: Parol gutarmanka berlen günleriň sany.

Bellenen bahalar aşakda görkezilýär.

PASS_MAX_DAYS atributy, ulanyjynyň parolyny ulanyp biljek günleriniň sanyny çäklendirýär. Bu baha gazanylanda ýa-da parolyň möhleti gutaranda, ulanyjy ulgama girmek üçin parolyny üýtgetmäge mejbur bolýar. Adaty tertipde bu baha 273 ýyla terjime edilýän 99999-a düzüldi. Ulanyjynyň parolyny bütin ömri üçin dowam etdirip biljekdigi sebäpli, howpsuzlyk meselesinde munuň manysy ýok.

Muny manyly bir baha edip bilersiňiz, görkezilişi ýaly 30 gün aýdyň.

PASS_MAX_DAYS  30

30 gün geçensoň, ulanyjy parolyny başga birine üýtgetmäge mejbur bolar.

PASS_MIN_DAYS atributy ulanyjylaryň parolyny üýtgetmezden ozal ulanyp boljak iň az dowamlylygyny görkezýär. Bu näme many berýär? Mysal üçin, bu baha 15 güne bellenen bolsa, ulanyjy 15 gün geçmänkä parolyny üýtgedip bilmez.

PASS_MAX_DAYS  15

PASS_WARN_AGE atributy, ulanyjynyň parolynyň möhletiniň gutarmazyndan öň duýduryş aljak günleriniň sanyny kesgitleýär. Mysal üçin, muny görkezilişi ýaly 7 güne düzüp bilersiňiz.

PASS_MAX_DAYS  7

BELLIK: Bu parol dolandyryşlary, öňki hasaplar bilen işlemeýär. Diňe düzgünleri kesgitlänsoň döredilen täze hasaplara ulanylýar.

/Etc/pam.d/common-password faýlyny redaktirlemezden ozal ätiýaçlyk nusgasyny dörediň. Bu mysalda umumy-password.bak ätiýaçlyk nusga faýlyny döretdik.

$ sudo cp /etc/pam.d/common-password /etc/pam.d/common-password.bak

Soňra faýly açyň.

$ sudo vim /etc/pam.d/common-password 

Aşakda görkezilen setiri tapyň.

password        requisite          pam_pwquality.so retry=3

Gaýtadan synanyşmak, säwlik almazdan ozal dogry paroly girizmek üçin näçe gezek talap edilýändigini kesgitleýär. Düzgüne görä, bu 3-e düzüldi. Bu diňe bir wariant we birnäçe warianty öz içine alarys.

Aşakdaky atributlary goşuň:

minlen=10 difok=3 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 reject_username 

Geliň, bu häsiýetleri öwreneliň.

  • minlen=10: Parol üçin iň az kabul ederlikli ululygy düzýär. Bu ýagdaýda 10 simwol.
  • difok=3: Bu, öňki parolda bar bolan nyşanlaryň iň köp sany.
  • lcredit=-1: Bu parolda bolmaly iň kiçi harplaryň iň az sany.
  • ucredit=-1: Parolda bolmaly kiçi harplaryň iň köp sany.
  • dcredit=-1: Parolda kesgitlenmeli san belgileriniň iň az sany.
  • ocredit=-1: parolda kesgitlenmeli ýörite nyşanlaryň iň az mukdary, mysal üçin @, #, we
  • ret etmek_username: Bu opsiýa ulanyjy ady göni ýa-da ters görnüşde bolsa, parolyň ret edilmegine sebäp bolýar.

Parol syýasatlaryna laýyk gelmeýän täze ulanyjy döretjek bolsaňyz, görkezilişi ýaly ýalňyşlyklara baş goşarsyňyz.

Bu, umuman ulgam howpsuzlygy we howpsuzlyk esaslary baradaky mowzugy tamamlaýar. Tutuş bapda, Linux ulgamyňyzy hakerler ýa-da nägilelik bildirýän işgärler ýaly zyýanly ulanyjylardan goramak üçin durmuşa geçirip boljak esasy howpsuzlyk çäreleri barada maglumat berdik.