Linux córais slándála

Ceann de na cúiseanna atá le rath iontach an OS Linux ar ghléasanna leabaithe, soghluaiste agus freastalaithe ná leibhéal measartha ard slándála na heithne, na seirbhísí gaolmhara agus na bhfeidhmchláir. Ach má breathnú níos dlúithe d'ailtireacht an eithne Linux, mar sin ní féidir cearnóg atá freagrach as slándáil mar sin a fháil ann. Cá bhfuil fochóras slándála Linux i bhfolach agus cad atá ann?

Cúlra ar Mhodúil Slándála Linux agus SELinux

Is sraith rialacha agus meicníochtaí rochtana é Linux Feabhsaithe Slándála atá bunaithe ar mhúnlaí rochtana éigeantacha agus ról-bhunaithe chun córais Linux a chosaint ó bhagairtí a d'fhéadfadh a bheith ann agus chun easnaimh an Rialú Rochtana Lánroghnach (DAC), córas slándála traidisiúnta Unix, a cheartú. Ba iad na conraitheoirí Secure Computing Corporation agus MITER a d’fhorbair an tionscadal go díreach, chomh maith le roinnt saotharlanna taighde.

Linux córais slándála
Modúil Slándála Linux

Rinne Linus Torvalds roinnt tuairimí faoi fhorbairtí nua NSA ionas go bhféadfaí iad a áireamh sa phríomh-eithne Linux. Chuir sé síos ar thimpeallacht ghinearálta, le sraith idircheapóirí chun oibríochtaí a rialú le rudaí agus sraith de réimsí cosanta áirithe i struchtúir sonraí eithne chun na tréithe comhfhreagracha a stóráil. Is féidir an timpeallacht seo a úsáid ansin le modúil eithne in-lódáilte chun aon mhúnla slándála atá ag teastáil a chur i bhfeidhm. Chuaigh LSM isteach go hiomlán ar an eithne Linux v2.6 i 2003.

Áirítear i gcreat LSM réimsí cosanta i struchtúir sonraí agus glaonna chuig feidhmeanna idirghabhála ag pointí ríthábhachtacha sa chód eithne chun iad a láimhseáil agus chun rialú rochtana a dhéanamh. Cuireann sé feidhmiúlacht leis freisin chun modúil slándála a chlárú. Tá liosta de na modúil ghníomhacha ar an gcóras sa chomhéadan /sys/kernel/security/lsm. Stóráiltear crúcaí LSM i liostaí a dtugtar orthu san ord atá sonraithe in CONFIG_LSM. Tá doiciméadú mionsonraithe ar na crúcaí san áireamh sa chomhad ceanntásca include/linux/lsm_hooks.h.

D'fhág fochóras LSM go bhféadfaí comhtháthú iomlán SELinux a chomhlánú leis an leagan céanna den eithne cobhsaí Linux v2.6. Beagnach láithreach, tháinig SELinux ar an gcaighdeán de facto do thimpeallacht shlán Linux agus bhí sé san áireamh sna dáiltí is coitianta: RedHat Enterprise Linux, Fedora, Debian, Ubuntu.

Gluais SELinux

  • Féiniúlacht — Níl an t-úsáideoir SELinux mar an gcéanna leis an ngnáthaitheantas úsáideora Unix/Linux; is féidir leo a bheith ann ar an gcóras céanna, ach tá siad go hiomlán difriúil go bunúsach. Is féidir le gach cuntas caighdeánach Linux freagairt do cheann amháin nó níos mó in SELinux. Tá aitheantas SELinux mar chuid den chomhthéacs slándála foriomlán, a chinneann na fearainn ar féidir leat agus nach féidir leat a bheith páirteach iontu.
  • Fearainn - In SELinux, is ionann fearann ​​agus comhthéacs forghníomhaithe ábhair, i.e. próiseas. Cinneann an fearann ​​go díreach an rochtain atá ag próiseas. Is éard atá i bhfearann ​​go bunúsach ná liosta de na rudaí is féidir le próisis a dhéanamh nó cad is féidir le próiseas a dhéanamh le cineálacha éagsúla. Seo a leanas roinnt samplaí d’fhearainn atá sysadm_t le haghaidh riarachán córais, agus user_t ar gnáthfhearann ​​úsáideora neamhphribhléid é. Ritheann an córas init san fhearann ​​init_t, agus ritheann an próiseas ainmnithe san fhearann ​​ainmnithe_t.
  • Rólanna — Rud a fheidhmíonn mar idirghabhálaí idir na fearainn agus úsáideoirí SELinux. Cinneann róil na fearainn ar féidir le húsáideoir a bheith ina mbaill dóibh agus na cineálacha réad ar féidir leo rochtain a fháil orthu. Cuireann an mheicníocht rialaithe rochtana seo cosc ​​ar bhagairt ionsaithe um ghéarú pribhléid. Scríobhtar róil isteach sa tsamhail slándála um Rialú Rochtana Bunaithe ar Ról (RBAC) a úsáidtear in SELinux.
  • Cineálacha — Aitreabúid liosta Forfheidhmithe Cineáil a shanntar do réad agus a chinneann cé atá in ann rochtain a fháil air. Cosúil leis an sainmhíniú fearainn, ach amháin go mbaineann an fearann ​​sin le próiseas, agus baineann an cineál le rudaí mar eolairí, comhaid, soicéid, etc.
  • Ábhair agus oibiachtaí - Is ábhair iad próisis agus reáchtáiltear iad i gcomhthéacs sonrach, nó i bhfearann ​​​​slándála. Acmhainní córais oibriúcháin: is éard atá i gcomhaid, eolairí, soicéid, etc., rudaí a sanntar cineál áirithe dóibh, i bhfocail eile, leibhéal príobháideachta.
  • Beartais SELinux — Úsáideann SELinux beartais éagsúla chun an córas a chosaint. Sainmhíníonn beartas SELinux rochtain úsáideoirí ar róil, róil chuig fearainn, agus fearainn ar chineálacha. Ar dtús, tá an t-úsáideoir údaraithe chun ról a fháil, ansin tá an ról údaraithe chun rochtain a fháil ar fhearainn. Ar deireadh, ní féidir le fearann ​​ach rochtain a fháil ar chineálacha áirithe réad.

ailtireacht LSM agus SELinux

In ainneoin an ainm, ní modúil Linux in-ualach iad LSManna de ghnáth. Mar sin féin, cosúil le SELinux, tá sé comhtháite go díreach isteach san eithne. Teastaíonn tiomsú eithne nua chun aon athrú ar an gcód foinse LSM. Ní mór an rogha chomhfhreagrach a chumasú sna socruithe eithne, nó ní dhéanfar an cód LSM a ghníomhachtú tar éis tosaithe. Ach fiú sa chás seo, is féidir é a chumasú leis an rogha bootloader OS.

Linux córais slándála
Stack seiceála LSM

Tá LSM feistithe le crúcaí i bhfeidhmeanna lárnacha eithne is féidir a bheith ábhartha le haghaidh seiceálacha. Ceann de phríomhghnéithe LSManna ná go bhfuil siad cruachta. Mar sin, déantar na seiceálacha caighdeánacha fós, agus ní chuireann gach ciseal LSM ach rialuithe agus rialuithe breise leis. Ciallaíonn sé seo nach féidir an cosc ​​a chur ar ais. Léirítear é seo san fhigiúr; má theipeann ar thoradh na ngnáthsheiceálacha DAC, ansin ní shroichfidh an t-ábhar na crúcaí LSM fiú.

Glacann SELinux ailtireacht slándála Flask de chóras oibriúcháin taighde Fluke, go háirithe prionsabal na pribhléide is lú. Is é croílár an choincheapa seo, mar a thugann an t-ainm le fios, ná na cearta sin a thabhairt don úsáideoir nó a phróiseáil ach na cearta sin is gá chun na gníomhartha atá beartaithe a dhéanamh. Cuirtear an prionsabal seo i bhfeidhm ag baint úsáide as clóscríobh rochtana éigean, agus mar sin tá rialú rochtana i SELinux bunaithe ar an tsamhail fearainn => cineál.

