See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 28349|Vastuse: 4

[linux] Põhjalik arusaam sellest, mis on selinux Linuxis

[Kopeeri link]
Postitatud 05.07.2019 11:25:50 | | | |
1. Eessõna

Turvalisusega tugevdatud Linux (SELinux) on Linuxi tuumamoodul ja Linuxi turvaalamsüsteem.

SELinuxi arendas peamiselt NSA. Linuxi kernelid 2.6 ja uuemad integreerivad juba SELinux mooduleid.

SELinux on väga keeruline ja sisaldab palju kontseptuaalseid asju, mida on raske õppida. Paljud Linuxi süsteemiadministraatorid on SELinuxi välja lülitanud, sest see tekitab neile probleeme.

Kui suudad SELinuxi valdada ja seda õigesti kasutada, võib kogu süsteem jõuda põhimõtteliselt "purunematu" tasemele (pea alati meeles, et absoluutset turvalisust ei ole).

SELinuxi põhikontseptsioonide ja lihtsate konfiguratsioonimeetodite valdamine on kohustuslik kursus igale Linuxi süsteemiadministraatorile.

See artikkel põhineb CentOS 7.4.1708-l.

See artikkel on puhtalt isikliku õpikogemuse jagamine ja vahetus, vead on vältimatud, ainult viitamiseks! Kui leiad vea, palun osuta sellele, suur tänu!

2. SELinuxi roll ja õiguste haldamise mehhanism

2.1 SELinuxi roll

SELinuxi peamine ülesanne on minimeerida ressursse, mida teenuseprotsessid süsteemis saavad kasutada (väikseima privileegi printsiip).

Kujutage ette, et kui root-võrguteenusel on 0day haavatavus, saavad häkkerid seda haavatavust ära kasutada, et teha root-serveris mida iganes soovivad. Kas pole hirmutav?

SELinux on siin, et seda probleemi lahendada.

2.2 DAC

Operatsioonisüsteemis, mis ei kasuta SELinuxi, määrab see, kas ressursile pääseb ligi, see, kas ressursil on vastava kasutaja õigused (lugemine, kirjutamine, käivitamine).

Kui selle ressursi ligipääsu protsess vastab ülaltoodud tingimustele, on sellele ligipääsetav.

Kõige saatuslikum probleem on see, et juurkasutajad ei allu mingitele regulatsioonidele ning kõik süsteemi ressursid on piiranguteta kättesaadavad.

Selle õiguste haldusmehhanismi peamine osa on kasutaja, tuntud ka kui autonoomne juurdepääsukontroll (DAC).

2.3 MAC

SELinuxit kasutavas operatsioonisüsteemis määravad tegurid, kas ressursile pääseb ligi, mitte ainult ülaltoodud tegurid, vaid ka see, kas igal protsessitüübil on juurdepääs teatud tüüpi ressursile.

Nii on isegi kui protsess töötab root-failina, enne kui otsustatakse, kas lubada juurdepääsu ressursile, määrata protsessi tüüp ja milliseid ressursse on lubatud. Protsessi aktiivset ruumi saab samuti minimaalseks suruda.

Isegi root-teenusel on tavaliselt ligipääs ainult vajalikele ressurssidele. Isegi kui programm on haavatav, on mõju ulatus piiratud ressurssidega, millele tal on lubatud ligi pääseda. Turvalisus on oluliselt suurendatud.

Selle õiguste haldamise mehhanismi peamine osa on protsess, tuntud ka kui kohustuslik juurdepääsukontroll (MAC).

MAC jaguneb kaheks osaks: üks on kategooria turvalisuse (MCS) režiim ja teine mitmetasandiline turvalisus (MLS) režiim.

Järgnevad tegevused on MCS-režiimis.

2.4 DAC-i ja MAC-i võrdlus

Siin on illustreerimiseks üks pilt.



Nagu näha, DAC-režiimis, kui vastaval kataloogil on vastava kasutaja õigused, on sellele ligipääsetav. MAC-režiimis on see piiratud ka kataloogide hulgaga, millele protsessidel on lubatud ligi pääseda.

3. SELinuxi põhimõisted

3.1 Teema

Seda saab täielikult seostada protsessiga.

Märkus: Lihtsama arusaamise huvides, kui pole teisiti märgitud, käsitletakse protsessi allpool peamise osana.

3.2 Eesmärk

Ressursid, millele pääseb ligi direktor. See võib olla failid, kataloogid, pordid, seadmed jne.

Märkus: Lihtsama arusaamise huvides, kui pole teisiti märgitud, loetakse järgmised dokumendid või kataloogid objektideks.

3.3 Poliitika ja reegel

Süsteemis on tavaliselt palju faile ja protsesse ning aja ja kulude säästmiseks reguleerime tavaliselt ainult teatud protsesse valikuliselt.

Ja milliseid protsesse tuleb reguleerida ja kuidas neid kontrollida, määrab poliitika.

