Summary
In this chapter, we gave an overview of the use of SELinux and differentiated the types of access control: discretionary and mandatory. SELinux, as a mandatory access control could help us to harden the security of our systems.
The use of SELinux is considered very complex, but we gave several examples that simplify how it works. SELinux is a labeling system.
We learned how to read the error logs with SELinux and found that there are only four scenarios where SELinux could fail, as looked at their solutions. The most common failures are with labels or when using custom configurations for services.
Also, policies could have errors and they should be reported to their developers.
In a less common case, we analyzed that the change of behavior of the policies could be due to an attack on our system.
In the next chapter, we will take an in-depth look at how to virtualize complete systems or take them to their smallest expression using containers.