LFCA: Hvernig á að bæta Linux kerfisöryggi - Hluti 20


Eins og við vitum öll er rótnotandinn konungur og hefur ótakmörkuð réttindi yfir Linux kerfinu. Hins vegar eru notendur sem ekki eru rót takmarkaðir við grunnverkefni. Að auki er sudo notendum aðeins veitt ákveðin rótarréttindi eins og rótnotandinn telur hæfa til að framkvæma tiltekin aukin verkefni.

Vandamál koma upp þegar venjulegir notendur hafa stjórnlausan aðgang að auðlindum eða eru stækkaðir til að róta óviljandi. Þetta er alvarleg öryggisáhætta sem gæti valdið brotum, óæskilegum breytingum og í versta falli hrun á kerfinu. Önnur hugsanleg áhætta er þegar skrár hafa óöruggari skráarheimildir. Til dæmis gætu ræsiskrár með skrifheimildir fyrir alþjóðlega notendur auðveldlega verið breytt eða skemmd sem leiðir til bilunar í kerfinu.

[Þér gæti líka líkað við: Gagnlegar ráðleggingar til að tryggja gögn og Linux ]

Þó að við getum innleitt líkamlegt, net- og gagnaöryggi, getur illgjarn notandi sniðgengið öryggisráðstafanirnar og nýtt sér slíkar öryggisglufur. Það er af þessari ástæðu að taka ætti öryggi skráakerfisins alvarlega. Það veitir auka lag af vörn andspænis árásum eða innherjaógnunum frá illgjarnum starfsmönnum sem þurfa ekki að leggja mikið á sig við að sniðganga öryggisráðstafanir til að fá aðgang að skrám.

Í kerfisöryggi munum við einbeita okkur að eftirfarandi lykilatriðum:

  • Aðgangsréttindi – Notenda- og hópheimildir.
  • Framfylgja lykilorðareglum með PAM einingunni.

Aðgangsréttur – Aðskilnaður notanda og hóps

Þú hlýtur að hafa heyrt að allt í Linux sé talið skrá. Og ef það er ekki, þá er það ferli. Sérhver skrá á Linux kerfi er í eigu notanda og hópnotanda. Það hefur einnig skráarheimildir fyrir 3 notendaflokka: Notandi (u), hópur (g) og aðrir (o). Heimildirnar eru táknaðar í lesa, skrifa og keyra (rwx) fyrir hvern notendaflokk.

rwx        rwx	     rwx
User       Group     Others

Eins og sést áður, í ls skipuninni eins og sýnt er.

$ ls -l

Til að rifja upp eru heimildirnar venjulega táknaðar með níu stöfum. Fyrstu þrír stafirnir tákna aðgangsrétt hins raunverulega notanda sem á skrána. Annað sett af stöfum táknar heimildir hópeiganda skráarinnar. Að lokum, síðasta settið fyrir aðra eða alþjóðlega notendur. Þessar persónur eru sífellt í lestri, ritun, framkvæmd (rwx) röð.

Eftir heimildirnar höfum við notenda- og hópaeign, fylgt eftir með skráar- eða möppustærð, dagsetningu breytinga og að lokum nafn skráarinnar.

Breyting á heimildum og eignarhaldi á skrá/skrá

Notendaheimildum skráa og möppum er hægt að breyta eftir því sem hentar. Þumalputtareglan er að nota öryggisregluna með minnstu forréttindi. Einfaldlega sagt, tryggðu að notendur fái lágmarks aðgangsréttindi eða heimildir sem þarf til að vinna verkið.

Meginreglan um minnstu forréttindi takmarkar notendur við ákveðin hlutverk eingöngu og með því að gera það, lágmarkar hættuna á að árásarmenn fái aðgang að og breyti mikilvægum gögnum með því að nýta sér notendareikning með litlum lyftistöng. Það dregur einnig úr árásaryfirborðinu og takmarkar útbreiðslu spilliforrita ef árásarmaðurinn tekur stjórn á kerfinu þínu.

Þess vegna, ef notandi þarf aðeins að skoða innihald skráar eða möppu, ætti ekki að veita þeim leyfi til að keyra eða skrifa. Á grunnstigi, veittu aðeins minnstu heimildir og eignarhald sem notandinn þarf til að framkvæma verkefni. Við höfum tekist á við hvernig á að breyta notendaheimildum og eignarhaldi á skrám/möppum með því að nota chmod og chown skipanir í grunn Linux skipana efninu.

