Označení souborů SELinux
Všechny soubory, adresáře, zařízení a procesy mají přidružený bezpečnostní kontext (nebo štítek). U souborů je tento kontext uložen v rozšířených atributech systému souborů. Problémy se SELinuxem často vznikají z nesprávného označení souborového systému. Pokud se zobrazí chybová zpráva obsahující file_t , což je obvykle dobrý indikátor toho, že máte problém s označováním systému souborů.
Existuje několik způsobů, jak přejmenovat systém souborů:
- Vytvořte soubor /.autorelabel a restartujte počítač.
- Zobrazení stavu v GUI SELinux poskytuje možnost přejmenování při příštím restartu.
- Tři obslužné programy příkazového řádku, restorecon, setfiles a fixfiles, soubory přejmenování.
Kontext SELinux
Kontext SELinux obsahuje další informace, jako je uživatel SELinux, role, typ a úroveň. Rozhodnutí o řízení přístupu k procesům, uživatelům Linuxu a souborům jsou založena na těchto kontextových informacích. Řízení přístupu je založeno na níže uvedených informacích:
- Uživatel SELinux :Uživatelé Linuxu jsou mapováni na uživatele SELinux.
- Role :Atribut RBAC, který funguje jako prostředník mezi doménami a uživateli SELinux
- Typ :Atribut TE, který definuje doménu pro procesy
- Úroveň :Volitelné Informace; atribut MLS a MCS
Zobrazení kontextových informací SELinux
Zobrazení kontextových informací SELinux o souborech
Chcete-li zobrazit kontextové informace systému souborů z příkazového řádku, použijte „ls –Z ” příkaz:
# ls -Z -rw-------. root root system_u:object_r:admin_home_t:s0 anaconda-ks.cfg -rw-r--r--. root root system_u:object_r:admin_home_t:s0 initial-setup-ks.cfgPOZNÁMKA :Tyto informace jsou také uloženy v adresáři /etc/selinux/[SELINUXTYPE]/contexts/files.
Zobrazení kontextových informací SELinux o procesech
Chcete-li zobrazit kontextové informace SELinux o procesech, použijte „ps –Z ” příkaz:
# ps -Z LABEL PID TTY TIME CMD unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 6617 pts/0 00:00:00 sudo unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 6623 pts/0 00:00:00 su unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 6624 pts/0 00:00:00 bash unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 8188 pts/0 00:00:00 ps
Zobrazení kontextových informací SELinux o uživatelích
Chcete-li zobrazit kontext SELinux spojený s vaším uživatelem systému Linux, použijte „id –Z ” příkaz:
# id -Z unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
Kontext SELinux je zobrazen pomocí následující syntaxe:
user:role:type:level
Změna typu kontextového souboru
Obrazy disků virtuálního počítače KVM se vytvářejí v /var/lib/libvirt/images adresář ve výchozím nastavení. SELinux vyžaduje, aby obrazové soubory měly virt_image_t štítek aplikovaný na ně. Pomocí příkazu „ls –dZ“ můžete potvrdit, že tento štítek je použit pro adresář /var/lib/libvirt/images:
# ls -dZ /var/lib/libvirt/images drwx--x--x. root root system_u:object_r:virt_image_t:s0 /var/lib/libvirt/images
Pro obrazy virtuálního počítače můžete použít jiný adresář, ale musíte nový adresář přidat do zásad SELinux a nejprve jej přejmenovat. Následující kroky se používají k přidání adresáře /kvmimages do cílené zásady SELinux a přejmenování adresáře:
# semanage fcontext -a -t virt_image_t "/kvmimages(/.*)?"
Výše uvedený příkaz přidá adresář /kvmimages do zásady SELinux připojením řádku k následujícímu souboru:
# cat /etc/selinux/targeted/contexts/files/file_contexts.local /kvmimages(/.*)? system _u:object_r:virt_image_t:s0
Stále musíte nastavit nový kontext zabezpečení pro adresář a všechny soubory v adresáři. Ke změně kontextů SELinux v adresáři /kvmimages můžete použít kterýkoli z následujících příkazů:
- soubory oprav :Opravuje kontext zabezpečení v souborových systémech
- obnovení :Obnoví kontext zabezpečení u jednoho nebo více souborů
- setfiles :Inicializuje kontext zabezpečení u jednoho nebo více souborů
Každý z těchto příkazů čte soubory v /etc/selinux/targeted/contexts/files adresář. Následující příklad ukazuje kontexty SELinux před spuštěním příkazu restorecon:
# ls -dZ /kvmimages drwx--x--x. root root system_u:object_r:unlabeled_t:s0 /var/lib/libvirt/images
Všimněte si, že typ SELinux je nastaven na unlabeled_t . Následující příklad spustí příkaz restorecon pro změnu typu, jak je definován v /etc/selinux/targeted/contexts/files/file_contexts.local soubor:
# restorecon -R -v /kvmimages
# ls -dZ /var/kvmimages drwx--x--x. root root system_u:object_r:virt_image_t:s0 /kvmimages
Existují také SELinux Booleans, které ovlivňují KVM při spuštění libvirt. Dva z těchto booleovských hodnot jsou uvedeny následovně:
- virt_use_nfs :Povolit virtu spravovat soubory NFS.
- virt_use_samba :Povolit virtu spravovat soubory CIFS.
Tyto logické hodnoty je třeba povolit, když používáte sdílené složky NFS nebo SAMBA pro ukládání obrazů disků virtuálních strojů. Existují další SELinux Booleans, které ovlivňují KVM. Některé z nich jsou uvedeny následovně:
# getsebool -a | grep virt staff_use_svirt --> off unprivuser_use_svirt --> off virt_read_qemu_ga_data --> off virt_rw_qemu_ga_data --> off virt_sandbox_use_all_caps --> on virt_sandbox_use_audit --> on virt_sandbox_use_fusefs --> off virt_sandbox_use_mknod --> off virt_sandbox_use_netlink --> off virt_sandbox_use_sys_admin --> off virt_transition_userdomain --> off virt_use_comm --> off virt_use_execmem --> off virt_use_fusefs --> off virt_use_nfs --> on virt_use_rawip --> off virt_use_samba --> off virt_use_sanlock --> off virt_use_usb --> on virt_use_xserver --> offCo jsou uživatelé SELinuxu a jak mapovat uživatele Linuxu na uživatele SELinux