Di dieu anjeun bakal nampi jawaban kana patarosan penting ngeunaan kahirupan, jagat raya sareng sadayana dina Linux kalayan kaamanan anu langkung saé.
"Kabeneran anu penting yén hal-hal henteu salawasna katingalina nyaéta pangaweruh umum ..."
- Douglas Adams, The Hitchhiker urang Guide ka Galaxy
Kasalametan. Ngaronjat reliabilitas. Korespondensi. Kawijakan. Opat Horsemen tina Apocalypse sysadmin. Salian tugas harian urang - ngawaskeun, cadangan, palaksanaan, konfigurasi, ngamutahirkeun, jsb - urang oge jawab kaamanan sistem urang. Malahan sistem anu panyadia pihak katilu nyarankeun urang nganonaktipkeun kaamanan anu ditingkatkeun. Asa kawas gawé Ethan Hunt ti "Misi: Mustahil."
Nyanghareupan kantun ieu, sababaraha pangurus sistem mutuskeun nyandak pil biru, sabab pikir maranéhna moal pernah nyaho jawaban kana patarosan badag kahirupan, alam semesta jeung sagala rupa nu. Sareng sakumaha anu urang terang, jawaban éta 42.
Dina sumanget The Hitchhiker's Guide to the Galaxy, ieu 42 waleran kana patarosan penting ngeunaan kontrol sareng panggunaan. SELinux dina sistem Anjeun.
1. SELinux mangrupikeun sistem kontrol aksés paksa, anu hartosna unggal prosés ngagaduhan labél. Unggal file, diréktori sareng obyék sistem ogé gaduh labél. Aturan kawijakan ngadalikeun aksés antara prosés jeung objék tagged. Kernel ngalaksanakeun aturan ieu.
2. Dua konsép anu paling penting nyaéta: Labeling - markings (file, prosés, palabuhan, jsb) jeung Jenis panerapan (anu ngasingkeun prosés tina silih dumasar kana jinis).
3. Format labél anu leres user:role:type:level (opsional).
4. Tujuan nyadiakeun kaamanan multi-tingkat (Kaamanan Multi-Level - MLS) nyaéta pikeun ngatur prosés (domain) dumasar kana tingkat kaamanan data anu bakal dianggo. Contona, prosés rusiah teu bisa maca data rusiah luhur.
5. Mastikeun kaamanan multi-kategori (Kaamanan Multi-Kategori - MCS) ngajaga prosés sarupa ti silih (contona, mesin virtual, mesin OpenShift, sandboxes SELinux, wadahna, jsb).
6. Pilihan kernel pikeun ngarobih modeu SELinux nalika boot:
autorelabel=1 → ngabalukarkeun sistem ngajalankeun relabeling
selinux=0 → kernel henteu ngamuat infrastruktur SELinux
enforcing=0 → dimuat dina mode permisif
7. Lamun perlu relabel sakabéh sistem:
# touch /.autorelabel
#reboot
Lamun sistem nyirian ngandung angka nu gede ngarupakeun kasalahan, Anjeun bisa jadi kudu boot dina mode permisif pikeun remarking sukses.
8. Pikeun pariksa naha SELinux diaktipkeun: # getenforce
9. Pikeun samentawis ngaktipkeun / nganonaktipkeun SELinux: # setenforce [1|0]
10. Mariksa status SELinux: # sestatus
11. File konfigurasi: /etc/selinux/config
12. Kumaha SELinux jalanna? Ieu conto nyirian pikeun pangladén wéb Apache:
Prosés ngajalankeun dina konteks httpd_t, tiasa berinteraksi sareng objék anu dilabélan httpd_something_t.
13. Loba paréntah narima argumen -Z pikeun nempo, nyieun jeung ngarobah konteks:
ls -Z
id -Z
ps -Z
netstat -Z
cp -Z
mkdir -Z
Konteks ditetepkeun nalika file dijieun dumasar kana kontéks diréktori indungna (kalawan sababaraha pengecualian). RPM tiasa ngadamel kontéks sapertos nalika instalasi.
14. Aya opat panyabab utama kasalahan SELinux, anu dijelaskeun langkung rinci dina poin 15-21 di handap ieu:
Masalah panyiri
Kusabab hiji hal anu SELinux kedah terang
Kasalahan dina kawijakan / aplikasi SELinux
Inpormasi anjeun tiasa dikompromi
15.Masalah panyiri: lamun file anjeun dina /srv/myweb ditandaan teu bener, aksés bisa ditolak. Ieu sababaraha cara pikeun ngalereskeun ieu:
16.Masalah Labeling: lamun mindahkeun file tinimbang nyalin, file bakal nahan konteks aslina. Pikeun ngalereskeun masalah ieu:
Robah paréntah kontéks nganggo labél: # chcon -t httpd_system_content_t /var/www/html/index.html
Robah paréntah kontéks nganggo labél tautan: # chcon --reference /var/www/html/ /var/www/html/index.html
Mulangkeun kontéks (pikeun dua kasus): # restorecon -vR /var/www/html/
17. upami SELinux anjeun kedah terangyén HTTPD ngadangukeun dina port 8585, wartosan SELinux:
# semanage port -a -t http_port_t -p tcp 8585
18.SELinux anjeun kedah terang Nilai-nilai Boolean anu ngamungkinkeun bagéan kawijakan SELinux dirobih nalika runtime tanpa pangaweruh ngeunaan kawijakan SELinux anu ditimpa. Contona, upami anjeun hoyong httpd ngirim email, lebetkeun: # setsebool -P httpd_can_sendmail 1
19.SELinux anjeun kedah terang nilai logis pikeun ngaktipkeun / nganonaktipkeun setélan SELinux:
Pikeun ningali sadaya nilai boolean: # getsebool -a
Pikeun ningali déskripsi unggal: # semanage boolean -l
Pikeun nyetel nilai boolean: # setsebool [_boolean_] [1|0]
25. Upami aya kasalahan SELinux, paké log setroubleshoot nawiskeun sababaraha solusi anu mungkin.
Contona, ti 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. Logging: SELinux ngarékam inpormasi di seueur tempat: