1.1 Concepts: O max de segurança que tinha antes, era o Discretionary Access Control (DAC), que é aqueles basic file permisions. Agora, temos uma camada extra, o Mandatory Access Control (MAC), que é aplicado a todos os usuarios e não pode ser bypassed por qualquer um. Cada processo, arquivo, file ou port tem um label chamado SELinux context. Context contains additional information about a system object: the SELinux user, their role, their type, and the security level.O context match o defined SELinux policy rule, que describes the access permissions for all users, programs, processes, and files, and for the devices upon which they act. Assim, allow ou disallow com que processos aconteçam. O SELinux nunca grant access, unless se tiver uma rule dizendo que pode.
1.1 cont: SELinux labels have user, role, type, and security level fields, em que um label tem essa cara: unconfined_u:object_r:httpd_sys_content_t:s0/var/www/html/file2
-
-
-
-
-
1.2) Manage SELinux: use o comando getenforce para visualizar o modo do SELinux atual. Use o comando setenforce para alterar o modo atual.
2) Control SELinux File Contexts: todos os recursos possuem um SEL context. Ele é baseado na localização de tal recurso e, se for, por ex, copiado para outro lugar, esse context pode mudar com base na policy do lugar de onde foi copiado. Assim, use a option -p para o comando cp para preservar o context de files ou arquivos. Files copiadas terão um novo context, já files movidas terão o context original. O comando ls -z mostra o context de uma file.
2.1) Change Context: é possível fazer isso com os comandos: semanage fcontext ; restorecon ; chcon. O semanage fcontext cria um file context policy (option -l lista todas as policies); restorecon vai aplicar o context policy em uma file; chcon muda o context diretamente nos files, sem mudar a policy em si.
2.2) File Context Operations: To manage SELinux contexts, install the policycoreutils and policycoreutils-python-utils packages.
3) Booleans: são artifícios do SELinux que enable ou disable o behavior das policies. O comando getswbool lista os booleans available e o current boolean status. O comando setsebool enable ou disable as policies, sendo a sua option -P deixa a setting persistent, ou seja, sem ela, a setting é apenas temporária. O comando semenage boolean -l lista os booleans das policy files, além de dizer se o boolean é persistent ou não,os default e current values e uma pequenna descrição.
4) Resolve SELinux issues: Quando o SELinux denies an action, ela é logada na file /var/log/audit/audit.log . Use o comando sealert -l UUID (em que uuid é um identificador da ocorrência) to view comprehensive report details for the specific event. Use o comando sealert -a /var/log/audit/audit.log to view all existing events.