Itọsọna Olukọni si SELinux

Itọsọna Olukọni si SELinux

Translation ti awọn article pese sile fun dajudaju omo ile "Aabo Linux"

SELinux tabi Lainos Imudara Aabo jẹ ilana iṣakoso iraye si imudara ti o dagbasoke nipasẹ Ile-iṣẹ Aabo Orilẹ-ede AMẸRIKA (NSA) lati ṣe idiwọ awọn ifọle irira. O ṣe imuse awoṣe iṣakoso iraye si fi agbara mu (tabi dandan) (Iṣakoso Wiwọle ti Gẹẹsi Dandan, MAC) lori oke ti awoṣe lakaye (tabi yiyan) ti o wa tẹlẹ (Iṣakoso Wiwọle Iṣeduro Gẹẹsi, DAC), iyẹn ni, awọn igbanilaaye lati ka, kọ, ṣiṣẹ.

SELinux ni awọn ipo mẹta:

  1. Fifi agbara mu - kiko wiwọle ti o da lori awọn ofin imulo.
  2. Gbigbanilaaye - Titọju akọọlẹ awọn iṣe ti o ṣẹ eto imulo, eyiti yoo jẹ eewọ ni ipo imuse.
  3. alaabo - pipe disabling ti SELinux.

Nipa aiyipada awọn eto wa ninu /etc/selinux/config

Iyipada awọn ipo SELinux

Lati wa ipo lọwọlọwọ, ṣiṣe

$ getenforce

Lati yi ipo pada si igbanilaaye ṣiṣe pipaṣẹ atẹle

$ setenforce 0

tabi, lati yi ipo pada lati permissive on imuse, vypolnite

$ setenforce 1

Ti o ba nilo lati mu SELinux kuro patapata, lẹhinna eyi le ṣee ṣe nikan nipasẹ faili iṣeto ni

$ vi /etc/selinux/config

Lati mu ṣiṣẹ, yi paramita SELINUX pada gẹgẹbi atẹle:

SELINUX=disabled

Ṣiṣeto SELinux

Faili ati ilana kọọkan jẹ aami pẹlu ipo SELinux, eyiti o ni alaye afikun gẹgẹbi olumulo, ipa, oriṣi, ati bẹbẹ lọ. Ti eyi ba jẹ akoko akọkọ ti o mu SELinux ṣiṣẹ, iwọ yoo nilo akọkọ lati tunto ọrọ-ọrọ ati awọn aami. Ilana yiyan awọn aami ati ọrọ-ọrọ ni a mọ bi fifi aami si. Lati bẹrẹ siṣamisi, ninu faili iṣeto ni a yi ipo pada si permissive.

$ vi /etc/selinux/config
SELINUX=permissive

Lẹhin ti ṣeto awọn mode permissive, ṣẹda faili ti o farapamọ ti o ṣofo ninu gbongbo pẹlu orukọ autorelabel

$ touch /.autorelabel

ati atunbere kọmputa naa

$ init 6

Akiyesi: A lo ipo naa permissive fun siṣamisi, niwon awọn lilo ti awọn mode imuse le fa ki eto naa ṣubu lakoko atunbere.

Maṣe yọ ara rẹ lẹnu ti igbasilẹ naa ba di lori faili kan, isamisi gba igba diẹ. Ni kete ti isamisi ti pari ati pe eto rẹ ti bẹrẹ, o le lọ si faili iṣeto ni ki o ṣeto ipo naa imuseati tun ṣiṣe:

$ setenforce 1

Bayi o ti mu SELinux ṣiṣẹ ni aṣeyọri lori kọnputa rẹ.

Mimojuto awọn akọọlẹ

