SELinux — diagnostyka problemów
Nauczysz się rozpoznawać sytuacje, w których problem może dotyczyć SELinux, sprawdzać logi audytu oraz korygować podstawowe konteksty plików.
Wróć do listy lekcji1. Krótka teoria
SELinux często ujawnia się wtedy, gdy klasyczne uprawnienia wyglądają poprawnie, usługa działa, ale aplikacja nadal nie może odczytać pliku, zapisać danych albo połączyć się z zasobem. Pierwszym krokiem nie powinno być wyłączenie SELinux, tylko sprawdzenie trybu pracy przez getenforce i sestatus. Następnie warto obejrzeć konteksty plików przez ls -Z. Jeśli plik został skopiowany w nietypowy sposób albo utworzony w innym katalogu, może mieć kontekst niezgodny z oczekiwaniami usługi. Polecenie restorecon przywraca domyślne konteksty zgodne z polityką dla danej ścieżki. Logi audytu można przeszukiwać narzędziem ausearch, na przykład pod kątem odmów dostępu oznaczonych jako AVC. Na tym poziomie wystarczy umieć zebrać sygnały: tryb SELinux, kontekst procesu i pliku oraz wpis audytu. semanage fcontext to narzędzie do definiowania trwałych reguł etykietowania ścieżek, ale przed użyciem trzeba rozumieć, jaki typ kontekstu jest właściwy dla danej usługi.
2. Przykłady komend
getenforce
Pokazuje bieżący tryb SELinux.
$ getenforce
sestatus
Wyświetla szczegółowy status SELinux.
$ sestatus
ls -Z /var/www/html
Pokazuje konteksty SELinux plików w katalogu.
$ ls -Z /var/www/html
sudo restorecon -Rv /var/www/html
Przywraca domyślne konteksty SELinux dla wskazanej ścieżki.
$ sudo restorecon -Rv /var/www/html
sudo ausearch -m AVC -ts recent
Szuka niedawnych odmów SELinux typu AVC w logach audytu.
$ sudo ausearch -m AVC -ts recent
sudo semanage fcontext -l
Wyświetla reguły etykietowania kontekstów plików.
$ sudo semanage fcontext -l
3. Zadanie praktyczne
getenforce i sestatus. Następnie sprawdź konteksty przykładowego katalogu przez ls -Z /var/www/html albo innej ścieżki dostępnej w labie. Jeśli pracujesz na środowisku testowym, uruchom sudo restorecon -Rv /var/www/html i porównaj wynik przed oraz po. Na końcu sprawdź ostatnie odmowy poleceniem sudo ausearch -m AVC -ts recent. Jeśli komenda nie zwróci wpisów, zapisz, że brak wpisów AVC jest również informacją diagnostyczną.
4. Typowe błędy
- Wyłączanie SELinux zamiast sprawdzenia trybu, kontekstów i logów.
- Zakładanie, że poprawne chmod i chown zawsze wystarczą.
- Uruchamianie restorecon na przypadkowych ścieżkach bez zrozumienia celu.
- Ignorowanie logów audytu przy błędach dostępu aplikacji.
- Mylenie tymczasowej poprawy z trwałą regułą etykietowania.
- Używanie semanage fcontext bez wiedzy, jaki typ kontekstu jest właściwy.
5. Podsumowanie
Diagnoza SELinux zaczyna się od getenforce, sestatus, sprawdzenia kontekstów przez ls -Z i analizy odmów przez ausearch. restorecon przywraca domyślne etykiety, a semanage fcontext służy do trwałego opisu etykietowania ścieżek. Celem jest zrozumienie blokady, a nie szybkie wyłączenie warstwy bezpieczeństwa.