Jeżeli selinux blokuje nam działanie jakieś aplikacji, na środowisku testowym wprowadzamy selinux w tryb targeted permissive:
setselinux 0
instalujemy pakiet troubleshootingu
yum install setroubleshoot-server
czyścimy plik /var/log/audit/audit.log
mv /var/log/audit/audit.log /var/log/audit/audit.log_old
Uruchamiamy aplikację
np: systemctl start nginx
Korzystamy z niej przez chwilę tak, aby wygenerować wszystkie możliwe przypadki użycia
Po czym korzystamy z audit2allow do wygenerowania reguł selinuksa .te
cat /var/log/audit/audit.log | audit2allow -l -v -m nazwamodulu > nazwamodulu.te
W tym miejscu zalecam się zatrzymać i sprawdzić zawartość modułu, czy przypadkiem nie pozwolił na coś za dużo, lub na coś, co nie dotyczy naszej aplikacji.
checkmodule -M -m -o nazwamodulu.mod nazwamodulu.te
semodule_package -o nazwamodulu.pp -m nazwamodulu.mod
semodule -v -i nazwamodulu.pp
przełączamy selinux w tryb enforcing
setselinux 1
i restartujemy aplikację, np. nginx
systemctl restart nginx
Następnie należy zweryfikować, czy aplikacja zachowuje się poprawnie.