A bhuí le clóscríobh rochtana éigean, tá i bhfad níos mó cumais rialaithe rochtana ag SELinux ná an tsamhail traidisiúnta DAC a úsáidtear i gcórais oibriúcháin Unix/Linux. Mar shampla, is féidir leat teorainn a chur leis an uimhir chalafoirt líonra a nascfaidh an freastalaí ftp leis, cead a thabhairt comhaid a scríobh agus a athrú i bhfillteán áirithe, ach gan iad a scriosadh.

Is iad príomhchodanna SELinux:

  • Freastalaí Forfheidhmithe Beartais — An príomh-mheicníocht chun rialú rochtana a eagrú.
  • Bunachar sonraí polasaí slándála córais.
  • Idirghníomhaíocht leis an idircheapóir imeachta LSM.
  • Selinuxfs - Pseudo-FS, mar an gcéanna le / proc agus suite i /sys/fs/selinux. Daonra go dinimiciúil ag an eithne Linux ag am rite agus ina bhfuil comhaid ina bhfuil faisnéis stádas SELinux.
  • Rochtain Taisce Veicteoir — Meicníocht chúnta chun táirgiúlacht a mhéadú.

Linux córais slándála
Conas a oibríonn SELinux

Oibríonn sé go léir mar seo.

  1. Déanann ábhar áirithe, i dtéarmaí SELinux, gníomh ceadaithe ar rud tar éis seiceáil DAC, mar a thaispeántar sa phictiúr uachtarach. Téann an t-iarratas seo chun oibríocht a dhéanamh chuig an idircheapóir teagmhais LSM.
  2. Ón áit sin, cuirtear an t-iarratas, mar aon leis an gcomhthéacs slándála ábhair agus réad, ar aghaidh chuig modúl SELinux Abstraction and Hook Logic, atá freagrach as idirghníomhú leis an LSM.
  3. Is é an t-údarás cinnteoireachta ar rochtain ábhar ar rud ná an Freastalaí Forfheidhmithe Beartais agus faigheann sé sonraí ó SELinux AnHL.
  4. Chun cinntí a dhéanamh maidir le rochtain nó séanadh, casann Freastalaí Forfheidhmithe Beartais chuig an bhfochóras taisce Veicteoir Rochtana (AVC) do na rialacha is mó a úsáidtear.
  5. Mura bhfaightear réiteach don riail chomhfhreagrach sa taisce, cuirtear an t-iarratas ar aghaidh chuig bunachar sonraí an bheartais slándála.
  6. Seoltar toradh an chuardaigh ón mbunachar sonraí agus AVC ar ais chuig an Freastalaí Forfheidhmithe Beartais.
  7. Má thagann an polasaí aimsithe leis an ngníomh iarrtha, ceadaítear an oibríocht. Seachas sin, tá an oibríocht toirmiscthe.

Socruithe SELinux a bhainistiú

Feidhmíonn SELinux i gceann de thrí mhodh:

  • Forfheidhmiú - Cloí go docht le beartais slándála.
  • Ceadaithe - Ceadaítear srianta a shárú; déantar nóta comhfhreagrach sa dialann.
  • Daoine faoi Mhíchumas - Níl na beartais slándála i bhfeidhm.

Is féidir leat a fheiceáil cén modh atá SELinux leis an ordú seo a leanas.

[admin@server ~]$ getenforce
Permissive

Athrú ar an modh roimh rebooting, mar shampla, é a shocrú le forfheidhmiú, nó 1. Freagraíonn an paraiméadar ceadaitheach leis an gcód uimhriúil 0.

[admin@server ~]$ setenfoce enforcing
[admin@server ~]$ setenfoce 1 #то же самое

Is féidir leat an mód a athrú freisin ach an comhad a chur in eagar:

[admin@server ~]$ cat /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.

SELINUXTYPE=sprioc

