SELinux má tři základní typy (POLICIES)
- Strict - vše zkázáno, pouze se povoluje
- MLS(Multi Level Security) - RHEL 5 se speciální licencí
- Targeted - pouze některé procesy(systémové) jsou omezeny
SELinux může být ve třech stavech
- disable
- permissive - pouze zaznamenává případné konflikty
- enforcing - vynucuje pravidla
SELinux přidává ke všemu(souborům, procesům, porty, pakety ....) toto:
user_u:role_r:types_t:MLS
např:
system_u:object_r:httpd_exec_t:s0
Jediné co se v targeted používá je types_t(Type Enforcement) a user_u(velice omezeně)
user_u práva
/usr/sbin/semanage login -l
Ukáže mapování uživatelů na SELinux
- unconfined_u .. nevztahuje se na něj SELinux (takto spuštěné procesy se chovají stejně jako bez SELinuxu)
- system_u .. standardní systémový uživatel (řídí se dle SELinux pravidel)
Vše co končí na _t patří do Type. Práva se dědí dle adresáře.
- httpd_t .. základní jméno
- httpd_sys_content_t .. static web
- httpd_sys_script_exec_t .. skripty, které může Apache spouštět
- httpd_sys_content_rw_t .. soubory do, kterých může zapisovat pouze httpd_sys_script_exec_t
- httpd_sys_content_ra_t .. pouze přidávat
yum install selinux-policy-devel.noarch
A průzkumem jednotlivých konfiguráků v
/usr/share/selinux/devel/include
Pro jednotlivé adresáře jsou práva zadaná v
/etc/selinux/targeted/contexts/files/
SELinux transition
Některá pravidla slouží k tomu, aby měnila type_t spouštěných aplikací.
Například toto initrc_t, named_exec_t, named_t nám říká, pokud proces initrc_t spouští soubor named_exec_t mají přejít práva z initrc_t na named_t.
Normálně to co spustí proces initrc_t běží s právy initrc_t.
Příklad předávání práv:
Změna policy za běhu
Výpis všech nestavení, které se dají měnit za běhu
getsebool -a
Nastavení požadované hodnoty
setsebool -P virt_use_nfs [1|0]
Konfiguráky
/etc/selinux
Logy
/var/log/audit/audit.log
Zapnutí SELinuxu
Pro změnu z disable na permissive nebo enforcing je potřeba restartovat počítač.
Změna z permissive na enforcing a obráceně je možná za chodu.
Změnu lze provést zde
/etc/selinux/config
Změna za chodu (trvá pouze do restartu jinak se musí zapsat do konfiguráku)
Permissive na Enforcing
echo "1" > /selinux/enforce nebo setenforce 0
Enforcig na Permissive
echo "0" > /selinux/enforce nebo setenforce 1
Ověření stavu SELinuxu
sestatus
SELinux změněné příkazy
ls -Z, id -Z, ps auxZ, lsof -Z, find / -context
Moduly SELinuxu
Vypsání všech modulů
semodule -l
Změna SELinux práv na souborech
Krátkodobá (do restartu)
chcon -t type file-name
Trvalá (zapíše do souboru /etc/selinux/targeted/contexts/files/file_contexts.local)
Soubor
/usr/sbin/semanage fcontext -a -t samba_share_t /etc/file1
Adresář
/usr/sbin/semanage fcontext -a -t httpd_sys_content_t "/web(/.*)?"
Obnovení práv podle souborů v /etc/selinux/targeted/contexts/files/
/sbin/restorecon -R -v /adresar/
Práce se soubory
Kopírování
Zachování práv
cp -Z co kam
Přesun
Vždy si zachovává práva co měl.
Kontrola práv
Udělá kontrolu zda jsou nastavena práva dle definic.
/usr/sbin/matchpathcon -V Cesta
Fedora SELinux
http://fedoraproject.org/wiki/SELinux
Ceska Dokumentace
http://www.root.cz/knihy/ceska-dokumentace-pro-selinux/
Clanky Root
http://www.root.cz/serialy/jak-spravne-na-selinux/
No comments:
Post a Comment