Tarjamahan tina artikel disusun pikeun siswa tangtu
SELinux atanapi Security Enhanced Linux mangrupikeun mékanisme kontrol aksés anu ditingkatkeun anu dikembangkeun ku Badan Kaamanan Nasional AS (NSA) pikeun nyegah intrusi jahat. Éta ngalaksanakeun modél kontrol aksés anu dipaksa (atanapi wajib) (Inggris Mandatory Access Control, MAC) dina luhureun modél discretionary (atanapi selektif) anu aya (English Discretionary Access Control, DAC), nyaéta, idin pikeun maca, nyerat, ngaéksekusi.
SELinux gaduh tilu modeu:
- Ngalaksanakeun - panolakan aksés dumasar kana aturan kawijakan.
- permisif - ngajaga log lampah nu ngalanggar kawijakan, nu bakal dilarang dina mode enforcing.
- cacad - nganonaktipkeun lengkep SELinux.
Sacara standar, setélan aya dina /etc/selinux/config
Ngarobah modeu SELinux
Pikeun manggihan mode ayeuna, ngajalankeun
$ getenforce
Pikeun ngarobah mode permisif ngajalankeun paréntah di handap ieu
$ setenforce 0
atawa, pikeun ngarobah mode tina permisif dina maksakeun, vypolnite
$ setenforce 1
Upami anjeun kedah nganonaktipkeun lengkep SELinux, maka ieu ngan ukur tiasa dilakukeun ku file konfigurasi
$ vi /etc/selinux/config
Pikeun nganonaktipkeun, robih parameter SELINUX sapertos kieu:
SELINUX=disabled
Nyetél SELinux
Unggal file sareng prosés ditandaan ku kontéks SELinux, anu ngandung émbaran tambahan sapertos pangguna, peran, jinis, jsb. Upami ieu pertama kalina anjeun ngaktifkeun SELinux, anjeun kedah ngonpigurasikeun kontéks sareng labélna. Prosés assigning labél jeung konteks katelah tagging. Pikeun ngamimitian nyirian, dina file konfigurasi urang ngarobah mode ka permisif.
$ vi /etc/selinux/config
SELINUX=permissive
Sanggeus nyetel mode permisif, Jieun hiji file disumputkeun kosong dina root kalawan nami autorelabel
$ touch /.autorelabel
jeung balikan deui komputer
$ init 6
Catetan: Kami nganggo modeu permisif pikeun nyirian, saprak pamakéan mode maksakeun tiasa nyababkeun sistem ngadat nalika reboot.
Tong hariwang upami undeuran macét dina sababaraha file, nyirian peryogi sakedik. Saatos nyirian parantos réngsé sareng sistem anjeun di-boot, anjeun tiasa angkat kana file konfigurasi sareng nyetél modeu maksakeunsarta ogé ngajalankeun:
$ setenforce 1
Anjeun ayeuna parantos suksés ngaktifkeun SELinux dina komputer anjeun.
Ngawaskeun log
Anjeun meureun geus sapatemon sababaraha kasalahan salila nyirian atawa bari sistem jalan. Pikeun mariksa naha SELinux anjeun berpungsi leres sareng upami éta henteu ngahalangan aksés ka palabuhan, aplikasi, jsb, anjeun kedah ningali log. Log SELinux perenahna di /var/log/audit/audit.log
, tapi anjeun teu perlu maca sakabeh hal pikeun manggihan kasalahan. Anjeun tiasa nganggo utilitas audit2why pikeun milarian kasalahan. Jalankeun paréntah di handap ieu:
$ audit2why < /var/log/audit/audit.log
Hasilna, anjeun bakal nampa daptar kasalahan. Upami teu aya kasalahan dina log, maka moal aya pesen anu bakal ditingalikeun.
Ngonpigurasikeun Kawijakan SELinux
Kabijakan SELinux mangrupikeun sakumpulan aturan anu ngatur mékanisme kaamanan SELinux. Kabijakan netepkeun sakumpulan aturan pikeun lingkungan khusus. Ayeuna urang bakal diajar kumaha ngonpigurasikeun kabijakan pikeun ngamungkinkeun aksés kana jasa anu dilarang.
1. Nilai logika (switch)
Saklar (booleans) ngidinan Anjeun pikeun ngarobah bagéan kawijakan dina runtime, tanpa kudu nyieun kawijakan anyar. Aranjeunna ngidinan Anjeun pikeun nyieun parobahan tanpa rebooting atawa recompiling kawijakan SELinux.
conto
Hayu urang nyebutkeun urang hoyong bagikeun diréktori imah pamaké via FTP baca / nulis, sarta kami geus dibagikeun eta, tapi lamun urang nyoba ngakses eta, urang teu ningali nanaon. Ieu kusabab kawijakan SELinux nyegah server FTP tina maca sareng nyerat kana diréktori asal pangguna. Urang kedah ngarobih kawijakan supados pangladén FTP tiasa ngaksés diréktori bumi. Hayu urang tingali upami aya saklar pikeun ieu ku ngalakukeun
$ semanage boolean -l
Paréntah ieu bakal daptar saklar anu sayogi sareng kaayaan ayeuna (on atanapi pareum) sareng pedaran. Anjeun tiasa nyaring pilarian Anjeun ku nambahkeun grep pikeun manggihan hasil ftp-hijina:
$ semanage boolean -l | grep ftp
tur anjeun bakal manggihan di handap
ftp_home_dir -> off Allow ftp to read & write file in user home directory
switch ieu ditumpurkeun, jadi kami bakal ngaktipkeun eta kalawan setsebool $ setsebool ftp_home_dir on
Ayeuna daemon ftp urang bakal tiasa ngaksés diréktori bumi pangguna.
Catetan: Anjeun oge bisa meunangkeun daptar switch sadia tanpa katerangan ku ngalakukeun getsebool -a
2. Label jeung konteks
Ieu mangrupikeun cara anu paling umum pikeun nerapkeun kawijakan SELinux. Unggal file, polder, prosés sareng port ditandaan ku kontéks SELinux:
- Pikeun file sareng polder, labél disimpen salaku atribut anu diperpanjang dina sistem file sareng tiasa ditingali ku paréntah di handap ieu:
$ ls -Z /etc/httpd
- Pikeun prosés sareng palabuhan, panyiri diurus ku kernel, sareng anjeun tiasa ningali labél ieu sapertos kieu:
proses
$ ps –auxZ | grep httpd
palabuhan
$ netstat -anpZ | grep httpd
conto
Ayeuna hayu urang tingali conto pikeun langkung ngartos labél sareng kontéks. Hayu urang nyebutkeun urang boga web server éta, tinimbang diréktori a /var/www/html/ использует /home/dan/html/
. SELinux bakal nganggap ieu ngalanggar kawijakan sareng anjeun moal tiasa ningali halaman wéb anjeun. Ieu kusabab urang teu acan nyetel konteks kaamanan pakait sareng file HTML. Pikeun ningali konteks kaamanan standar, paké paréntah di handap ieu:
$ ls –lz /var/www/html
-rw-r—r—. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/
Di dieu urang meunang httpd_sys_content_t
salaku konteks pikeun file html. Urang kedah nyetél kontéks kaamanan ieu pikeun diréktori urang ayeuna, anu ayeuna gaduh kontéks ieu:
-rw-r—r—. dan dan system_u:object_r:user_home_t:s0 /home/dan/html/
Paréntah alternatif pikeun mariksa kontéks kaamanan file atanapi diréktori:
$ semanage fcontext -l | grep '/var/www'
Kami ogé bakal nganggo semanage pikeun ngarobih kontéks saatos mendakan kontéks kaamanan anu leres. Pikeun ngarobah kontéks /home/dan/html, jalankeun paréntah di handap ieu:
$ 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
Saatos kontéks dirobih nganggo semanage, paréntah restorecon bakal ngamuat kontéks standar pikeun file sareng diréktori. Pangladén wéb kami ayeuna bakal tiasa maca file tina polder /home/dan/html
sabab konteks kaamanan pikeun folder ieu geus robah jadi httpd_sys_content_t
.
3. Jieun kawijakan lokal
Meureun aya kaayaan dimana metodeu di luhur henteu aya gunana pikeun anjeun sareng anjeun nampi kasalahan (avc/denial) dina audit.log. Nalika ieu kajadian, Anjeun kudu nyieun kawijakan lokal. Anjeun tiasa mendakan sadaya kasalahan nganggo audit2why, sapertos anu dijelaskeun di luhur.
Anjeun tiasa nyieun kawijakan lokal pikeun ngabéréskeun kasalahan. Contona, urang meunang kasalahan nu patali jeung httpd (Apache) atawa smbd (samba), urang grep kasalahan sarta nyieun kawijakan pikeun aranjeunna:
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
Ieu téh http_policy
и smb_policy
nyaeta nami kawijakan lokal nu urang dijieun. Ayeuna urang kedah ngamuat kawijakan lokal anu diciptakeun ieu kana kawijakan SELinux ayeuna. Ieu bisa dilakukeun saperti kieu:
$ semodule –I http_policy.pp
$ semodule –I smb_policy.pp
Kabijakan lokal urang parantos diunduh sareng urang henteu kedah nampi avc atanapi denail di audit.log.
Ieu usaha kuring pikeun ngabantosan anjeun ngartos SELinux. Kuring miharep yén sanggeus maca artikel ieu anjeun bakal ngarasa leuwih nyaman jeung SELinux.
sumber: www.habr.com