Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 28349|Atbildi: 4

[Linux] Rūpīga izpratne par to, kas ir selinux operētājsistēmā Linux

[Kopēt saiti]
Publicēts 05.07.2019 11:25:50 | | | |
1. Preambula

Security-Enhanced Linux (SELinux) ir Linux kodola modulis un Linux drošības apakšsistēma.

SELinux galvenokārt izstrādāja NSA. Linux kodoli 2.6 un jaunākas versijas jau integrē SELinux moduļus.

SELinux ir ļoti sarežģīts, un tajā ir daudz konceptuālu lietu, ko ir grūti iemācīties. Daudzi Linux sistēmas administratori ir izslēguši SELinux, jo viņiem tas šķiet apgrūtinoši.

Ja jūs varat apgūt SELinux un pareizi to izmantot, es domāju, ka visa sistēma būtībā var sasniegt "neiznīcināmu" punktu (vienmēr atcerieties, ka nav absolūtas drošības).

SELinux pamatjēdzienu, kā arī vienkāršu konfigurācijas metožu apgūšana ir obligāts kurss katram Linux sistēmas administratoram.

Šis raksts ir balstīts uz CentOS 7.4.1708.

Šis raksts ir tikai personīga mācību pieredzes apmaiņa un apmaiņa, kļūdas ir neizbēgamas, tikai atsaucei! Ja atrodat kļūdu, lūdzu, norādiet uz to, liels paldies!

2) SELinux loma un atļauju pārvaldības mehānisms

2.1 SELinux loma

SELinux galvenā funkcija ir samazināt resursus, kuriem var piekļūt sistēmas pakalpojumu procesi (vismazāko privilēģiju princips).

Iedomājieties, ka, ja tīkla pakalpojumam, kas darbojas kā root, ir 0day ievainojamība, hakeri var izmantot šo ievainojamību, lai darītu visu, ko viņi vēlas jūsu serverī kā root. Vai tas nav biedējoši?

SELinux ir šeit, lai atrisinātu šo problēmu.

2.2 DAC

Operētājsistēmā, kas neizmanto SELinux, faktors, kas nosaka, vai resursam var piekļūt, ir tas, vai resursam ir atbilstošā lietotāja atļaujas (lasīt, rakstīt, izpildīt).

Kamēr process, kas piekļūst šim resursam, atbilst iepriekš minētajiem nosacījumiem, tam var piekļūt.

Visletālākā problēma ir tā, ka root lietotāji nav pakļauti nekādiem noteikumiem, un visiem sistēmas resursiem var piekļūt bez ierobežojumiem.

Šī atļauju pārvaldības mehānisma galvenā daļa ir lietotājs, kas pazīstams arī kā autonomā piekļuves kontrole (DAC).

2.3 MAC

Operētājsistēmā, kas izmanto SELinux, faktori, kas nosaka, vai resursam var piekļūt, ir ne tikai iepriekš minētie faktori, bet arī tas, vai katram procesa veidam ir piekļuve noteikta veida resursiem.

Tādā veidā, pat ja process darbojas kā sakne, ir jānosaka procesa veids un resursu veidi, kuriem ir atļauts piekļūt, pirms izlemt, vai atļaut piekļuvi resursam. Procesa aktīvo telpu var arī saspiest līdz minimumam.

Pat pakalpojuma procesam, kas darbojas kā sakne, parasti ir piekļuve tikai nepieciešamajiem resursiem. Pat ja programma ir neaizsargāta, ietekmes apjoms ir ierobežots ar resursiem, kuriem tai ir atļauts piekļūt. Drošība ir ievērojami palielināta.

Šī atļauju pārvaldības mehānisma galvenais elements ir process, kas pazīstams arī kā obligātā piekļuves kontrole (MAC).

MAC ir sadalīts divos veidos, vienu sauc par kategoriju drošības (MCS) režīmu, bet otru - par daudzlīmeņu drošības (MLS) režīmu.

Tālāk norādītās darbības ir MCS režīmā.

2.4 DAC un MAC salīdzinājums

Šeit ir attēls, lai ilustrētu.



Kā redzat, DAC režīmā, kamēr attiecīgajam direktorijam ir atbilstošā lietotāja atļaujas, tam var piekļūt. MAC režīmā to ierobežo arī direktoriju klāsts, kuriem procesiem ir atļauts piekļūt.

3. SELinux pamatjēdzieni

3.1 Priekšmets

To var pilnībā pielīdzināt procesam.

Piezīme: Lai būtu vieglāk saprast, ja vien nav norādīts citādi, process tiek uzskatīts par galveno tekstu.

3.2 Objekts

Resursi, kuriem piekļūst principāls. Tas var būt faili, direktoriji, porti, ierīces utt.

Piezīme: Lai būtu vieglāk saprast, ja vien nav norādīts citādi, par objektiem tiek uzskatīti šādi dokumenti vai katalogi.

3.3 Politika un noteikumi

Sistēmā parasti ir liels skaits failu un procesu, un, lai ietaupītu laiku un pieskaitāmās izmaksas, mēs parasti selektīvi regulējam tikai noteiktus procesus.

Un kādi procesi ir jāregulē un kā tos kontrolēt, nosaka politika.

Politikā ir vairāki noteikumi. Dažas kārtulas var iespējot vai atspējot pēc vajadzības (turpmāk tekstā - Būla kārtulas).

Noteikumi ir modulāri un paplašināmi. Instalējot jaunu lietojumprogrammu, lietojumprogramma var pievienot kārtulas, pievienojot jaunus moduļus. Lietotāji var arī manuāli pievienot vai atņemt kārtulas.

CentOS 7 sistēmā ir trīs politiku kopas, proti:

1. mērķtiecīgs: kontrolē lielāko daļu tīkla pakalpojumu procesu. Šī ir politika, ko sistēma izmanto pēc noklusējuma (tiek izmantoti visi tālāk norādītie).

2. Minimums: Pamatojoties uz mērķtiecīgiem, tiek regulēti tikai izvēlētie tīkla pakalpojumu procesi. Parasti nē.

3. MLS: daudzlīmeņu drošības aizsardzība. Regulējiet visus procesus. Šī ir visstingrākā politika, un konfigurācija ir ļoti sarežģīta. Parasti to neizmanto, ja vien nav ārkārtīgi augstas drošības prasības.

Politikas var iestatīt /etc/selinux/config.

3.4 Drošības konteksts

Drošības konteksts ir SELinux pamatā.

Drošības konteksts Es to sadalu "procesa drošības kontekstā" un "dokumentu drošības kontekstā".

Procesa drošības konteksts parasti atbilst vairākiem dokumentu drošības kontekstiem.

Tikai tad, ja abu drošības konteksts atbilst, process var piekļūt failam. Viņu korespondenci nosaka politikas noteikumi.

Faila drošības kontekstu nosaka faila izveides vieta un process, kas to izveidoja. Un sistēmai ir noklusējuma vērtību kopa, un lietotāji var iestatīt arī noklusējuma vērtības.

Ir svarīgi ņemt vērā, ka failu pārvietošana nemaina failu drošības kontekstu.

Drošības konteksta struktūra un nozīme

Drošības kontekstam ir četri lauki, kas atdalīti ar koliem. Forma, piemēram: system_u:object_r:admin_home_t:s0.


3.5 SELinux darba režīms

SELinux ir trīs darbības režīmi, proti:

1. Izpilde: piespiedu režīms. SELinux noteikumu pārkāpumi tiks bloķēti un reģistrēti žurnālos.

2. Pieļaujams: pielaides režīms. SELinux noteikumu pārkāpumi tiek reģistrēti tikai žurnālos. Parasti atkļūdošanai.

3. atspējots: izslēdziet SELinux.

SELinux darba režīmu var iestatīt /etc/selinux/config.

Ja vēlaties pārslēgties no atspējota uz izpildes vai pieļaujamo, jums būs jārestartē sistēma. Un otrādi.

Izpildes un pieļaujamos režīmus var ātri pārslēgt, izmantojot komandu Setenforce 1|0.

Ir svarīgi atzīmēt, ka, ja sistēma kādu laiku darbojas ar izslēgtu SELinux, pirmā restartēšana pēc SELinux ieslēgšanas var būt lēnāka. Tā kā sistēmai ir jāizveido drošs konteksts diska failiem (es teicu, ka restartēju apmēram 10 minūtes un domāju, ka tas ir miris...... )。

SELinux žurnāli ir jāreģistrē ar auditd.service palīdzību, lūdzu, neatspējojiet to.

3.6 SELinux darbplūsma

Šeit ir citāts no attēla, bez lieliem paskaidrojumiem.



Piezīme: Iepriekš minētais drošības teksts attiecas uz drošības kontekstu.

4. SELinux pamatdarbības

4.1 Faila vai direktorija drošības konteksta vaicāšana

Komandu pamata lietošana

ls -Z

Lietošanas piemēri

Vaicājiet /etc/hosts drošības kontekstu.

ls -Z /etc/hosts

Izpildes rezultāti

-rw-r--r--. saknes saknes system_u:object_r:net_conf_t:s0 /etc/hosts

4.2 Vaicājiet procesa drošības kontekstu

Komandu pamata lietošana

ps auxZ | grep -v grep | Greps

Lietošanas piemēri

Vaicājiet ar Nginx saistīto procesu drošības kontekstu.

ps auxZ | grep -v grep | Greps Nginx

Izpildes rezultāti

system_u:system_r:httpd_t:s0 sakne 7997 0.0 0.0 122784 2156 ? Ss 14:31 0:00 nginx: master process /usr/sbin/nginx

system_u:system_r:httpd_t:s0 nginx 7998 0.0 0.0 125332 7560 ? S 14:31 0:00 nginx: darba process

4.3 Manuāli modificēt faila vai direktorija drošības kontekstu

Komandu pamata lietošana

CHCON [...]

