SELinux — podstawowe pojęcia
Poznasz podstawowe tryby SELinux, znaczenie kontekstów bezpieczeństwa oraz pierwsze komendy do sprawdzania stanu SELinux w systemach takich jak Rocky Linux.
Wróć do listy lekcji1. Krótka teoria
SELinux to mechanizm kontroli dostępu, który działa obok klasycznych uprawnień Linuxa. Nawet jeśli użytkownik i uprawnienia pliku wyglądają poprawnie, SELinux może zablokować działanie, jeśli polityka bezpieczeństwa na to nie pozwala. W trybie enforcing SELinux egzekwuje reguły i blokuje niedozwolone akcje. W trybie permissive nie blokuje, ale zapisuje ostrzeżenia, co pomaga w diagnozie. Tryb disabled oznacza, że SELinux jest wyłączony. Ważnym pojęciem jest kontekst bezpieczeństwa, widoczny na przykład przez ls -Z. Kontekst opisuje między innymi typ obiektu, a polityka SELinux decyduje, które procesy mogą korzystać z danych typów plików. Początkujący administrator nie musi od razu pisać polityk SELinux, ale powinien umieć sprawdzić tryb pracy, status systemu i konteksty plików. W Rocky Linux SELinux jest istotną warstwą bezpieczeństwa, dlatego nie należy traktować wyłączenia go jako pierwszego rozwiązania problemu.
2. Przykłady komend
getenforce
Pokazuje bieżący tryb SELinux w krótkiej formie.
$ getenforce
sestatus
Wyświetla szczegółowy status SELinux.
$ sestatus
ls -Z
Pokazuje pliki z kontekstami bezpieczeństwa SELinux.
$ ls -Z
ls -Zd /var/www/html
Pokazuje kontekst bezpieczeństwa wskazanego katalogu.
$ ls -Zd /var/www/html
ps -eZ | head
Pokazuje przykładowe procesy razem z kontekstami SELinux.
$ ps -eZ | head
id -Z
Pokazuje kontekst SELinux aktualnego użytkownika, jeśli jest dostępny.
$ id -Z
3. Zadanie praktyczne
getenforce i sestatus. Zapisz, czy system działa w trybie enforcing, permissive czy disabled. Następnie uruchom ls -Z w katalogu domowym oraz ls -Zd /tmp, aby zobaczyć konteksty plików i katalogów. Jeśli masz katalog webowy w środowisku testowym, porównaj jego kontekst z kontekstem zwykłego pliku w katalogu domowym. Nie zmieniaj polityki ani nie wyłączaj SELinux w tym ćwiczeniu.
4. Typowe błędy
- Traktowanie SELinux jako zwykłych uprawnień rwx.
- Wyłączanie SELinux jako pierwsza reakcja na problem z usługą.
- Pomijanie kontekstu pliku podczas diagnozowania dostępu.
- Mylenie trybu permissive z całkowitym wyłączeniem SELinux.
- Zakładanie, że poprawny właściciel pliku zawsze wystarcza aplikacji.
- Ignorowanie faktu, że procesy także mają konteksty SELinux.
5. Podsumowanie
SELinux jest dodatkową warstwą kontroli dostępu. Tryb enforcing blokuje działania niezgodne z polityką, permissive głównie loguje naruszenia, a disabled oznacza wyłączenie mechanizmu. getenforce, sestatus i ls -Z pomagają rozpocząć diagnozę bez zmieniania konfiguracji bezpieczeństwa.