Is é an difríocht le setenfoce ná nuair a thosaíonn an córas oibriúcháin, socrófar an modh SELinux de réir luach paraiméadar SELINUX sa chomhad cumraíochta. Ina theannta sin, ní thagann athruithe ar fhorfheidhmiú <=> díchumasaithe i bhfeidhm ach amháin trí eagarthóireacht a dhéanamh ar an gcomhad /etc/selinux/config agus tar éis atosaigh.

Féach ar thuairisc ghairid stádais:

[admin@server ~]$ sestatus

SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: permissive
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 31

Chun tréithe SELinux a fheiceáil, úsáideann roinnt fóntais chaighdeánacha an paraiméadar -Z.

[admin@server ~]$ ls -lZ /var/log/httpd/
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 access_log
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 access_log-20200920
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 access_log-20200927
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 access_log-20201004
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 access_log-20201011
[admin@server ~]$ ps -u apache -Z
LABEL                             PID TTY          TIME CMD
system_u:system_r:httpd_t:s0     2914 ?        00:00:04 httpd
system_u:system_r:httpd_t:s0     2915 ?        00:00:00 httpd
system_u:system_r:httpd_t:s0     2916 ?        00:00:00 httpd
system_u:system_r:httpd_t:s0     2917 ?        00:00:00 httpd
...
system_u:system_r:httpd_t:s0     2918 ?        00:00:00 httpd

I gcomparáid le gnáth-aschur ls -l, tá roinnt réimsí breise san fhormáid seo a leanas:

<user>:<role>:<type>:<level>

Seasann an réimse deireanach rud éigin cosúil le haicmiú slándála agus tá meascán de dhá eilimint ann:

  • s0 - tábhacht, scríofa freisin mar eatramh ísealleibhéil-ardleibhéil
  • c0, c1… c1023 - catagóir.

Cumraíocht rochtana a athrú

Bain úsáid as semodule chun modúil SELinux a luchtú, a chur leis agus a bhaint.

[admin@server ~]$ semodule -l |wc -l #список всех модулей
408
[admin@server ~]$ semodule -e abrt #enable - активировать модуль
[admin@server ~]$ semodule -d accountsd #disable - отключить модуль
[admin@server ~]$ semodule -r avahi #remove - удалить модуль

An chéad fhoireann logáil isteach semanage nascann an t-úsáideoir SELinux le húsáideoir an chórais oibriúcháin, taispeánann an dara ceann liosta. Ar deireadh, baineann an t-ordú deireanach leis an lasc -r mapáil úsáideoirí SELinux chuig cuntais OS. Tá míniú ar an chomhréir do luachanna Raon MLS/MCS sa chuid roimhe seo.

[admin@server ~]$ semanage login -a -s user_u karol
[admin@server ~]$ semanage login -l

Login Name SELinux User MLS/MCS Range Service
__default__ unconfined_u s0-s0:c0.c1023 *
root unconfined_u s0-s0:c0.c1023 *
system_u system_u s0-s0:c0.c1023 *
[admin@server ~]$ semanage login -d karol

Foireann úsáideoir semanage a úsáidtear chun mapálacha idir úsáideoirí SELinux agus róil a bhainistiú.

[admin@server ~]$ semanage user -l
                Labeling   MLS/       MLS/                          
SELinux User    Prefix     MCS Level  MCS Range             SELinux Roles
guest_u         user       s0         s0                    guest_r
staff_u         staff      s0         s0-s0:c0.c1023        staff_r sysadm_r
...
user_u          user       s0         s0                    user_r
xguest_u        user       s0         s0                    xguest_r
[admin@server ~]$ semanage user -a -R 'staff_r user_r'
[admin@server ~]$ semanage user -d test_u

Paraiméadair ordaithe:

  • -a cuir iontráil shaincheaptha mapála róil;
  • -l liosta na n-úsáideoirí agus na róil a mheaitseáil;
  • -d scrios iontráil mapála róil úsáideora;
  • -R liosta de na róil a ghabhann leis an úsáideoir;

Comhaid, Calafoirt agus Luachanna Boole

Soláthraíonn gach modúl SELinux sraith rialacha clibeála comhaid, ach is féidir leat do rialacha féin a chur leis freisin más gá. Mar shampla, ba mhaith linn go mbeadh cearta rochtana ag an bhfreastalaí gréasáin ar an bhfillteán / srv/www.

