TorolΓ lana ho an'ny vao manomboka amin'ny SELinux

TorolΓ lana ho an'ny vao manomboka amin'ny SELinux

Fandikana ny lahatsoratra nomanina ho an'ny mpianatra "Linux Security"

SELinux na Security Enhanced Linux dia rafitra fanaraha-maso ny fidirana novolavolain'ny US National Security Agency (NSA) mba hisorohana ny fidiran'ny ratsy. Mampihatra modely fanaraha-maso fidirana an-tery (na tsy maintsy atao) (Anglisy Mandatory Access Control, MAC) eo an-tampon'ny modely misy discretionary (na mifantina) (English Discretionary Access Control, DAC), izany hoe, fahazoan-dΓ lana hamaky, hanoratra, hanatanteraka.

SELinux dia manana fomba telo:

  1. fampiharana - fandavana ny fidirana mifototra amin'ny fitsipika politika.
  2. milefitra Loatra - fitazonana ny lisitry ny hetsika izay mandika ny politika, izay ho voarara amin'ny fomba fampiharana.
  3. Disabled - fanafoanana tanteraka ny SELinux.

Amin'ny alΓ lan'ny default dia ao ny fikandrana /etc/selinux/config

Fanovana ny maody SELinux

Mba hahitana ny fomba ankehitriny, mihazakazaka

$ getenforce

Raha hanova ny maody ho permissive dia araho ity baiko manaraka ity

$ setenforce 0

na, hanova ny fomba avy milefitra amin'ny fampiharana, manatanteraka

$ setenforce 1

Raha mila manaisotra tanteraka ny SELinux ianao, dia tsy azo atao amin'ny alΓ lan'ny rakitra fikirakirana izany

$ vi /etc/selinux/config

Mba hanesorana azy dia ovay toy izao manaraka izao ny parameter SELINUX:

SELINUX=disabled

Fametrahana SELinux

Ny rakitra sy ny dingana tsirairay dia voamarika amin'ny contexte SELinux, izay misy fampahalalana fanampiny toy ny mpampiasa, anjara, karazana, sns. Raha vao sambany ianao no mamela ny SELinux, dia mila manamboatra ny contexte sy labels aloha ianao. Ny dingan'ny fanomezana marika sy contexte dia fantatra amin'ny anarana hoe tagging. Mba hanombohana ny marika, ao amin'ny fisie fichier dia manova ny fomba ho milefitra.

$ vi /etc/selinux/config
SELINUX=permissive

Rehefa avy nametraka ny fomba milefitra, mamorona rakitra miafina foana ao amin'ny fakany miaraka amin'ny anarana autorelabel

$ touch /.autorelabel

ary avereno indray ny solosaina

$ init 6

Fanamarihana: Mampiasa ny fomba izahay milefitra ho an'ny marika, hatramin'ny fampiasana ny fomba fampiharana mety hahatonga ny rafitra hianjera mandritra ny reboot.

Aza manahy raha mijanona amin'ny rakitra sasany ny fampidinana, maka fotoana kely ny fanamarihany. Raha vantany vao vita ny marika ary voaroaka ny rafitrao dia afaka mandeha any amin'ny fisie fanamafisana ianao ary mametraka ny fomba fampiharanaary mihazakazaka koa:

$ setenforce 1

Efa nahavita soa aman-tsara ny SELinux amin'ny solosainao ianao.

Fanaraha-maso ny logs

Mety sendra lesoka vitsivitsy ianao nandritra ny fanamarihan'ny marika na teo am-pandehanana ny rafitra. Raha te hanamarina raha miasa tsara ny SELinux-nao ary raha tsy manakana ny fidirana amin'ny seranana, fampiharana, sns., dia mila mijery ny logs ianao. Ny log SELinux dia hita ao /var/log/audit/audit.log, fa tsy mila mamaky ny zava-drehetra ianao vao mahita lesoka. Azonao atao ny mampiasa ny fampiasa audit2why hahitana lesoka. Alefaso ity baiko manaraka ity:

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

Vokatr'izany dia hahazo lisitry ny fahadisoana ianao. Raha tsy nisy lesoka tao amin'ny log dia tsy hisy hafatra haseho.

Fametrahana Politika SELinux

Ny politikan'ny SELinux dia fitsipika mifehy ny rafitra fiarovana SELinux. Ny politika dia mamaritra fitsipika maromaro ho an'ny tontolo iray manokana. Hianarantsika izao ny fomba fanamboarana ny politika ahafahana miditra amin'ny serivisy voarara.

1. Soatoavina lojika (switch)

Ny switch (booleans) dia ahafahanao manova ampahany amin'ny politika iray amin'ny fotoana fampandehanana, tsy mila mamorona politika vaovao. Izy ireo dia mamela anao hanao fanovana tsy misy rebooting na recompile ny politika SELinux.