O le ti konge diẹ ninu awọn aṣiṣe nigba isamisi tabi nigba ti eto nṣiṣẹ. Lati ṣayẹwo ti SELinux rẹ ba n ṣiṣẹ ni deede ati pe ti ko ba ṣe idiwọ iwọle si eyikeyi ibudo, ohun elo, ati bẹbẹ lọ, o nilo lati wo awọn akọọlẹ naa. SELinux log wa ninu /var/log/audit/audit.log, ṣugbọn o ko nilo lati ka gbogbo nkan lati wa awọn aṣiṣe. O le lo iṣatunṣe2why lati wa awọn aṣiṣe. Ṣiṣe aṣẹ wọnyi:

$ audit2why < /var/log/audit/audit.log

Bi abajade, iwọ yoo gba atokọ ti awọn aṣiṣe. Ti ko ba si awọn aṣiṣe ninu akọọlẹ, lẹhinna ko si awọn ifiranṣẹ ti yoo han.

Tito leto SELinux Afihan

Eto imulo SELinux jẹ ṣeto awọn ofin ti o ṣakoso ilana aabo SELinux. Ilana kan n ṣalaye eto awọn ofin fun agbegbe kan pato. Bayi a yoo kọ ẹkọ bi a ṣe le tunto awọn eto imulo lati gba iraye si awọn iṣẹ eewọ.

1. Awọn iye oye (awọn iyipada)

Awọn iyipada (booleans) gba ọ laaye lati yi awọn apakan ti eto imulo pada ni akoko asiko, laisi nini lati ṣẹda awọn eto imulo tuntun. Wọn gba ọ laaye lati ṣe awọn ayipada laisi atunbere tabi atunko awọn eto imulo SELinux.

Apeere:
Jẹ ki a sọ pe a fẹ pin ilana ile olumulo nipasẹ kika FTP / kikọ, ati pe a ti pin tẹlẹ, ṣugbọn nigba ti a ba gbiyanju lati wọle si, a ko rii nkankan. Eyi jẹ nitori eto imulo SELinux ṣe idiwọ olupin FTP lati kika ati kikọ si itọsọna ile olumulo. A nilo lati yi eto imulo pada ki olupin FTP le wọle si awọn ilana ile. Jẹ ki a wo boya awọn iyipada eyikeyi wa fun eyi nipa ṣiṣe

$ semanage boolean -l

Aṣẹ yii yoo ṣe atokọ awọn iyipada ti o wa pẹlu ipo lọwọlọwọ wọn (tan tabi pipa) ati apejuwe. O le ṣatunṣe wiwa rẹ nipa fifi grep kun lati wa awọn abajade ftp-nikan:

$ semanage boolean -l | grep ftp

ati awọn ti o yoo ri awọn wọnyi

ftp_home_dir        -> off       Allow ftp to read & write file in user home directory

Yi yipada jẹ alaabo, ki a yoo jeki o pẹlu setsebool $ setsebool ftp_home_dir on

Bayi ftp daemon wa yoo ni anfani lati wọle si itọsọna ile olumulo.
Akiyesi: O tun le gba atokọ ti awọn iyipada ti o wa laisi apejuwe nipasẹ ṣiṣe getsebool -a

2. Awọn aami ati awọn ti o tọ

Eyi ni ọna ti o wọpọ julọ lati ṣe imulo SELinux. Gbogbo faili, folda, ilana ati ibudo ti samisi pẹlu ipo SELinux:

  • Fun awọn faili ati awọn folda, awọn aami ti wa ni ipamọ bi awọn abuda ti o gbooro sii lori eto faili ati pe o le wo pẹlu aṣẹ atẹle:
    $ ls -Z /etc/httpd
  • Fun awọn ilana ati awọn ebute oko oju omi, aami jẹ iṣakoso nipasẹ ekuro, ati pe o le wo awọn aami wọnyi bi atẹle:

Ọna asopọ

$ ps –auxZ | grep httpd

ibudo

$ netstat -anpZ | grep httpd