Til að kerfisstjóri eigi auðveldara með að stjórna heimildum er hægt að veita sérstakar heimildir eða aðgangsréttindi fyrir heilar möppur. Ein af sérstökum heimildum sem hægt er að nota til að takmarka eyðingu og breytingu á skrá eða möppu er klístur bitinn.

Í atburðarás þar sem allir notendur kerfisins eða netkerfisins geta nálgast sameiginlega möppu, þá er hugsanleg hætta á að sumir notendur geti eytt eða breytt skrám inni í möppunni. Þetta er óæskilegt ef þú vilt viðhalda heilleika möppuinnihaldsins. Og þetta er þar sem klístur bitinn kemur inn.

Sticky biti er sérstakt skráarheimildarsett á skrá eða heila möppu. Það veitir aðeins eiganda þeirrar skráar/möppu leyfi til að eyða eða gera breytingar á skránni eða innihaldi möppunnar. Enginn annar notandi getur eytt eða breytt skránni/skránni. Það hefur táknrænt gildi t og tölugildi 1000.

Til að kveikja á Sticky bita á möppu, notaðu chmod skipunina sem hér segir:

$ chmod +t directory_name

Í dæminu hér að neðan höfum við sett klístur bita á möppuna sem kallast próf. Ef um möppu er að ræða mun allt innihald erfa leyfðar bitaheimildir. Þú getur sannreynt Sticky bit heimildirnar með ls -ld skipuninni. Vertu viss um að taka eftir t tákninu í lok skráarheimilda.

$ ls -ld test

Ef annar notandi reynir að eyða möppunni eða breyta skránni inni í möppunni, er tekið á móti þeim með villu um leyfi neitað.

Og það er kjarninn í leyfi stafbitaskráa.

SUID (Set User ID) er önnur sérstök skráarheimild sem gerir öðrum venjulegum notanda kleift að keyra skrá með skráarheimildum skráareigandans. Það er venjulega táknað með táknrænu gildi s við hluta skráarheimilda notandans í stað x sem táknar framkvæmdarheimildir. SUID hefur tölugildið 4000.

SGID, (Setja hópauðkenni) gerir venjulegum notanda kleift að erfa hópheimildir eiganda skráarhópsins. Frekar en x fyrir framkvæmdarheimildir muntu sjá s í hóphluta skráarheimildanna. SGID hefur tölugildið 2000.

Hversu þægilegar sem þær reynast eru SUID og SGID heimildir tengdar öryggisáhættu og ætti að forðast þær hvað sem það kostar. Þetta er vegna þess að þeir veita venjulegum notendum sérstök réttindi. Ef boðflenna sem gefur sig út fyrir að vera venjulegur notandi rekst á keyrsluskrá sem er í eigu rótnotandans með SUID bita stillt á hana, þá geta þeir notað þá glufu og nýtt sér kerfið.

Til að finna allar skrárnar með SUID bita stillt í Linux skaltu keyra find skipunina sem rót notandi.

$ find / -perm -4000 type -f

Fyrir keyrðar möppur:

$ find / -perm -4000 type -d

Til að finna allar skrár með SGID bitasett keyrðu:

$ find / -perm -2000 type -f

Fyrir möppur framkvæma:

$ find / -perm -2000 type -d

Til að fjarlægja SUID bitann á skrá skaltu keyra chmod skipunina eins og sýnt er:

$ chmod u-s /path/to/file

Til að fjarlægja SGID bitann á skrá skaltu framkvæma skipunina:

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

Það er ekki óalgengt að notendur setji veik lykilorð. Gott númer setti stutt, látlaus og auðvelt að giska á lykilorð til að forðast að gleyma þeim við innskráningu. Þó það sé þægilegt er auðvelt að brjóta veik lykilorð með því að nota brute-force árásarforskriftir.

PAM einingin ( Pluggable Authentication Module ) er eining sem gerir kerfisstjórum kleift að framfylgja lykilorðareglum á Linux kerfum. Til að ná þessu þarftu pam_pwquality eininguna sem er veitt af libpam_pwquality bókasafninu. Pam_pwquality einingin athugar styrk lykilorðs gegn setti reglna og kerfisorðabókar og bendir á veik lykilorðaval.

Til að setja upp pam_pwquality eininguna á Ubuntu 18.04 og síðari útgáfum skaltu keyra:

$ sudo apt install libpam_pwquality

Fyrir RHEL/CentOS 8, keyrðu skipunina:

$ sudo dnf install libpwquality

Stillingarskráin er að finna á eftirfarandi stað:

  • Á Debian-Systems – /etc/pam.d/common-password
  • Á RedHat kerfum – /etc/pam.d/system-auth