[admin@server ~]$ semanage fcontext -a -t httpd_sys_content_t "/srv/www(/.*)?
[admin@server ~]$ restorecon -R /srv/www/

Cláraíonn an chéad ordú rialacha marcála nua, agus athshocraíonn an dara ceann, nó leagann sé amach, na cineálacha comhaid de réir na rialacha reatha.

Mar an gcéanna, déantar calafoirt TCP/UDP a mharcáil ar bhealach nach féidir ach leis na seirbhísí cuí éisteacht leo. Mar shampla, chun go n-éistfidh an freastalaí gréasáin ar phort 8080, ní mór duit an t-ordú a rith.

[admin@server ~]$ semanage port -m -t http_port_t -p tcp 8080

Tá paraiméadair ag líon suntasach de mhodúil SELinux ar féidir leo luachanna Boole a ghlacadh. Is féidir liosta iomlán na bparaiméadar den sórt sin a fheiceáil ag baint úsáide as getsebool -a. Is féidir leat luachanna boolean a athrú trí úsáid a bhaint as setsebool.

[admin@server ~]$ getsebool httpd_enable_cgi
httpd_enable_cgi --> on
[admin@server ~]$ setsebool -P httpd_enable_cgi off
[admin@server ~]$ getsebool httpd_enable_cgi
httpd_enable_homedirs --> off

Ceardlann, faigh rochtain ar an gcomhéadan Pgadmin-gréasáin

Breathnaímid ar shampla praiticiúil: chuireamar pgadmin7.6-web isteach ar RHEL 4 chun bunachar sonraí PostgreSQL a riar. Shiúil muid beagán rompu le socruithe pg_hba.conf, postgresql.conf agus config_local.py, socraigh ceadanna fillteán, shuiteáil na modúil Python atá ar iarraidh ó pip. Tá gach rud réidh, táimid ag seoladh agus a fháil Earráid 500 Freastalaí Inmheánach.

Linux córais slándála

Tosaímid leis na gnáthamhrastach, ag seiceáil /var/log/httpd/error_log. Tá roinnt iontrálacha suimiúla ann.

[timestamp] [core:notice] [pid 23689] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0
...
[timestamp] [wsgi:error] [pid 23690] [Errno 13] Permission denied: '/var/lib/pgadmin'
[timestamp] [wsgi:error] [pid 23690] [timestamp] [wsgi:error] [pid 23690] HINT : You may need to manually set the permissions on
[timestamp] [wsgi:error] [pid 23690] /var/lib/pgadmin to allow apache to write to it.

Ag an bpointe seo, beidh an chuid is mó de riarthóirí Linux templaithe go láidir setencorce 0 a rith, agus sin deireadh leis. Frankly, rinne mé go díreach an chéad uair. Tá sé seo ar ndóigh freisin ar bhealach amach, ach i bhfad ó na cinn is fearr.

In ainneoin na ndearaí deacra, is féidir le SELinux a bheith éasca le húsáid. Suiteáil an pacáiste settroubleshoot agus féach ar logáil an chórais.

[admin@server ~]$ yum install setroubleshoot
[admin@server ~]$ journalctl -b -0
[admin@server ~]$ service restart auditd

Tabhair faoi deara le do thoil nach mór an tseirbhís iniúchta a atosú ar an mbealach seo, agus gan systemctl a úsáid, in ainneoin go bhfuil systemd san OS. I logáil an chórais léireofar ní amháin ar an bhfíric na blocála, ach freisin ar an gcúis agus bealach chun an cosc ​​a shárú.

Linux córais slándála

Déanaimid na horduithe seo a chomhlíonadh:

[admin@server ~]$ setsebool -P httpd_can_network_connect 1
[admin@server ~]$ setsebool -P httpd_can_network_connect_db 1

Déanaimid seiceáil ar rochtain ar an leathanach gréasáin pgadmin4-gréasáin, oibríonn gach rud.

Linux córais slándála

Linux córais slándála

Foinse: will.com

Add a comment