Mandatory access control (MAC) is an essential element to modern system security. SELinux is a common implementation of MAC that must be well understood by engineers in order to incorporate the most ideal security practices into production systems. This exercise delves into a common occurrence relating to MAC; troubleshooting a system that is experiencing errors as a consequence of SELinux.
*This course is not approved or sponsored by Red Hat.*
Learning Objectives
Successfully complete this lab by achieving the following learning objectives:
- Verify there is an error by trying to access `localhost:80/index.html` using curl on the `www` host and check the audit log using sealert. Direct the output from sealert to `/home/cloud_user/seinfo.txt`.
- Run
curl localhost:80/index.html
to confirm the error. - Run
sealert -a /var/log/audit/audit.log > /home/cloud_user/seinfo.txt
.
- Run
- Examine `/home/cloud_user/seinfo.txt` to figure out what is wrong and fix the error regarding `/var/www/html/index.html`.
- Reviewing the
seinfo.txt
file should indicate the context for/var/www/html/index.html
is incorrect. - Run
restorecon /var/www/html/index.html
to fix the issue.
- Reviewing the
- Restart `httpd` to check for other possible issues and correct any issues you might find.
- Run
systemctl restart httpd
(note:httpd
should fail to restart). - Based on
journalctl --xe
or by re-examining the audit log with sealert, you will see the file context is incorrect on/etc/httpd/conf/httpd.conf
. - Run
restorecon /etc/httpd/conf/httpd.conf
to fix the context onhttpd.conf
. - Run
systemctl start httpd
and service should be restored.
- Run
- Confirm `localhost:80/index.html` loads correctly with curl on the `www` host.
Run
curl localhost:80/index.html
and verify that you get the message "The website is up".