He Aratohu Kaimata mo SELinux

He Aratohu Kaimata mo SELinux

Te whakamaoritanga o te tuhinga kua whakaritea mo nga tauira akoranga "Haumarutanga Linux"

Ko te SELinux, ko te Haumarutanga Whakarei Linux ranei he mana whakahaere urunga whakarei ake i hangaia e te US National Security Agency (NSA) hei aukati i nga pokanoa kino. Ka whakatinanahia he tauira mana uru (Mandatory Mandatory Access Control, MAC) ki runga ake o te tauira whai mana (mawhiria ranei) o naianei (English Discretionary Access Control, DAC), ara, whakaaetanga ki te panui, ki te tuhi, ki te mahi.

E toru nga ahuatanga a SELinux:

  1. Te whakatinana — whakakore uru i runga i nga ture kaupapa here.
  2. tuku noa — te pupuri i te raarangi o nga mahi e takahi ana i te kaupapa here, ka aukatia i roto i te tikanga whakakaha.
  3. monokia — te whakakore i te SELinux.

Ma te taunoa kei roto nga tautuhinga /etc/selinux/config

Te huri i nga tikanga SELinux

Hei kimi i te aratau o naianei, rere

$ getenforce

Hei huri i te aratau ki te whakaae ka whakahaere i te whakahau e whai ake nei

$ setenforce 0

ranei, ki te huri i te aratau mai Tuhinga i runga i whakakahoretia, mahia

$ setenforce 1

Mena ka hiahia koe ki te whakakore i te SELinux, ka taea anake tenei ma te konae whirihoranga

$ vi /etc/selinux/config

Hei mono, hurihia te tawhā SELINUX penei:

SELINUX=disabled

Te whakatu SELinux

Ko ia kōnae me ia tukanga ka tohua ki te horopaki SELinux, kei roto etahi atu korero penei i te kaiwhakamahi, te mahi, te momo, me era atu. Mena koinei to wa tuatahi ki te whakahohe i te SELinux, me whirihora i te horopaki me nga tapanga. Ko te tukanga o te tautapa tapanga me te horopaki e mohiotia ana ko te tohu. Hei timata tohu, i roto i te konae whirihoranga ka huri tatou i te aratau ki Tuhinga.

$ vi /etc/selinux/config
SELINUX=permissive

I muri i te tautuhi i te aratau Tuhinga, hanga he konae huna kore i roto i te pakiaka me te ingoa autorelabel

$ touch /.autorelabel

ka whakaara ano i te rorohiko

$ init 6

Tuhipoka: Ka whakamahia e matou te aratau Tuhinga mo te tohu, mai i te whakamahinga o te aratau whakakahoretia ka pakaru te punaha i te wa whakaara ano.

Kaua e māharahara mena ka mau te tikiake ki etahi konae, ka roa te tohu. Kia oti te tohu me te whakaoho i to punaha, ka taea e koe te haere ki te konae whirihoranga me te whakarite i te aratau whakakahoretiame oma ano hoki:

$ setenforce 1

Inaianei kua taea e koe te SELinux i runga i to rorohiko.

Te aro turuki i nga raarangi

I tupono pea koe ki etahi hapa i te wa e tohu ana, i te wa e whakahaere ana te punaha. Ki te tirotiro mena kei te mahi tika to SELinux me te kore e aukati i te uru ki tetahi tauranga, tono, me etahi atu, me titiro koe ki nga raarangi. Kei roto te rangitaki SELinux /var/log/audit/audit.log, engari kaore koe e hiahia ki te panui i nga mea katoa kia kitea nga hapa. Ka taea e koe te whakamahi i te whaipainga audit2why ki te rapu hapa. Whakahaerehia te whakahau e whai ake nei:

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

Ko te mutunga, ka whiwhi koe i te rarangi o nga hapa. Mena karekau he hapa i te raarangi, karekau he karere ka whakaatuhia.

Te whirihora i te Kaupapahere SELinux

Ko te kaupapa here SELinux he huinga ture e whakahaere ana i te tikanga haumarutanga SELinux. Ka tautuhia e te kaupapa here he huinga ture mo tetahi taiao motuhake. Inaianei ka ako tatou me pehea te whirihora kaupapa here kia uru atu ki nga ratonga kua rahuitia.

1. Uara arorau (whakawhiti)

Whakawhiti (booleans) ka taea e koe te huri i nga waahanga o te kaupapa here i te wa whakahaere, me te kore e hanga kaupapa here hou. Ka taea e koe te whakarereke me te kore e whakaara ano i nga kaupapa here SELinux ranei.