Áður en við byrjum að breyta PAM stillingarskránni skulum við fyrst íhuga að safna innsýn í öldrunarstýringar lykilorða.

Þetta er að finna í /etc/login.defs skránni.

Skráin inniheldur eftirfarandi lykilorðastýringar:

  • PASS_MAX_DAYS: Hámarksfjöldi daga sem hægt er að nota lykilorð.
  • PASS_MIN_DAYS: Lágmarksfjöldi. leyfðir dagar á milli lykilorðsbreytinga.
  • PASS_WARN_AGE: Fjöldi daga viðvörun gefinn áður en lykilorð rennur út.

Sjálfgefin gildi eru sýnd hér að neðan.

PASS_MAX_DAYS eigindin takmarkar fjölda daga sem notandi getur notað lykilorðið sitt. Þegar þetta gildi er náð eða lykilorðið rennur út neyðist notandinn til að breyta lykilorðinu sínu til að skrá sig inn í kerfið. Sjálfgefið er þetta gildi stillt á 99999, sem þýðir 273 ár. Þetta er ekki skynsamlegt hvað öryggi varðar þar sem notandinn getur haldið áfram að nota lykilorðið sitt alla ævi.

Þú getur stillt þetta á þýðingarmikið gildi, segjum 30 daga eins og sýnt er.

PASS_MAX_DAYS  30

Þegar 30 dagar eru liðnir neyðist notandinn til að breyta lykilorðinu sínu í annað.

PASS_MIN_DAYS eigindin segir til um lágmarkslengd sem notendur geta notað lykilorðið sitt áður en þeir breyta því. Hvað þýðir þetta? Ef, til dæmis, þetta gildi er stillt á 15 dagar, mun notandinn ekki geta breytt lykilorðinu sínu aftur áður en 15 dagar eru liðnir.

PASS_MAX_DAYS  15

PASS_WARN_AGE eigindin tilgreinir fjölda daga sem notandi fær viðvörun um yfirvofandi útrunn lykilorðs síns áður en það rennur út. Til dæmis geturðu stillt þetta á 7 daga eins og sýnt er.

PASS_MAX_DAYS  7

ATH: Þessar lykilorðastýringar virka ekki með reikningum sem fyrir eru. Þeim er aðeins beitt á nýja reikninga sem eru búnir til eftir að reglurnar eru skilgreindar.

Áður en þú breytir /etc/pam.d/common-password skránni skaltu búa til öryggisafrit. Í þessu dæmi höfum við búið til common-password.bak afritaskrána.

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

Opnaðu síðan skrána.

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

Finndu línuna sem sýnd er hér að neðan.

password        requisite          pam_pwquality.so retry=3

Reyndu aftur valkosturinn setur hámarksfjölda skipta sem þú þarft að slá inn rétt lykilorð áður en þú færð villu. Sjálfgefið er þetta stillt á 3. Þetta er bara einn valmöguleiki og við ætlum að taka með nokkra valkosti.

Bættu eftirfarandi eiginleikum við línuna:

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

Við skulum útfæra þessa eiginleika.

  • minlen=10: Stillir lágmarks viðunandi stærð fyrir lykilorðið. Í þessu tilviki, 10 stafir.
  • difok=3: Þetta er hámarksfjöldi stafa sem er til staðar í fyrra lykilorðinu.
  • lcredit=-1: Þetta er lágmarksfjöldi lágstafa sem ætti að vera til staðar í lykilorðinu.
  • ucredit=-1: Þetta er hámarksfjöldi lágstafa sem ætti að vera í lykilorðinu.
  • dcredit=-1: Lágmarksfjöldi tölustafa sem ætti að skilgreina í lykilorðinu.
  • ocredit=-1: Lágmarksfjöldi sérstafa, t.d. @, #, & sem ætti að vera skilgreindur í lykilorðinu.
  • reject_username: Þessi valkostur kallar á höfnun lykilorðsins ef lykilorðið er notendanafn annað hvort á beinu eða öfugu formi.

Ef þú reynir að búa til nýjan notanda sem stenst ekki lykilorðareglurnar muntu rekast á slíkar villur eins og sýnt er.

Þetta lýkur umræðuefninu um kerfisöryggi og grundvallaratriði öryggis almennt. Í öllum kaflanum höfum við varpað ljósi á helstu öryggisráðstafanir sem þú getur innleitt til að vernda Linux kerfið þitt fyrir illgjarnum notendum eins og tölvuþrjótum eða óánægðum starfsmönnum.