ohatra
Andeha hatao hoe te hizara ny lahatahiry an-tranon'ny mpampiasa iray amin'ny alΓ lan'ny FTP mamaky/manoratra, ary efa nozarainay izany, fa rehefa manandrana miditra ao izahay dia tsy mahita na inona na inona. Izany dia satria ny politikan'ny SELinux dia manakana ny mpizara FTP tsy hamaky sy hanoratra amin'ny lahatahirin'ny mpampiasa. Mila manova ny politika isika mba hahafahan'ny mpizara FTP miditra amin'ny lahatahiry an-trano. Andeha hojerentsika raha misy switch amin'izany amin'ny fanaovana izany

$ semanage boolean -l

Ity baiko ity dia hanisy lisitr'ireo switch misy miaraka amin'ny toetrany ankehitriny (eo na tsy mandeha) sy ny famaritana. Azonao atao ny manatsara ny fikarohanao amin'ny fampidirana grep hahitana valiny ftp-only:

$ semanage boolean -l | grep ftp

ary ho hitanao ireto manaraka ireto

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

Ity switch ity dia kilemaina, noho izany dia ataonay izany setsebool $ setsebool ftp_home_dir on

Ankehitriny ny daemon ftp dia afaka miditra amin'ny lahatahiry an-tranon'ny mpampiasa.
Fanamarihana: Azonao atao ihany koa ny mahazo lisitry ny switch misy tsy misy famaritana amin'ny fanaovana getsebool -a

2. Etikety sy teny manodidina

Ity no fomba mahazatra indrindra amin'ny fampiharana ny politika SELinux. Ny rakitra, lahatahiry, dingana ary seranana rehetra dia voamarika amin'ny contexte SELinux:

  • Ho an'ny rakitra sy ny lahatahiry, ny labels dia voatahiry ho toy ny toetra miitatra amin'ny rafi-drakitra ary azo jerena amin'ny baiko manaraka:
    $ ls -Z /etc/httpd
  • Ho an'ny dingana sy seranan-tsambo, ny fametahana dia tantanin'ny kernel, ary azonao jerena ireto labels ireto toy izao manaraka izao:

dingana

$ ps –auxZ | grep httpd

Port

$ netstat -anpZ | grep httpd

ohatra
Andeha isika hijery ohatra iray mba hahatakarana bebe kokoa ny etikety sy ny contexte. Andeha atao hoe manana mpizara tranonkala isika fa tsy lahatahiry /var/www/html/ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ /home/dan/html/. Heverin'ny SELinux ho fanitsakitsahana ny politika izany ary tsy ho afaka hijery ny pejinao ianao. Izany dia satria tsy nametraka ny tontolon'ny fiarovana mifandraika amin'ny rakitra HTML izahay. Raha hijery ny contexte fiarovana default dia ampiasao ity baiko manaraka ity:

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

Eto izahay dia nahazo httpd_sys_content_t ho contexte ho an'ny rakitra html. Mila mametraka an'ity contexte fiarovana ity ho an'ny lahatahiry ankehitriny isika, izay manana izao contexte manaraka izao:

-rw-rβ€”rβ€”. dan dan system_u:object_r:user_home_t:s0 /home/dan/html/

Baiko hafa hijerena ny tontolon'ny fiarovana amin'ny rakitra na lahatahiry:

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

Hampiasa semanage koa izahay hanova ny contexte rehefa hitanay ny contexte fiarovana marina. Raha hanova ny tontolon'ny /home/dan/html dia araho ireto baiko manaraka ireto:

$ 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

Aorian'ny fanovana ny contexte amin'ny fampiasana semanage, ny baiko restorecon dia hampiditra ny contexte default ho an'ny rakitra sy ny lahatahiry. Ho afaka mamaky rakitra avy amin'ny lahatahiry izao ny mpizara tranonkalantsika /home/dan/htmlsatria ny tontolon'ny fiarovana an'ity lahatahiry ity dia niova ho httpd_sys_content_t.

3. Mamorona politika eo an-toerana

Mety misy toe-javatra izay tsy mahasoa anao ireo fomba voalaza etsy ambony ireo ary misy hadisoana (avc/denial) ao amin'ny audit.log. Rehefa mitranga izany dia mila mamorona politika eo an-toerana ianao. Azonao atao ny mahita ny lesoka rehetra amin'ny fampiasana audit2why, araka ny voalaza etsy ambony.

Afaka mamorona politika eo an-toerana ianao hamahana ny lesoka. Ohatra, mahazo lesoka mifandraika amin'ny httpd (apache) na smbd (samba) isika, mametaka ireo lesoka ary mamorona politika ho azy ireo:

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

izany http_policy ΠΈ smb_policy dia ny anaran'ny politika eo an-toerana izay noforoninay. Ankehitriny dia mila mampiditra ireo politika noforonina eo an-toerana ireo amin'ny politika SELinux ankehitriny isika. Izany dia azo atao toy izao manaraka izao:

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

Ny politikantsika eo an-toerana dia nalaina ary tsy tokony handray avc na denail intsony ao amin'ny audit.log.

Ity no ezahako manampy anao hahatakatra ny SELinux. Manantena aho fa rehefa avy mamaky ity lahatsoratra ity ianao dia hahatsapa ho mahazo aina kokoa amin'ny SELinux.

Source: www.habr.com

Add a comment