Apeere:
Bayi jẹ ki a wo apẹẹrẹ kan lati ni oye awọn akole daradara ati ọrọ-ọrọ. Jẹ ki a sọ pe a ni olupin wẹẹbu kan ti, dipo itọsọna kan /var/www/html/ использует /home/dan/html/. SELinux yoo ro pe eyi jẹ irufin eto imulo ati pe iwọ kii yoo ni anfani lati wo awọn oju-iwe wẹẹbu rẹ. Eyi jẹ nitori a ko ṣeto ipo aabo ti o ni nkan ṣe pẹlu awọn faili HTML. Lati wo ipo aabo aiyipada, lo pipaṣẹ atẹle:

$ ls –lz /var/www/html
 -rw-r—r—. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/

Nibi ti a gba httpd_sys_content_t bi o tọ fun awọn faili html. A nilo lati ṣeto ipo aabo yii fun itọsọna wa lọwọlọwọ, eyiti o ni ipo atẹle lọwọlọwọ:

-rw-r—r—. dan dan system_u:object_r:user_home_t:s0 /home/dan/html/

Aṣẹ yiyan lati ṣayẹwo ipo aabo ti faili tabi ilana:

$ semanage fcontext -l | grep '/var/www'

A yoo tun lo semanage lati yi ọrọ-ọrọ pada ni kete ti a ba ti rii ipo aabo to pe. Lati yi ọrọ-ọrọ ti / ile/dan/html pada, ṣiṣe awọn aṣẹ wọnyi:

$ semanage fcontext -a -t httpd_sys_content_t ‘/home/dan/html(/.*)?’
$ semanage fcontext -l | grep ‘/home/dan/html’
/home/dan/html(/.*)? all files system_u:object_r:httpd_sys_content_t:s0
$ restorecon -Rv /home/dan/html

Lẹhin ti o ti yipada ọrọ-ọrọ nipa lilo iṣakoso, aṣẹ imupadabọ yoo gbe ipo aiyipada fun awọn faili ati awọn ilana. Olupin wẹẹbu wa yoo ni anfani lati ka awọn faili lati folda naa /home/dan/htmlnitori ipo aabo fun folda yii ti yipada si httpd_sys_content_t.

3. Ṣẹda agbegbe imulo

Awọn ipo le wa nibiti awọn ọna ti o wa loke ko ṣe iwulo fun ọ ati pe o gba awọn aṣiṣe (avc/kiko) ni audit.log. Nigbati eyi ba ṣẹlẹ, o nilo lati ṣẹda eto imulo agbegbe kan. O le wa gbogbo awọn aṣiṣe nipa lilo audit2why, bi a ti salaye loke.

O le ṣẹda eto imulo agbegbe lati yanju awọn aṣiṣe. Fun apẹẹrẹ, a gba aṣiṣe ti o ni ibatan si httpd (apache) tabi smbd (samba), a grep awọn aṣiṣe ati ṣẹda eto imulo fun wọn:

apache
$ grep httpd_t /var/log/audit/audit.log | audit2allow -M http_policy
samba
$ grep smbd_t /var/log/audit/audit.log | audit2allow -M smb_policy

o ti wa ni http_policy и smb_policy jẹ awọn orukọ ti awọn eto imulo agbegbe ti a ṣẹda. Bayi a nilo lati gbe awọn eto imulo agbegbe ti a ṣẹda sinu eto imulo SELinux lọwọlọwọ. Eyi le ṣee ṣe bi atẹle:

$ semodule –I http_policy.pp
$ semodule –I smb_policy.pp

Awọn ilana agbegbe wa ti ṣe igbasilẹ ati pe a ko gbọdọ gba eyikeyi avc tabi denail mọ ni audit.log.

Eyi ni igbiyanju mi ​​lati ṣe iranlọwọ fun ọ lati loye SELinux. Mo nireti pe lẹhin kika nkan yii iwọ yoo ni itunu diẹ sii pẹlu SELinux.

orisun: www.habr.com

Fi ọrọìwòye kun