Opcijas funkcija -u Modificēt drošības konteksta lietotāja lauku -r Modificēt drošības konteksta lomas lauku -t Modificēt drošības konteksta tipa lauku -l Modificēt drošības konteksta līmeņa lauku --reference Modificēt drošības kontekstu atbilstoši norādītajam failam vai direktorijai -R Rekursīvā operācija -h Modificēt mīkstās saites drošības kontekstu (modificēt atbilstošo mīkstās saites failu bez šīs opcijas)

Lietošanas piemēri

Modificējiet testa drošības kontekstu uz aaa_u:bbb_r:ccc_t:s0.

CHCON -u aaa_u -r bbb_r -t ccc_t tests

4.4 Faila vai direktorija drošības konteksta noklusējuma vērtības atjaunošana

Komandu pamata lietošana

RestoreCon [opcijas] [...]

Opcijas funkcija - V Drukas darbības procedūra - R Rekursīvā darbība

Lietošanas piemēri

Pēc dažu tīmekļa failu pievienošanas Nginx servera direktorijai iestatiet pareizo drošības kontekstu šiem jaunajiem failiem.

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

4.5 Vaicājiet Būla noteikumus un to statusu sistēmā

Komandu pamata lietošana

getsebool -a

Tā kā komanda vaicā vai nu visus noteikumus, vai tikai vienu kārtulu, tā parasti vispirms vaicā visas kārtulas un pēc tam filtrē ar grep.

Lietošanas piemēri

Vaicājuma Būla kārtulas, kas saistītas ar httpd.

getsebool -a | grep httpd

Izpildes rezultāti

httpd_anon_write --> izslēgts

httpd_builtin_scripting --> uz

httpd_can_check_spam --> izslēgts

httpd_can_connect_ftp --> izslēgts

#以下省略

4.6 Būla noteikuma pārslēgšana

Komandu pamata lietošana

setsebool [opcija]

Opcijas funkcija -P restartēšana joprojām stājas spēkā

Lietošanas piemēri

Ieslēdziet httpd_anon_write kārtulas.

setsebool -P httpd_anon_write uz

4.7 Direktorija noklusējuma drošības konteksta pievienošana

Komandu pamata lietošana

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

Piezīme: Direktorija vai faila noklusējuma drošības kontekstu var apskatīt, izmantojot komandu semanage fcontext -l kopā ar grep filtrēšanu.

Lietošanas piemēri

Pēc jauna vietnes direktorija /usr/share/nginx/html2 pievienošanas Nginx tam ir jāiestata tāds pats noklusējuma drošības konteksts kā sākotnējam direktorijam.

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

4.8 Pievienojiet portus, kurus atļauj noteikta veida procesi

Komandu pamata lietošana

semanage ports -a -t -p

Piezīme: Dažādiem pakalpojumu veidiem atļautos portu numurus var apskatīt, izmantojot komandu semanage port -l ar grep filtrēšanu.

Lietošanas piemēri

Nginx HTTP pakalpojumiem jāizmanto ports 10080.

semanage ports -a -t http_port_t -p tcp 10080

5. SELinux kļūdu analīze un risināšana

5.1 Izpratne par SELinux žurnāliem

Ja SELinux ir iespējots, dažu pakalpojumu normāla uzvedība tiek uzskatīta par pārkāpumu (gan nosaukumā, gan zemāk esošajās kļūdās).

Šobrīd mums ir jāizmanto SELinux pārkāpumu žurnāli, lai tos analizētu un atrisinātu.

SELinux pārkāpumu žurnāli tiek saglabāti /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=(nav) 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 piešķīrēji=pam_loginuid,pam_ keyinit,pam_limits,pam_systemd acct="root" exe="/usr/sbin/crond" hostname=? addr=? termināls=cron res=panākumi'

...

Fails ir daudz satura, un tas ir sajaukts ar daudziem sistēmas audita žurnāliem, kuriem nav nekāda sakara ar SELinux kļūdām. Mēs izmantosim utilītu sealert, lai palīdzētu veikt analīzi (ja uzvedne nevar atrast komandu, instalējiet setroubleshoot pakotni).

5.2 Analizējiet kļūdas, izmantojot sealert

Komandu pamata lietošana

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

Pēc komandas izpildes sistēmai ir nepieciešams laiks, lai analizētu pārkāpumus žurnālos un sniegtu analīzes ziņojumu.




Iepriekšējo:CentOS7 Apskatiet un izslēdziet ugunsmūri
Nākamo:Apgūstiet HDFS Java API saskarnes piekļuvi
 Saimnieks| Publicēts 22.07.2021 17:17:58 |
SELinux izslēgšana

GetEnforce #查看是否是 atspējots, ja nē, izpildiet tālāk norādīto komandu
vim /etc/selinux/config
Mainiet SELINUX=enenforce uz SELINUX=disabled, saglabājiet un izejiet
 Saimnieks| Publicēts 15.10.2021 13:21:42 |
 Saimnieks| Publicēts 15.10.2021 14:22:40 |
Atspējot mijmaiņas nodalījuma mijmaiņu

 Saimnieks| Publicēts 03.09.2024 14:16:43 |
Aizvērt SELINUX





Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com