Fandikana ny lahatsoratra nomanina ho an'ny mpianatra
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:
- fampiharana - fandavana ny fidirana mifototra amin'ny fitsipika politika.
- milefitra Loatra - fitazonana ny lisitry ny hetsika izay mandika ny politika, izay ho voarara amin'ny fomba fampiharana.
- 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/html
satria 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