Hei tauira:
Me kii e hiahia ana matou ki te tiri i te raarangi kaainga a tetahi kaiwhakamahi ma te FTP panui/tuhi, a kua tohatohahia e matou, engari ka ngana ana matou ki te uru atu, kaore matou e kite. Ko te mea tenei na te kaupapa here SELinux e aukati ana i te tūmau FTP ki te panui me te tuhi ki te raarangi kaainga o te kaiwhakamahi. Me huri tatou i te kaupapa here kia uru atu ai te tūmau FTP ki ngā whaiaronga kāinga. Kia kite tatou mena he huringa mo tenei ma te mahi

$ semanage boolean -l

Ka whakarārangihia e tēnei whakahau ngā whakakā e wātea ana me te āhua o nāianei (kā, whakaweto rānei) me te whakaahuatanga. Ka taea e koe te whakamahine i to rapunga ma te taapiri i te grep kia kitea nga hua ftp-anake:

$ semanage boolean -l | grep ftp

a ka kitea e koe nga mea e whai ake nei

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

Kua monoa tenei pana, no reira ka taea e matou setsebool $ setsebool ftp_home_dir on

Inaianei ka taea e taatau daemon ftp te uru ki te raarangi kaainga o te kaiwhakamahi.
Tuhipoka: Ka taea hoki e koe te tiki rarangi o nga huringa e waatea ana me te kore whakaahuatanga ma te mahi getsebool -a

2. Nga tapanga me te horopaki

Koinei te huarahi tino nui ki te whakatinana i te kaupapa here SELinux. Ko ia kōnae, kōpaki, tukanga me te tauranga kua tohua ki te horopaki SELinux:

  • Mo nga konae me nga kōpaki, ka penapenahia nga tapanga hei huanga roa i runga i te punaha konae ka taea te tiro ma te whakahau e whai ake nei:
    $ ls -Z /etc/httpd
  • Mo nga tukanga me nga tauranga, kei te whakahaeretia te tapanga e te kernel, a ka taea e koe te tiro i enei tapanga penei:

tukanga

$ ps –auxZ | grep httpd

te tauranga

$ netstat -anpZ | grep httpd

Hei tauira:
Inaianei ka titiro tatou ki tetahi tauira kia pai ake te maarama ki nga tapanga me te horopaki. Me kii he tūmau tukutuku kei a matou, kaua he whaiaronga /var/www/html/ использует /home/dan/html/. Ka whakaaro a SELinux he takahi tenei i te kaupapa here a ka kore e taea e koe te tiro ki o wharangi paetukutuku. Ko tenei na te mea kaore matou i tautuhi i te horopaki haumarutanga e hono ana ki nga konae HTML. Hei tiro i te horopaki haumarutanga taunoa, whakamahia te whakahau e whai ake nei:

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

I konei ka tae matou httpd_sys_content_t hei horopaki mo nga konae html. Me whakarite e tatou tenei horopaki haumarutanga mo to tatou whaiaronga o naianei, e whai ake nei te horopaki:

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

He tono rereke hei tirotiro i te horopaki haumarutanga o tetahi konae, whaiaronga ranei:

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

Ka whakamahi hoki matou i te wikige hei huri i te horopaki ina kitea e matou te horopaki haumarutanga tika. Hei huri i te horopaki o /home/dan/html, whakahaeretia nga whakahau e whai ake nei:

$ 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

I muri i te whakarereketanga o te horopaki ma te whakamahi i te semanage, ka utaina e te whakahau restorecon te horopaki taunoa mo nga konae me nga raarangi. Ka taea e to maatau paetukutuku te panui nga konae mai i te kōpaki /home/dan/htmlna te mea kua hurihia te horopaki haumarutanga mo tenei kōpaki ki httpd_sys_content_t.

3. Waihanga kaupapa here a rohe

He waahi karekau he painga ki a koe nga tikanga o runga ake nei, ka hapa koe (avc/whakakahore) i roto i te audit.log. Ka pa ana tenei, me hanga e koe he kaupapa here a rohe. Ka kitea e koe nga hapa katoa ma te whakamahi i te audit2why, pera i te korero i runga ake nei.

Ka taea e koe te hanga kaupapa here a-rohe hei whakatau i nga hapa. Hei tauira, ka puta he hapa e pa ana ki te httpd (apache) me te smbd (samba), ka mauhia e matou nga hapa me te hanga kaupapa here mo ratou:

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

ko te reira http_policy и smb_policy ko nga ingoa o nga kaupapa here a rohe i hanga e matou. Inaianei me utaina enei kaupapa here a rohe ki roto i te kaupapa here SELinux o naianei. Ka taea te mahi penei:

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

Kua tikiakehia a maatau kaupapa here aa-rohe me te kore e whiwhi avc, denail ranei i roto i te audit.log.

Ko taku ngana ki te awhina i a koe kia mohio koe ki a SELinux. Te ti'aturi nei au i muri i te panui i tenei tuhinga ka pai ake to pai ki a SELinux.

Source: will.com

Tāpiri i te kōrero