Poliisis on mitu reeglit. Mõningaid reegleid saab vajadusel lubada või keelata (edaspidi Boole'i reeglid).

Reeglid on modulaarsed ja laiendatavad. Uue rakenduse paigaldamisel saab rakendus lisada reegleid, lisades uusi mooduleid. Kasutajad saavad ka reegleid käsitsi lisada või eemaldada.

CentOS 7 süsteemis on kolm poliitikate komplekti, nimelt:

1. sihitud: Kontrollib enamikku võrguteenuse protsesse. See on süsteemi vaikimisi kasutatav poliitika (kõik allpool toodud on kasutusel).

2. Miinimum: Sihitud andmete põhjal reguleeritakse ainult valitud võrguteenuse protsesse. Üldiselt mitte.

3. MLS: Mitmetasandiline turvakaitse. Reguleeri kõiki protsesse. See on kõige rangem poliitika ja konfiguratsioon on väga keeruline. Üldiselt seda ei kasutata, välja arvatud juhul, kui turvalisuse nõuded on äärmiselt kõrged.

Poliitikaid saab määrata /etc/selinux/config.

3.4 Turvalisuse kontekst

Turvakontekst on SELinuxi keskmes.

Turvalisuse kontekst jagan selle "protsessi turvalisuse kontekstiks" ja "dokumenditurvalisuse kontekstiks".

Protsessiturbe kontekst vastab tavaliselt mitmele dokumenditurvalisuse kontekstile.

Ainult siis, kui nende kahe turvalisuse kontekst vastab sellele, saab protsess failile ligi pääseda. Nende kirjavahetust määravad poliisi reeglid.

Faili turvalisuse kontekst sõltub sellest, kus fail loodi ja milline protsess selle lõi. Ja süsteemil on vaikimisi väärtuste komplekt ning kasutajad saavad ka vaikimisi väärtusi määrata.

Oluline on märkida, et pelgalt failide liigutamine ei muuda sinu failide turvakonteksti.

Turvalisuse konteksti struktuur ja tähendus

Turvakontekstis on neli välja, mis on eraldatud koolonidega. Kuju nagu: system_u:object_r:admin_home_t:s0.


3.5 SELinux töörežiim

SELinuxil on kolm töörežiimi, nimelt:

1. jõustamine: Jõustatud režiim. SELinuxi reeglite rikkumised blokeeritakse ja logitakse logidesse.

2. Lubav: Tolerantsi režiim. SELinuxi reeglite rikkumised logitakse ainult logidesse. Üldiselt silumiseks.

3. välja lülitatud: lülita SELinux välja.

SELinuxi töörežiimi saab määrata /etc/selinux/config.

Kui soovid üle minna keelatud olekust jõustamise või lubamise vastu, pead süsteemi taaskäivitama. Ja vastupidi.

Jõustamise ja lubamise režiime saab kiiresti vahetada käsuga Setenforce 1|0.

Oluline on märkida, et kui süsteem on mõnda aega töötanud SELinuxi väljalülitamisega, võib esimene taaskäivitus pärast SELinuxi sisselülitamist olla aeglasem. Sest süsteem peab looma failidele kettal turvalise konteksti (ütlesin, et taaskäivitasin umbes 10 minutiks ja arvasin, et see on surnud...... )。

SELinuxi logid tuleb logida auditd.service abiga, palun ära keela neid.

3.6 SELinux töövoog

Siin on tsitaat pildilt, ilma suurema selgituseta.



Märkus: ülaltoodud turvatekst viitab turvakontekstile.

4. Põhilised SELinuxi operatsioonid

4.1 Faili või kataloogi turvakonteksti päring

Käsu põhikasutus

ls -Z

Kasutusnäited

Küsi /etc/hostide turvakonteksti.

ls -Z /jne/hostid

Täitmise tulemused

-rw-r--r--. juurjuur system_u:object_r:net_conf_t:s0 /jne/hostid

4.2 Protsessi turvakonteksti päring

Käsu põhikasutus

ps auxZ | Grep -v grep | grep

Kasutusnäited

Küsi Nginxiga seotud protsesside turvakonteksti.

ps auxZ | Grep -v grep | Grep Nginx

Täitmise tulemused

system_u:system_r:httpd_t:s0 juur 7997 0,0 0,0 122784 2156 ? Ss 14:31 0:00 nginx: peamine protsess /usr/sbin/nginx

system_u:system_r:httpd_t:s0 nginx 7998 0.0 0.0 125332 7560 ? S 14:31 0:00 nginx: töötajate protsess

4.3 Faili või kataloogi turvakonteksti käsitsi muutmine

Käsu põhikasutus

CHCON [...]

Valikufunktsioon -u Muuda turvakonteksti kasutajavälja -r Muuda turvakonteksti rollivälja -t Muuda turvakonteksti tüübivälja -l Muuda turvakonteksti tasemevälja --viide Muuda turvakonteksti vastavuses määratud faili või kataloogiga -R Rekursiivne operatsioon -h Muuda pehme lingi turvakonteksti (muuda vastavat faili ilma selle valikuta)

Kasutusnäited

Muuda testi turvakontekst aaa_u:bbb_r:ccc_t:s0-ks.

chcon -u aaa_u -r bbb_r -t ccc_t test

4.4 Faili või kataloogi turvakontekst tagasi vaikimisi väärtusele

Käsu põhikasutus

RestoreCon [valikud] [...]

Valikufunktsioon - V printimise protseduuri protseduur - R rekursiivne operatsioon

Kasutusnäited

Kui oled lisanud mõned veebifailid oma Nginx serveri kataloogi, sea nende uute failide jaoks õige turvakontuur.

restorecon -R /usr/share/nginx/html/

4.5 Päringu Boole'i reeglid ja nende staatus süsteemis

Käsu põhikasutus

getsebool -a

Kuna käsk pärib kas kõiki reegleid või ainult ühte reeglit, pärib ta tavaliselt kõigepealt kõik reeglid ja seejärel filtreerib grepiga.

Kasutusnäited

Päring Boole'i reeglite kohta, mis on seotud httpd-ga.

Getsebool -a | grep httpd

Täitmise tulemused

httpd_anon_write --> minema

httpd_builtin_scripting -->

httpd_can_check_spam -->

httpd_can_connect_ftp --> ära

#以下省略

4.6 Boole'i reegli vahetamine

Käsu põhikasutus

Setsebool [valik]

Valikufunktsioon -P taaskäivitamine kehtib endiselt

Kasutusnäited

Lülita sisse httpd_anon_write reeglid.

setsebool -P httpd_anon_write sisse

4.7 Lisa kataloogile vaikimisi turvakontekst

Käsu põhikasutus

semanage fcontext -a -t "(/.*)?"

Märkus: Kataloogi või faili vaikimisi turvakonteksti saab vaadata, kasutades käsu semanage fcontext -l koos grep filtreerimisega.

Kasutusnäited

Kui lisad Nginxile uue saidikataloogi /usr/share/nginx/html2, pead seadistama sama vaikimisi turvakonteksti nagu algses kataloogis.

Semanage fcontext -a -t httpd_sys_content_t "/usr/share/nginx/html2(/.*)?"

4.8 Lisa pordid, mida teatud tüüpi protsessid lubavad

Käsu põhikasutus

semanage port -a -t -p

Märkus: Erinevate teenusetüüpide jaoks lubatud pordinumbreid saab vaadata, kasutades käsu semanage port -l koos grep filtreerimisega.

Kasutusnäited

Nginxi jaoks pead HTTP teenuste jaoks kasutama porti 10080.

Semanage port -a -t http_port_t -p TCP 10080

5. SELinuxi veaanalüüs ja lahendamine

5.1 SELinuxi logide mõistmine

Kui SELinux on lubatud, loetakse paljude teenuste normaalne käitumine rikkumiseks (nii pealkirjas kui ka allolevates vigades).

Praegu peame kasutama SELinuxi rikkumislogisid nende analüüsimiseks ja lahendamiseks.

SELinuxi rikkumislogid salvestatakse /var/log/audit/audit.log.

/var/log/audit/audit.log 的内容大概是这样的。

type=LOGIN msg=audit(1507898701.391:515): pid=8523 uid=0 subj=system_u:system_r:crond_t:s0-s0:c0.c1023 old-auid=4294967295 auid=0 tty=(none) old-ses=4294967295 ses=25 res=1

type=USER_START msg=audit(1507898701.421:516): pid=8523 uid=0 auid=0 ses=25 subj=system_u::system_r:crond_t:s0-s0:c0.c1023 msg='op=PAM:session_open grantors=pam_loginuid,pam_ keyinit,pam_limits,pam_systemd acct="root" exe="/usr/sbin/crond" hostname=? addr=? terminal=cron res=edu'

...

Fail sisaldab palju sisu ja on segatud paljude süsteemiauditi logidega, millel pole SELinuxi vigadega mingit pistmist. Analüüsi tegemiseks kasutame sealert utiliiti (kui käsk ei leia, paigalda se-tõrkeotsingu pakett).

5.2 Analüüsi vigu sealertiga

Käsu põhikasutus

sealert -a /var/log/audit/audit.log

Pärast käsu täitmist peab süsteem võtma aega, et logides olevaid rikkumisi analüüsida ja esitada analüüsiraport.




Eelmine:CentOS7 vaade ja tulemüüri väljalülitamine
Järgmine:Valitsege HDFS-i Java API liidese ligipääs
 Üürileandja| Postitatud 22.07.2021 17:17:58 |
Lülita SELinux välja

Getenforce #查看是否是 keelatud, kui mitte, täida allolev käsk
vim /etc/selinux/config
Muuda SELINUX=jõustamine SELINUX=disabled'iks, salvesta ja välju
 Üürileandja| Postitatud 15.10.2021 13:21:42 |
 Üürileandja| Postitatud 15.10.2021 14:22:40 |
Lülita välja swap partitsiooni vahetus

 Üürileandja| Postitatud 03.09.2024 14:16:43 |
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com