Hemen Linux-en bizitzari, unibertsoari eta guztiari buruzko galdera garrantzitsuen erantzunak jasoko dituzu segurtasun hobetuarekin.
"Gauzak beti diruditena ez direla dioen egia garrantzitsua jakina da..."
-Douglas Adams, Autoestopistaren gida Galaxia
Segurtasuna. Fidagarritasuna handitu. Korrespondentzia. Politika. Four Horsemen of the Apocalypse sistemako administratzailea. Gure eguneroko zereginez gain -monitorizazioa, babeskopia, ezarpena, konfigurazioa, eguneratzea, etab.- gure sistemen segurtasunaz ere arduratzen gara. Hirugarrenen hornitzaileak segurtasun hobetua desgaitzea gomendatzen duten sistemak ere. Lan bat bezala sentitzen da Ethan Hunt "Mission: Impossible"-tik.
Dilema honen aurrean, sistema-administratzaile batzuek hartzea erabakitzen dute pilula urdina, uste baitute ez dutela inoiz jakingo bizitzaren, unibertsoaren eta horren guztiaren galdera handiaren erantzuna. Eta denok dakigunez, erantzun hori 42 da.
The Hitchhiker's Guide to the Galaxy-ren izpirituan, hona hemen kontrolari eta erabilerari buruzko galdera garrantzitsuen 42 erantzun. SELinux zure sistemetan.
1. SELinux behartutako sarbidea kontrolatzeko sistema bat da, hau da, prozesu bakoitzak etiketa bat dauka. Fitxategi, direktorio eta sistemako objektu bakoitzak etiketak ere baditu. Politika-arauek etiketatutako prozesuen eta objektuen arteko sarbidea kontrolatzen dute. Nukleoak arau hauek betetzen ditu.
2. Bi kontzeptu garrantzitsuenak hauek dira: Etiketatua — markaketak (fitxategiak, prozesuak, atakak, etab.) eta Mota betearaztea (moten arabera prozesuak elkarrengandik isolatzen dituena).
3. Etiketa formatu zuzena user:role:type:level (aukerakoa).
4. Maila anitzeko segurtasuna eskaintzearen helburua (Maila anitzeko segurtasuna - MLS) prozesuak (domeinuak) kudeatzea da, erabiliko dituzten datuen segurtasun mailaren arabera. Adibidez, prozesu sekretu batek ezin ditu sekretu nagusiak irakurri.
5. Kategoria anitzeko segurtasuna bermatzea (Kategoria anitzeko segurtasuna - MCS) antzeko prozesuak elkarrengandik babesten ditu (adibidez, makina birtualak, OpenShift motorrak, SELinux sandboxak, edukiontziak, etab.).
Testuinguruan exekutatzen ari den prozesua httpd_t, etiketatutako objektu batekin elkarreragin dezake httpd_something_t.
13. Komando askok argumentu bat onartzen dute -Z testuingurua ikusteko, sortzeko eta aldatzeko:
ls -Z
id -Z
ps -Z
netstat -Z
cp -Z
mkdir -Z
Testuinguruak fitxategiak beren direktorio nagusiaren testuinguruan oinarrituta sortzen direnean ezartzen dira (salbuespenak salbuespen). RPM-ek testuinguruak ezar ditzakete instalazioan bezala.
14. SELinux akatsen lau kausa nagusi daude, xehetasun gehiagorekin deskribatzen direnak beheko 15-21 puntuetan:
Etiketatze arazoak
SELinuxek jakin behar duen zerbaitengatik
Errore bat SELinux politika/aplikazioan
Zure informazioa arriskuan egon daiteke
15.Etiketatze arazoa: zure fitxategiak barruan badaude /srv/myweb gaizki markatuta daude, sarbidea ukatu egin daiteke. Hona hemen hau konpontzeko modu batzuk:
Etiketa ezagutzen baduzu: # semanage fcontext -a -t httpd_sys_content_t '/srv/myweb(/.*)?'
Marka baliokideak dituen fitxategi bat ezagutzen baduzu: # semanage fcontext -a -e /srv/myweb /var/www
Testuingurua berreskuratzea (bi kasuetarako): # restorecon -vR /srv/myweb
16.Etiketatze arazoa: fitxategia kopiatu beharrean mugitzen baduzu, fitxategiak jatorrizko testuingurua mantenduko du. Arazo hau konpontzeko:
Aldatu testuinguruaren komandoa etiketarekin: # chcon -t httpd_system_content_t /var/www/html/index.html
Aldatu testuinguruaren komandoa estekaren etiketarekin: # chcon --reference /var/www/html/ /var/www/html/index.html
Berrezarri testuingurua (bi kasuetarako): # restorecon -vR /var/www/html/
17. Bada SELinux ezagutu behar duzuHTTPD 8585 atakan entzuten ari dela, esan SELinux-i:
# semanage port -a -t http_port_t -p tcp 8585
18.SELinux ezagutu behar duzu SELinux politikaren zatiak exekuzio garaian aldatzeko aukera ematen duten balio boolearrak SELinux politika gainidatzi gabe jakin gabe. Adibidez, httpd-ek mezu elektronikoa bidaltzea nahi baduzu, idatzi: # setsebool -P httpd_can_sendmail 1
19.SELinux ezagutu behar duzu SELinux ezarpenak gaitzeko/desgaitzeko balio logikoak:
Balio boolear guztiak ikusteko: # getsebool -a
Bakoitzaren deskribapena ikusteko: # semanage boolean -l
Balio boolearra ezartzeko: # setsebool [_boolean_] [1|0]
Instalazio iraunkor bat izateko, gehitu -P. Adibidez: # setsebool httpd_enable_ftp_server 1 -P
20. SELinux politikak/aplikazioek akatsak izan ditzakete, besteak beste:
Ezohiko kode-bideak
Konfigurazioak
stdout birbideratzen
Fitxategien deskribatzailea filtrazioak
Memoria exekutagarria
Gaizki eraikitako liburutegiak
Ireki txartelak (ez bidali txostenik Bugzillari; Bugzillak ez du SLArik).
21.Zure informazioa arriskuan egon daitekedomeinu mugatuak badituzu saiatzen ari zarenean:
25. SELinux errore bat gertatzen bada, erabili erregistroa setroubleshoot hainbat irtenbide posible eskainiz.
Adibidez, tik journalctl:
Jun 14 19:41:07 web1 setroubleshoot: SELinux is preventing httpd from getattr access on the file /var/www/html/index.html. For complete message run: sealert -l 12fd8b04-0119-4077-a710-2d0e0ee5755e
# sealert -l 12fd8b04-0119-4077-a710-2d0e0ee5755e
SELinux is preventing httpd from getattr access on the file /var/www/html/index.html.
***** Plugin restorecon (99.5 confidence) suggests ************************
If you want to fix the label,
/var/www/html/index.html default label should be httpd_syscontent_t.
Then you can restorecon.
Do
# /sbin/restorecon -v /var/www/html/index.html
26. Erregistroa: SELinux-ek informazioa leku askotan erregistratzen du:
28. Zerbitzu zehatz baterako SELinux Access Vector Cache (AVC) mezuak aurkitzeko:
# ausearch -m avc -c httpd
29. Erabilgarritasuna audit2allow debekatutako eragiketen erregistroetatik informazioa biltzen du eta, ondoren, SELinux baimen-politika arauak sortzen ditu. Adibidez:
Sarbidea ukatu egiten zaion deskribapen bat sortzeko: # audit2allow -w -a
Sarbide ukatua onartzen duen mota betearazteko arau bat ikusteko: # audit2allow -a
Modulu pertsonalizatu bat sortzeko: # audit2allow -a -M mypolicy
Aukera -M mota betearazteko fitxategi bat (.te) sortzen du zehaztutako izenarekin eta araua politika pakete batean konpilatzen du (.pp): mypolicy.pp mypolicy.te
Modulu pertsonalizatu bat instalatzeko: # semodule -i mypolicy.pp
30. Prozesu bereizi bat (domeinua) konfiguratzeko modu permisiboan lan egiteko: # semanage permissive -a httpd_t
31. Domeinua baimendua izatea nahi ez baduzu: # semanage permissive -d httpd_t
32. Domeinu baimendu guztiak desgaitzeko: # semodule -d permissivedomains
33. MLS SELinux politika gaitzea: # yum install selinux-policy-mls
в /etc/selinux/config:
SELINUX=permissive
SELINUXTYPE=mls
Ziurtatu SELinux modu permisiboan exekutatzen ari dela: # setenforce 0
Erabili gidoi bat fixfileshurrengo berrabiaraztean fitxategiak berriro etiketatuta daudela ziurtatzeko:
# fixfiles -F onboot # reboot
34. Sortu erabiltzaile bat MLS barruti zehatz batekin: # useradd -Z staff_u john
Komandoa erabiliz useradd, mapatu erabiltzaile berria lehendik dagoen SELinux erabiltzaile batekin (kasu honetan, staff_u).
35. SELinux eta Linux erabiltzaileen arteko mapa ikusteko: # semanage login -l
36. Definitu erabiltzailearen barruti zehatz bat: # semanage login --modify --range s2:c100 john